Merge jdk7-b89
authorduke
Wed, 05 Jul 2017 17:09:51 +0200
changeset 5223 44158f6d3b94
parent 5222 a430c36e9f2c (diff)
parent 5110 482f63894bb1 (current diff)
child 5224 d7443489c496
child 5225 ffbb10639cc8
child 5226 5f0bf8039932
child 5227 12beb7577ac9
child 5260 89baf99a5e06
child 5262 637841d87234
child 5264 785ad20ceb84
child 5266 ab2911ce6db7
child 5268 e04dfc23e480
child 5275 fa9f5ce2006e
child 5278 b387fb13bda1
child 5282 0dd428e93294
Merge
--- a/.hgtags-top-repo	Wed Jul 05 17:09:16 2017 +0200
+++ b/.hgtags-top-repo	Wed Jul 05 17:09:51 2017 +0200
@@ -62,3 +62,4 @@
 cf26288a114be67c39f2758959ce50b60f5ae330 jdk7-b85
 433a60a9c0bf1b26ee7e65cebaa89c541f497aed jdk7-b86
 6b1069f53fbc30663ccef49d78c31bb7d6967bde jdk7-b87
+82135c848d5fcddb065e98ae77b81077c858f593 jdk7-b88
--- a/corba/.hgtags	Wed Jul 05 17:09:16 2017 +0200
+++ b/corba/.hgtags	Wed Jul 05 17:09:51 2017 +0200
@@ -62,3 +62,4 @@
 c67a9df7bc0ca291f08f9a9cc05cb78ea15d25e6 jdk7-b85
 6253e28826d16cf1aecc39ce04c8de1f6bf2df5f jdk7-b86
 09a41111a401d327f65e453384d976a10154d9ea jdk7-b87
+39e14d2da687c7e592142137517aaf689544820f jdk7-b88
--- a/hotspot/.hgtags	Wed Jul 05 17:09:16 2017 +0200
+++ b/hotspot/.hgtags	Wed Jul 05 17:09:51 2017 +0200
@@ -86,3 +86,4 @@
 bf823ef06b4f211e66988d76a2e2669be5c0820e jdk7-b86
 07226e9eab8f74b37346b32715f829a2ef2c3188 hs18-b01
 e7e7e36ccdb5d56edd47e5744351202d38f3b7ad jdk7-b87
+4b60f23c42231f7ecd62ad1fcb6a9ca26fa57d1b jdk7-b88
--- a/hotspot/src/share/vm/ci/ciEnv.cpp	Wed Jul 05 17:09:16 2017 +0200
+++ b/hotspot/src/share/vm/ci/ciEnv.cpp	Wed Jul 05 17:09:51 2017 +0200
@@ -385,11 +385,6 @@
                                                      KILL_COMPILE_ON_FATAL_(fail_type));
   }
 
-  if (found_klass != NULL) {
-    // Found it.  Build a CI handle.
-    return get_object(found_klass)->as_klass();
-  }
-
   // If we fail to find an array klass, look again for its element type.
   // The element type may be available either locally or via constraints.
   // In either case, if we can find the element type in the system dictionary,
@@ -414,6 +409,11 @@
     }
   }
 
+  if (found_klass != NULL) {
+    // Found it.  Build a CI handle.
+    return get_object(found_klass)->as_klass();
+  }
+
   if (require_local)  return NULL;
   // Not yet loaded into the VM, or not governed by loader constraints.
   // Make a CI representative for it.
--- a/hotspot/src/share/vm/classfile/loaderConstraints.cpp	Wed Jul 05 17:09:16 2017 +0200
+++ b/hotspot/src/share/vm/classfile/loaderConstraints.cpp	Wed Jul 05 17:09:51 2017 +0200
@@ -334,33 +334,6 @@
   return NULL;
 }
 
-
-klassOop LoaderConstraintTable::find_constrained_elem_klass(symbolHandle name,
-                                                            symbolHandle elem_name,
-                                                            Handle loader,
-                                                            TRAPS) {
-  LoaderConstraintEntry *p = *(find_loader_constraint(name, loader));
-  if (p != NULL) {
-    assert(p->klass() == NULL, "Expecting null array klass");
-
-    // The array name has a constraint, but it will not have a class. Check
-    // each loader for an associated elem
-    for (int i = 0; i < p->num_loaders(); i++) {
-      Handle no_protection_domain;
-
-      klassOop k = SystemDictionary::find(elem_name, p->loader(i), no_protection_domain, THREAD);
-      if (k != NULL) {
-        // Return the first elem klass found.
-        return k;
-      }
-    }
-  }
-
-  // No constraints, or else no klass loaded yet.
-  return NULL;
-}
-
-
 void LoaderConstraintTable::ensure_loader_constraint_capacity(
                                                      LoaderConstraintEntry *p,
                                                     int nfree) {
--- a/hotspot/src/share/vm/classfile/loaderConstraints.hpp	Wed Jul 05 17:09:16 2017 +0200
+++ b/hotspot/src/share/vm/classfile/loaderConstraints.hpp	Wed Jul 05 17:09:51 2017 +0200
@@ -66,9 +66,6 @@
   //                                           bool is_method, TRAPS)
 
   klassOop find_constrained_klass(symbolHandle name, Handle loader);
-  klassOop find_constrained_elem_klass(symbolHandle name, symbolHandle elem_name,
-                                       Handle loader, TRAPS);
-
 
   // Class loader constraints
 
--- a/hotspot/src/share/vm/classfile/systemDictionary.cpp	Wed Jul 05 17:09:16 2017 +0200
+++ b/hotspot/src/share/vm/classfile/systemDictionary.cpp	Wed Jul 05 17:09:51 2017 +0200
@@ -2178,9 +2178,8 @@
   // a loader constraint that would require this loader to return the
   // klass that is already loaded.
   if (FieldType::is_array(class_name())) {
-    // Array classes are hard because their klassOops are not kept in the
-    // constraint table. The array klass may be constrained, but the elem class
-    // may not be.
+    // For array classes, their klassOops are not kept in the
+    // constraint table. The element klassOops are.
     jint dimension;
     symbolOop object_key;
     BasicType t = FieldType::get_array_info(class_name(), &dimension,
@@ -2190,8 +2189,9 @@
     } else {
       symbolHandle elem_name(THREAD, object_key);
       MutexLocker mu(SystemDictionary_lock, THREAD);
-      klass = constraints()->find_constrained_elem_klass(class_name, elem_name, class_loader, THREAD);
+      klass = constraints()->find_constrained_klass(elem_name, class_loader);
     }
+    // If element class already loaded, allocate array klass
     if (klass != NULL) {
       klass = Klass::cast(klass)->array_klass_or_null(dimension);
     }
@@ -2209,22 +2209,38 @@
                                              Handle class_loader1,
                                              Handle class_loader2,
                                              Thread* THREAD) {
-  unsigned int d_hash1 = dictionary()->compute_hash(class_name, class_loader1);
+  symbolHandle constraint_name;
+  if (!FieldType::is_array(class_name())) {
+    constraint_name = class_name;
+  } else {
+    // For array classes, their klassOops are not kept in the
+    // constraint table. The element classes are.
+    jint dimension;
+    symbolOop object_key;
+    BasicType t = FieldType::get_array_info(class_name(), &dimension,
+                                            &object_key, CHECK_(false));
+    // primitive types always pass
+    if (t != T_OBJECT) {
+      return true;
+    } else {
+      constraint_name = symbolHandle(THREAD, object_key);
+    }
+  }
+  unsigned int d_hash1 = dictionary()->compute_hash(constraint_name, class_loader1);
   int d_index1 = dictionary()->hash_to_index(d_hash1);
 
-  unsigned int d_hash2 = dictionary()->compute_hash(class_name, class_loader2);
+  unsigned int d_hash2 = dictionary()->compute_hash(constraint_name, class_loader2);
   int d_index2 = dictionary()->hash_to_index(d_hash2);
-
   {
-    MutexLocker mu_s(SystemDictionary_lock, THREAD);
+  MutexLocker mu_s(SystemDictionary_lock, THREAD);
 
-    // Better never do a GC while we're holding these oops
-    No_Safepoint_Verifier nosafepoint;
+  // Better never do a GC while we're holding these oops
+  No_Safepoint_Verifier nosafepoint;
 
-    klassOop klass1 = find_class(d_index1, d_hash1, class_name, class_loader1);
-    klassOop klass2 = find_class(d_index2, d_hash2, class_name, class_loader2);
-    return constraints()->add_entry(class_name, klass1, class_loader1,
-                                    klass2, class_loader2);
+  klassOop klass1 = find_class(d_index1, d_hash1, constraint_name, class_loader1);
+  klassOop klass2 = find_class(d_index2, d_hash2, constraint_name, class_loader2);
+  return constraints()->add_entry(constraint_name, klass1, class_loader1,
+                                  klass2, class_loader2);
   }
 }
 
@@ -2301,6 +2317,7 @@
 // Returns the name of the type that failed a loader constraint check, or
 // NULL if no constraint failed. The returned C string needs cleaning up
 // with a ResourceMark in the caller.  No exception except OOME is thrown.
+// Arrays are not added to the loader constraint table, their elements are.
 char* SystemDictionary::check_signature_loaders(symbolHandle signature,
                                                Handle loader1, Handle loader2,
                                                bool is_method, TRAPS)  {
--- a/hotspot/src/share/vm/oops/typeArrayKlass.cpp	Wed Jul 05 17:09:16 2017 +0200
+++ b/hotspot/src/share/vm/oops/typeArrayKlass.cpp	Wed Jul 05 17:09:51 2017 +0200
@@ -123,16 +123,16 @@
      || (((unsigned int) length + (unsigned int) dst_pos) > (unsigned int) d->length()) ) {
     THROW(vmSymbols::java_lang_ArrayIndexOutOfBoundsException());
   }
+  // Check zero copy
+  if (length == 0)
+    return;
 
   // This is an attempt to make the copy_array fast.
-  // NB: memmove takes care of overlapping memory segments.
-  // Potential problem: memmove is not guaranteed to be word atomic
-  // Revisit in Merlin
   int l2es = log2_element_size();
   int ihs = array_header_in_bytes() / wordSize;
-  char* src = (char*) ((oop*)s + ihs) + (src_pos << l2es);
-  char* dst = (char*) ((oop*)d + ihs) + (dst_pos << l2es);
-  memmove(dst, src, length << l2es);
+  char* src = (char*) ((oop*)s + ihs) + ((size_t)src_pos << l2es);
+  char* dst = (char*) ((oop*)d + ihs) + ((size_t)dst_pos << l2es);
+  Copy::conjoint_memory_atomic(src, dst, (size_t)length << l2es);
 }
 
 
--- a/hotspot/src/share/vm/opto/cfgnode.cpp	Wed Jul 05 17:09:16 2017 +0200
+++ b/hotspot/src/share/vm/opto/cfgnode.cpp	Wed Jul 05 17:09:51 2017 +0200
@@ -956,6 +956,7 @@
     }
     if( jtkp && ttkp ) {
       if( jtkp->is_loaded() &&  jtkp->klass()->is_interface() &&
+          !jtkp->klass_is_exact() && // Keep exact interface klass (6894807)
           ttkp->is_loaded() && !ttkp->klass()->is_interface() ) {
         assert(ft == ttkp->cast_to_ptr_type(jtkp->ptr()) ||
                ft->isa_narrowoop() && ft->make_ptr() == ttkp->cast_to_ptr_type(jtkp->ptr()), "");
--- a/hotspot/src/share/vm/opto/type.cpp	Wed Jul 05 17:09:16 2017 +0200
+++ b/hotspot/src/share/vm/opto/type.cpp	Wed Jul 05 17:09:51 2017 +0200
@@ -2545,12 +2545,15 @@
       ftip->is_loaded() &&  ftip->klass()->is_interface() &&
       ktip->is_loaded() && !ktip->klass()->is_interface()) {
     // Happens in a CTW of rt.jar, 320-341, no extra flags
+    assert(!ftip->klass_is_exact(), "interface could not be exact");
     return ktip->cast_to_ptr_type(ftip->ptr());
   }
+  // Interface klass type could be exact in opposite to interface type,
+  // return it here instead of incorrect Constant ptr J/L/Object (6894807).
   if (ftkp != NULL && ktkp != NULL &&
       ftkp->is_loaded() &&  ftkp->klass()->is_interface() &&
+      !ftkp->klass_is_exact() && // Keep exact interface klass
       ktkp->is_loaded() && !ktkp->klass()->is_interface()) {
-    // Happens in a CTW of rt.jar, 320-341, no extra flags
     return ktkp->cast_to_ptr_type(ftkp->ptr());
   }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/6892265/Test.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+/**
+ * @test
+ * @bug 6892265
+ * @summary System.arraycopy unable to reference elements beyond Integer.MAX_VALUE bytes
+ *
+ * @run main/othervm Test
+ */
+
+public class Test {
+  static  final int NCOPY = 1;
+  static  final int OVERFLOW = 1;
+  static  int[] src2 = new int[NCOPY];
+  static  int[] dst2;
+
+  static void test() {
+    int N;
+    int SIZE;
+
+    N = Integer.MAX_VALUE/4 + OVERFLOW;
+    System.arraycopy(src2, 0, dst2, N, NCOPY);
+    System.arraycopy(dst2, N, src2, 0, NCOPY);
+  }
+
+  public static void main(String[] args) {
+    try {
+      dst2 = new int[NCOPY + Integer.MAX_VALUE/4 + OVERFLOW];
+    } catch (OutOfMemoryError e) {
+       System.exit(95); // Not enough memory
+    }
+    System.out.println("warmup");
+    for (int i=0; i <11000; i++) {
+      test();
+    }
+    System.out.println("start");
+    for (int i=0; i <1000; i++) {
+      test();
+    }
+    System.out.println("finish");
+  }
+
+}
--- a/jaxp/.hgtags	Wed Jul 05 17:09:16 2017 +0200
+++ b/jaxp/.hgtags	Wed Jul 05 17:09:51 2017 +0200
@@ -62,3 +62,4 @@
 6c0ccabb430dacdcd4479f8b197980d5da4eeb66 jdk7-b85
 81c0f115bbe5d3bcf59864465b5eca5538567c79 jdk7-b86
 8b493f1aa136d86de0885fcba15262c4fa2b1412 jdk7-b87
+d8ebd15910034f2ba50b2f129f959f86cca01419 jdk7-b88
--- a/jaxws/.hgtags	Wed Jul 05 17:09:16 2017 +0200
+++ b/jaxws/.hgtags	Wed Jul 05 17:09:51 2017 +0200
@@ -62,3 +62,4 @@
 8424512588ff95362c1f1e5f11c6efd4e7f7db6e jdk7-b85
 512b0e924a5ae0c0b7ad326182cae0dc0e4d1aa8 jdk7-b86
 3febd6fab2ac8ffddbaf7bed00d11290262af153 jdk7-b87
+8c666f8f3565974e301ccb58b7538912551a6e26 jdk7-b88
--- a/jdk/.hgtags	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/.hgtags	Wed Jul 05 17:09:51 2017 +0200
@@ -62,3 +62,4 @@
 b396584a3e64988839cca21ea1f7fbdcc9248783 jdk7-b85
 eae6e9ab26064d9ba0e7665dd646a1fd2506fcc1 jdk7-b86
 2cafbbe9825e911a6ca6c17d9a18eb1f0bf0873c jdk7-b87
+b3c69282f6d3c90ec21056cd1ab70dc0c895b069 jdk7-b88
--- a/jdk/make/sun/javazic/tzdata/VERSION	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/VERSION	Wed Jul 05 17:09:51 2017 +0200
@@ -21,4 +21,4 @@
 # CA 95054 USA or visit www.sun.com if you need additional information or
 # have any questions.
 #
-tzdata2010b
+tzdata2010g
--- a/jdk/make/sun/javazic/tzdata/antarctica	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/antarctica	Wed Jul 05 17:09:51 2017 +0200
@@ -79,6 +79,33 @@
 Rule	ChileAQ	1999	max	-	Oct	Sun>=9	4:00u	1:00	S
 Rule	ChileAQ	2000	max	-	Mar	Sun>=9	3:00u	0	-
 
+# These rules are stolen from the `australasia' file.
+Rule	AusAQ	1917	only	-	Jan	 1	0:01	1:00	-
+Rule	AusAQ	1917	only	-	Mar	25	2:00	0	-
+Rule	AusAQ	1942	only	-	Jan	 1	2:00	1:00	-
+Rule	AusAQ	1942	only	-	Mar	29	2:00	0	-
+Rule	AusAQ	1942	only	-	Sep	27	2:00	1:00	-
+Rule	AusAQ	1943	1944	-	Mar	lastSun	2:00	0	-
+Rule	AusAQ	1943	only	-	Oct	 3	2:00	1:00	-
+Rule	ATAQ	1967	only	-	Oct	Sun>=1	2:00s	1:00	-
+Rule	ATAQ	1968	only	-	Mar	lastSun	2:00s	0	-
+Rule	ATAQ	1968	1985	-	Oct	lastSun	2:00s	1:00	-
+Rule	ATAQ	1969	1971	-	Mar	Sun>=8	2:00s	0	-
+Rule	ATAQ	1972	only	-	Feb	lastSun	2:00s	0	-
+Rule	ATAQ	1973	1981	-	Mar	Sun>=1	2:00s	0	-
+Rule	ATAQ	1982	1983	-	Mar	lastSun	2:00s	0	-
+Rule	ATAQ	1984	1986	-	Mar	Sun>=1	2:00s	0	-
+Rule	ATAQ	1986	only	-	Oct	Sun>=15	2:00s	1:00	-
+Rule	ATAQ	1987	1990	-	Mar	Sun>=15	2:00s	0	-
+Rule	ATAQ	1987	only	-	Oct	Sun>=22	2:00s	1:00	-
+Rule	ATAQ	1988	1990	-	Oct	lastSun	2:00s	1:00	-
+Rule	ATAQ	1991	1999	-	Oct	Sun>=1	2:00s	1:00	-
+Rule	ATAQ	1991	2005	-	Mar	lastSun	2:00s	0	-
+Rule	ATAQ	2000	only	-	Aug	lastSun	2:00s	1:00	-
+Rule	ATAQ	2001	max	-	Oct	Sun>=1	2:00s	1:00	-
+Rule	ATAQ	2006	only	-	Apr	Sun>=1	2:00s	0	-
+Rule	ATAQ	2007	only	-	Mar	lastSun	2:00s	0	-
+Rule	ATAQ	2008	max	-	Apr	Sun>=1	2:00s	0	-
 
 # Argentina - year-round bases
 # Belgrano II, Confin Coast, -770227-0343737, since 1972-02-05
@@ -120,20 +147,52 @@
 # http://www.timeanddate.com/news/time/antarctica-new-times.html
 # </a>
 
+# From Steffen Thorsen (2010-03-10):
+# We got these changes from the Australian Antarctic Division:
+# - Macquarie Island will stay on UTC+11 for winter and therefore not
+# switch back from daylight savings time when other parts of Australia do
+# on 4 April.
+#
+# - Casey station reverted to its normal time of UTC+8 on 5 March 2010.
+# The change to UTC+11 is being considered as a regular summer thing but
+# has not been decided yet.
+#
+# - Davis station will revert to its normal time of UTC+7 at 10 March 2010
+# 20:00 UTC.
+#
+# - Mawson station stays on UTC+5.
+#
+# In addition to the Rule changes for Casey/Davis, it means that Macquarie
+# will no longer be like Hobart and will have to have its own Zone created.
+#
+# Background:
+# <a href="http://www.timeanddate.com/news/time/antartica-time-changes-2010.html">
+# http://www.timeanddate.com/news/time/antartica-time-changes-2010.html
+# </a>
+
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone Antarctica/Casey	0	-	zzz	1969
 			8:00	-	WST	2009 Oct 18 2:00
 						# Western (Aus) Standard Time
-			11:00	-	CAST	# Casey Time
+			11:00	-	CAST	2010 Mar 5 2:00
+						# Casey Time
+			8:00	-	WST
 Zone Antarctica/Davis	0	-	zzz	1957 Jan 13
 			7:00	-	DAVT	1964 Nov # Davis Time
 			0	-	zzz	1969 Feb
 			7:00	-	DAVT	2009 Oct 18 2:00
-			5:00	-	DAVT
+			5:00	-	DAVT	2010 Mar 10 20:00u
+			7:00	-	DAVT
 Zone Antarctica/Mawson	0	-	zzz	1954 Feb 13
 			6:00	-	MAWT	2009 Oct 18 2:00
 						# Mawson Time
 			5:00	-	MAWT
+Zone Antarctica/Macquarie 0	-	zzz	1911
+			10:00	-	EST	1916 Oct 1 2:00
+			10:00	1:00	EST	1917 Feb
+			10:00	AusAQ	EST	1967
+			10:00	ATAQ	EST	2010 Apr 4 3:00
+			11:00	-	MIST	# Macquarie Island Time
 # References:
 # <a href="http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html">
 # Casey Weather (1998-02-26)
--- a/jdk/make/sun/javazic/tzdata/asia	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/asia	Wed Jul 05 17:09:51 2017 +0200
@@ -236,22 +236,20 @@
 # 2010 midnight. The decision came at a cabinet meeting at the Prime
 # Minister's Office last night..."
 
-# From Danvin Ruangchan (2009-12-24):
-# ...the news mentions DST will be turned off again 7 months after March
-# 31st on Oct 31, 2010.
-
-# From Arthur David Olson (2009-12-26):
-# Indeed, "The government will advance again the Banglasdesh Standard
-# Time by one one hour on March 31 next year by enforcing the Daylight
-# Saving Time (DST) for seven months. It will continue till October 31
-# until further notice." I take that last sentence as the
-# establishment of a rule.
+# From Alexander Krivenyshev (2010-03-22):
+# According to Bangladesh newspaper "The Daily Star,"
+# Cabinet cancels Daylight Saving Time 
+# <a href="http://www.thedailystar.net/newDesign/latest_news.php?nid=22817">
+# http://www.thedailystar.net/newDesign/latest_news.php?nid=22817
+# </a>
+# or
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html">
+# http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html
+# </a>
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Dhaka	2009	only	-	Jun	19	23:00	1:00	S
-Rule	Dhaka	2010	only	-	Jan	1	0:00	0	-
-Rule	Dhaka	2010	max	-	Mar	31	23:00	1:00	S
-Rule	Dhaka	2010	max	-	Nov	1	0:00	0	-
+Rule	Dhaka	2009	only	-	Dec	31	23:59	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Dhaka	6:01:40 -	LMT	1890
@@ -2131,6 +2129,32 @@
 # http://www.worldtimezone.com/dst_news/dst_news_gazastrip02.html
 # </a>
 
+# From Alexander Krivenyshev (2010-03-19):
+# According to Voice of Palestine DST will last for 191 days, from March
+# 26, 2010 till "the last Sunday before the tenth day of Tishri
+# (October), each year" (October 03, 2010?)
+#
+# <a href="http://palvoice.org/forums/showthread.php?t=245697">
+# http://palvoice.org/forums/showthread.php?t=245697
+# </a>
+# (in Arabic)
+# or
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_westbank03.html">
+# http://www.worldtimezone.com/dst_news/dst_news_westbank03.html
+# </a>
+
+# From Steffen Thorsen (2010-03-24):
+# ...Ma'an News Agency reports that Hamas cabinet has decided it will
+# start one day later, at 12:01am. Not sure if they really mean 12:01am or
+# noon though:
+#
+# <a href="http://www.maannews.net/eng/ViewDetails.aspx?ID=271178">
+# http://www.maannews.net/eng/ViewDetails.aspx?ID=271178
+# </a>
+# (Ma'an News Agency)
+# "At 12:01am Friday, clocks in Israel and the West Bank will change to
+# 1:01am, while Gaza clocks will change at 12:01am Saturday morning."
+
 # The rules for Egypt are stolen from the `africa' file.
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule EgyptAsia	1957	only	-	May	10	0:00	1:00	S
@@ -2148,7 +2172,8 @@
 Rule Palestine	2006	only	-	Sep	22	0:00	0	-
 Rule Palestine	2007	only	-	Sep	Thu>=8	2:00	0	-
 Rule Palestine	2008	only	-	Aug	lastFri	2:00	0	-
-Rule Palestine	2009	max	-	Mar	lastFri	0:00	1:00	S
+Rule Palestine	2009	only	-	Mar	lastFri	0:00	1:00	S
+Rule Palestine	2010	max	-	Mar	lastSat	0:01	1:00	S
 Rule Palestine	2009	max	-	Sep	Fri>=1	2:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -2440,9 +2465,18 @@
 # Thursday of the month or the start of the last Friday of the month or
 # something else. For now, use the start of the last Friday.
 
+# From Steffen Thorsen (2010-03-17):
+# The "Syrian News Station" reported on 2010-03-16 that the Council of
+# Ministers has decided that Syria will start DST on midnight Thursday
+# 2010-04-01: (midnight between Thursday and Friday):
+# <a href="http://sns.sy/sns/?path=news/read/11421">
+# http://sns.sy/sns/?path=news/read/11421 (Arabic)
+# </a>
+
 Rule	Syria	2008	only	-	Apr	Fri>=1	0:00	1:00	S
 Rule	Syria	2008	only	-	Nov	1	0:00	0	-
-Rule	Syria	2009	max	-	Mar	lastFri	0:00	1:00	S
+Rule	Syria	2009	only	-	Mar	lastFri	0:00	1:00	S
+Rule	Syria	2010	max	-	Apr	Fri>=1	0:00	1:00	S
 Rule	Syria	2009	max	-	Oct	lastFri	0:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
--- a/jdk/make/sun/javazic/tzdata/australasia	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/australasia	Wed Jul 05 17:09:51 2017 +0200
@@ -289,11 +289,30 @@
 # <a href="http://www.fiji.gov.fj/publish/page_16198.shtml">
 # http://www.fiji.gov.fj/publish/page_16198.shtml
 # </a>
+
+# From Steffen Thorsen (2010-03-03):
+# The Cabinet in Fiji has decided to end DST about a month early, on
+# 2010-03-28 at 03:00.
+# The plan is to observe DST again, from 2010-10-24 to sometime in March
+# 2011 (last Sunday a good guess?).
+#
+# Official source:
+# <a href="http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=1096:3310-cabinet-approves-change-in-daylight-savings-dates&catid=49:cabinet-releases&Itemid=166">
+# http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=1096:3310-cabinet-approves-change-in-daylight-savings-dates&catid=49:cabinet-releases&Itemid=166
+# </a>
+#
+# A bit more background info here:
+# <a href="http://www.timeanddate.com/news/time/fiji-dst-ends-march-2010.html">
+# http://www.timeanddate.com/news/time/fiji-dst-ends-march-2010.html
+# </a>
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Fiji	1998	1999	-	Nov	Sun>=1	2:00	1:00	S
 Rule	Fiji	1999	2000	-	Feb	lastSun	3:00	0	-
 Rule	Fiji	2009	only	-	Nov	29	2:00	1:00	S
-Rule	Fiji	2010	only	-	Apr	25	3:00	0	-
+Rule	Fiji	2010	only	-	Mar	lastSun	3:00	0	-
+Rule	Fiji	2010	only	-	Oct	24	2:00	1:00	S
+Rule	Fiji	2011	only	-	Mar	lastSun 3:00	0	-
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Pacific/Fiji	11:53:40 -	LMT	1915 Oct 26	# Suva
 			12:00	Fiji	FJ%sT	# Fiji Time
@@ -471,70 +490,30 @@
 
 # Samoa
 
-# From Alexander Krivenyshev (2008-12-06):
-# The Samoa government (Western Samoa) may implement DST on the first Sunday of 
-# October 2009 (October 4, 2009) until the last Sunday of March 2010 (March 28, 
-# 2010). 
-# 
-# "Selected Committee reports to Cabinet on Daylight Saving Time",
-# Government of Samoa:
-# <a href="http://www.govt.ws/pr_article.cfm?pr_id=560">
-# http://www.govt.ws/pr_article.cfm?pr_id=560
-# </a>
-# or
-# <a href="http://www.worldtimezone.com/dst_news/dst_news_samoa01.html">
-# http://www.worldtimezone.com/dst_news/dst_news_samoa01.html
-# </a>
-
-# From Steffen Thorsen (2009-08-27):
-# Samoa's parliament passed the Daylight Saving Bill 2009, and will start 
-# daylight saving time on the first Sunday of October 2009 and end on the 
-# last Sunday of March 2010. We hope that the full text will be published 
-# soon, but we believe that the bill is only valid for 2009-2010. Samoa's 
-# Daylight Saving Act 2009 will be enforced as soon as the Head of State 
-# executes a proclamation publicizing this Act.
+# From Steffen Thorsen (2009-10-16):
+# We have been in contact with the government of Samoa again, and received
+# the following info:
 #
-# Some background information here, which will be updated once we have 
-# more details:
+# "Cabinet has now approved Daylight Saving to be effected next year
+# commencing from the last Sunday of September 2010 and conclude first
+# Sunday of April 2011."
+#
+# Background info:
 # <a href="http://www.timeanddate.com/news/time/samoa-dst-plan-2009.html">
 # http://www.timeanddate.com/news/time/samoa-dst-plan-2009.html
 # </a>
-
-# From Alexander Krivenyshev (2009-10-03):
-# First, my deepest condolences to people of Samoa islands and all families and
-# loved ones around the world who lost their lives in the earthquake and tsunami.
 #
-# Considering the recent devastation on Samoa by earthquake and tsunami and that
-# many government offices/ ministers are closed- not sure if "Daylight Saving
-# Bill 2009" will be implemented in next few days- on October 4, 2009.
-#
-# Here is reply from Consulate-General of Samoa in New Zealand
-# ---------------------------
-# Consul General
-# consulgeneral@samoaconsulate.org.nz
-#
-# Talofa Alexander,
-#
-# Thank you for your sympathy for our country but at this time we have not
-# been informed about the Daylight Savings Time Change.  Most Ministries in
-# Apia are closed or relocating due to weather concerns.
-#
-# When we do find out if they are still proceeding with the time change we
-# will advise you soonest.
-#
-# Kind Regards,
-# Lana
-# for: Consul General
-
-# From Steffen Thorsen (2009-10-05):
-# We have called a hotel in Samoa and asked about local time there - they 
-# are still on standard time.
+# Samoa's Daylight Saving Time Act 2009 is available here, but does not
+# contain any dates:
+# <a href="http://www.parliament.gov.ws/documents/acts/Daylight%20Saving%20Act%20%202009%20%28English%29%20-%20Final%207-7-091.pdf">
+# http://www.parliament.gov.ws/documents/acts/Daylight%20Saving%20Act%20%202009%20%28English%29%20-%20Final%207-7-091.pdf
+# </a>
 
 Zone Pacific/Apia	 12:33:04 -	LMT	1879 Jul  5
 			-11:26:56 -	LMT	1911
 			-11:30	-	SAMT	1950		# Samoa Time
-			-11:00	-	WST	2009 Oct 4
-			-11:00	1:00	WSDT	2010 Mar 28
+			-11:00	-	WST	2010 Sep 26
+			-11:00	1:00	WSDT	2011 Apr 3
 			-11:00	-	WST
 
 # Solomon Is
--- a/jdk/make/sun/javazic/tzdata/europe	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/europe	Wed Jul 05 17:09:51 2017 +0200
@@ -2063,7 +2063,9 @@
 			 3:00	Russia	KUY%sT	1991 Mar 31 2:00s
 			 2:00	Russia	KUY%sT	1991 Sep 29 2:00s
 			 3:00	-	KUYT	1991 Oct 20 3:00
-			 4:00	Russia	SAM%sT	# Samara Time
+			 4:00	Russia	SAM%sT	2010 Mar 28 2:00s # Samara Time
+			 3:00	Russia	SAM%sT
+
 #
 # From Oscar van Vlijmen (2001-08-25): [This region consists of]
 # Respublika Bashkortostan, Komi-Permyatskij avtonomnyj okrug,
@@ -2216,7 +2218,8 @@
 			11:00	-	PETT	1930 Jun 21 # P-K Time
 			12:00	Russia	PET%sT	1991 Mar 31 2:00s
 			11:00	Russia	PET%sT	1992 Jan 19 2:00s
-			12:00	Russia	PET%sT
+			12:00	Russia	PET%sT	2010 Mar 28 2:00s
+			11:00	Russia	PET%sT
 #
 # Chukotskij avtonomnyj okrug
 Zone Asia/Anadyr	11:49:56 -	LMT	1924 May  2
@@ -2224,7 +2227,8 @@
 			13:00	Russia	ANA%sT	1982 Apr  1 0:00s
 			12:00	Russia	ANA%sT	1991 Mar 31 2:00s
 			11:00	Russia	ANA%sT	1992 Jan 19 2:00s
-			12:00	Russia	ANA%sT
+			12:00	Russia	ANA%sT	2010 Mar 28 2:00s
+			11:00	Russia	ANA%sT
 
 # Serbia
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
--- a/jdk/make/sun/javazic/tzdata/southamerica	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/southamerica	Wed Jul 05 17:09:51 2017 +0200
@@ -1143,6 +1143,18 @@
 # http://www.shoa.cl/noticias/2008/04hora/hora.htm
 # </a>.
 
+# From Angel Chiang (2010-03-04):
+# Subject: DST in Chile exceptionally extended to 3 April due to earthquake
+# <a href="http://www.gobiernodechile.cl/viewNoticia.aspx?idArticulo=30098">
+# http://www.gobiernodechile.cl/viewNoticia.aspx?idArticulo=30098
+# </a>
+# (in Spanish, last paragraph).
+#
+# This is breaking news. There should be more information available later.
+
+# From Arthur Daivd Olson (2010-03-06):
+# Angel Chiang's message confirmed by Julio Pacheco; Julio provided a patch.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Chile	1927	1932	-	Sep	 1	0:00	1:00	S
 Rule	Chile	1928	1932	-	Apr	 1	0:00	0	-
@@ -1177,7 +1189,9 @@
 # N.B.: the end of March 29 in Chile is March 30 in Universal time,
 # which is used below in specifying the transition.
 Rule	Chile	2008	only	-	Mar	30	3:00u	0	-
-Rule	Chile	2009	max	-	Mar	Sun>=9	3:00u	0	-
+Rule	Chile	2009	only	-	Mar	Sun>=9	3:00u	0	-
+Rule	Chile	2010	only	-	Apr	 4	3:00u	0	-
+Rule	Chile	2011	max	-	Mar	Sun>=9	3:00u	0	-
 # IATA SSIM anomalies: (1992-02) says 1992-03-14;
 # (1996-09) says 1998-03-08.  Ignore these.
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
@@ -1386,8 +1400,24 @@
 # Decree 1,867 (2004-03-05)
 # From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13)
 # <http://www.presidencia.gov.py/decretos/D1867.pdf>
-Rule	Para	2004	max	-	Oct	Sun>=15	0:00	1:00	S
-Rule	Para	2005	max	-	Mar	Sun>=8	0:00	0	-
+Rule	Para	2004	2009	-	Oct	Sun>=15	0:00	1:00	S
+Rule	Para	2005	2009	-	Mar	Sun>=8	0:00	0	-
+# From Carlos Raul Perasso (2010-02-18):
+# By decree number 3958 issued yesterday (
+# <a href="http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf">
+# http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf
+# </a>
+# )
+# Paraguay changes its DST schedule, postponing the March rule to April and
+# modifying the October date. The decree reads:
+# ...
+# Art. 1. It is hereby established that from the second Sunday of the month of
+# April of this year (2010), the official time is to be set back 60 minutes,
+# and that on the first Sunday of the month of October, it is to be set
+# forward 60 minutes, in all the territory of the Paraguayan Republic.
+# ...
+Rule	Para	2010	max	-	Oct	Sun>=1	0:00	1:00	S
+Rule	Para	2010	max	-	Apr	Sun>=8	0:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone America/Asuncion	-3:50:40 -	LMT	1890
--- a/jdk/make/sun/javazic/tzdata/zone.tab	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/make/sun/javazic/tzdata/zone.tab	Wed Jul 05 17:09:51 2017 +0200
@@ -66,6 +66,7 @@
 AQ	-7824+10654	Antarctica/Vostok	Vostok Station, S Magnetic Pole
 AQ	-6640+14001	Antarctica/DumontDUrville	Dumont-d'Urville Station, Terre Adelie
 AQ	-690022+0393524	Antarctica/Syowa	Syowa Station, E Ongul I
+AQ	-5430+15857	Antarctica/Macquarie	Macquarie Island Station, Macquarie Island
 AR	-3436-05827	America/Argentina/Buenos_Aires	Buenos Aires (BA, CF)
 AR	-3124-06411	America/Argentina/Cordoba	most locations (CB, CC, CN, ER, FM, MN, SE, SF)
 AR	-2447-06525	America/Argentina/Salta	(SA, LP, NQ, RN)
@@ -351,7 +352,7 @@
 RU	+5443+02030	Europe/Kaliningrad	Moscow-01 - Kaliningrad
 RU	+5545+03735	Europe/Moscow	Moscow+00 - west Russia
 RU	+4844+04425	Europe/Volgograd	Moscow+00 - Caspian Sea
-RU	+5312+05009	Europe/Samara	Moscow+01 - Samara, Udmurtia
+RU	+5312+05009	Europe/Samara	Moscow - Samara, Udmurtia
 RU	+5651+06036	Asia/Yekaterinburg	Moscow+02 - Urals
 RU	+5500+07324	Asia/Omsk	Moscow+03 - west Siberia
 RU	+5502+08255	Asia/Novosibirsk	Moscow+03 - Novosibirsk
@@ -362,8 +363,8 @@
 RU	+4310+13156	Asia/Vladivostok	Moscow+07 - Amur River
 RU	+4658+14242	Asia/Sakhalin	Moscow+07 - Sakhalin Island
 RU	+5934+15048	Asia/Magadan	Moscow+08 - Magadan
-RU	+5301+15839	Asia/Kamchatka	Moscow+09 - Kamchatka
-RU	+6445+17729	Asia/Anadyr	Moscow+10 - Bering Sea
+RU	+5301+15839	Asia/Kamchatka	Moscow+08 - Kamchatka
+RU	+6445+17729	Asia/Anadyr	Moscow+08 - Bering Sea
 RW	-0157+03004	Africa/Kigali
 SA	+2438+04643	Asia/Riyadh
 SB	-0932+16012	Pacific/Guadalcanal
--- a/jdk/make/sun/nio/cs/FILES_java.gmk	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/make/sun/nio/cs/FILES_java.gmk	Wed Jul 05 17:09:51 2017 +0200
@@ -42,8 +42,6 @@
 	sun/io/ByteToCharBig5_Solaris.java \
 	sun/io/ByteToCharBig5_HKSCS.java \
 	sun/io/ByteToCharMS950_HKSCS.java \
-	sun/io/ByteToCharHKSCS.java \
-	sun/io/ByteToCharHKSCS_2001.java \
 	sun/io/ByteToCharGB18030.java \
 	sun/io/ByteToCharGB18030DB.java \
 	sun/io/ByteToCharCp037.java \
@@ -173,8 +171,6 @@
 	sun/io/CharToByteBig5.java \
 	sun/io/CharToByteBig5_Solaris.java \
 	sun/io/CharToByteBig5_HKSCS.java \
-	sun/io/CharToByteHKSCS.java \
-	sun/io/CharToByteHKSCS_2001.java \
 	sun/io/CharToByteMS950_HKSCS.java \
 	sun/io/CharToByteGB18030.java \
 	sun/io/CharToByteCp037.java \
@@ -374,6 +370,9 @@
 	sun/nio/cs/ext/MacUkraine.java \
 	sun/nio/cs/ext/TIS_620.java \
         sun/nio/cs/ext/EUC_TWMapping.java \
+        sun/nio/cs/ext/HKSCSMapping.java \
+        sun/nio/cs/ext/HKSCS2001Mapping.java \
+        sun/nio/cs/ext/HKSCS_XPMapping.java \
 	sun/nio/cs/ext/IBM1381.java \
 	sun/nio/cs/ext/IBM1383.java \
 	sun/nio/cs/ext/IBM930.java \
@@ -394,7 +393,8 @@
 	sun/nio/cs/ext/MS936.java \
 	sun/nio/cs/ext/MS949.java \
 	sun/nio/cs/ext/MS950.java \
-	sun/nio/cs/ext/GBK.java
+	sun/nio/cs/ext/GBK.java   \
+	sun/nio/cs/ext/Big5.java
 
 FILES_java = $(FILES_src) $(FILES_gen_extcs)
 
--- a/jdk/make/sun/nio/cs/Makefile	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/make/sun/nio/cs/Makefile	Wed Jul 05 17:09:51 2017 +0200
@@ -93,7 +93,9 @@
 	$(MKDIR) -p $(GENCSEXT)
 	$(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE)	$(GENCSDATASRC) $(GENCSEXT) extsbcs
 	$(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) euctw \
-		$(GENCSSRCDIR)/GenerateEUC_TW.java
+		$(GENCSSRCDIR)/EUC_TW.java
+	$(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) hkscs \
+		$(GENCSSRCDIR)/HKSCS.java
 	$(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) dbcs
 
 $(CLASSDESTDIR)/$(SERVICE_DESCRIPTION_PATH): \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/Big5.c2b	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,8 @@
+#Add the following 5 characters which are duplicated
+#or have conflicts with other characters.
+0xA1C4	0xFF3F	#REGWARN Fallback 0xA1C4 SPACING UNDERSCORE
+0xA2AC	0x2571	#REGWARN Fallback 0xA2AC LT DIAG UP RIGHT TO LOW LEFT
+0xA2AD	0x2572	#REGWARN Fallback 0xA2AD LT DIAG UP LEFT TO LOW RIGHT
+0xA451	0x5341	#REGWARN Fallback 0xA451 HANGZHOU NUMERAL TEN
+0xA4CA	0x5345	#REGWARN Fallback 0xA4CA HANGZHOU NUMERAL THIRTY
+#
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/Big5.map	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,13837 @@
+#  From Big5.b2c
+#  Added sb
+#  Added Big5.b2c-irreversible
+#
+0x00	0x0000
+0x01	0x0001
+0x02	0x0002
+0x03	0x0003
+0x04	0x0004
+0x05	0x0005
+0x06	0x0006
+0x07	0x0007
+0x08	0x0008
+0x09	0x0009
+0x0a	0x000a
+0x0b	0x000b
+0x0c	0x000c
+0x0d	0x000d
+0x0e	0x000e
+0x0f	0x000f
+0x10	0x0010
+0x11	0x0011
+0x12	0x0012
+0x13	0x0013
+0x14	0x0014
+0x15	0x0015
+0x16	0x0016
+0x17	0x0017
+0x18	0x0018
+0x19	0x0019
+0x1a	0x001a
+0x1b	0x001b
+0x1c	0x001c
+0x1d	0x001d
+0x1e	0x001e
+0x1f	0x001f
+0x20    0x0020  # SPACE
+0x21    0x0021  # EXCLAMATION MARK
+0x22    0x0022  # QUOTATION MARK
+0x23    0x0023  # NUMBER SIGN
+0x24    0x0024  # DOLLAR SIGN
+0x25    0x0025  # PERCENT SIGN
+0x26    0x0026  # AMPERSAND
+0x27    0x0027  # APOSTROPHE
+0x28    0x0028  # LEFT PARENTHESIS
+0x29    0x0029  # RIGHT PARENTHESIS
+0x2A    0x002A  # ASTERISK
+0x2B    0x002B  # PLUS SIGN
+0x2C    0x002C  # COMMA
+0x2D    0x002D  # HYPHEN-MINUS
+0x2E    0x002E  # FULL STOP
+0x2F    0x002F  # SOLIDUS
+0x30    0x0030  # DIGIT ZERO
+0x31    0x0031  # DIGIT ONE
+0x32    0x0032  # DIGIT TWO
+0x33    0x0033  # DIGIT THREE
+0x34    0x0034  # DIGIT FOUR
+0x35    0x0035  # DIGIT FIVE
+0x36    0x0036  # DIGIT SIX
+0x37    0x0037  # DIGIT SEVEN
+0x38    0x0038  # DIGIT EIGHT
+0x39    0x0039  # DIGIT NINE
+0x3A    0x003A  # COLON
+0x3B    0x003B  # SEMICOLON
+0x3C    0x003C  # LESS-THAN SIGN
+0x3D    0x003D  # EQUALS SIGN
+0x3E    0x003E  # GREATER-THAN SIGN
+0x3F    0x003F  # QUESTION MARK
+0x40    0x0040  # COMMERCIAL AT
+0x41    0x0041  # LATIN CAPITAL LETTER A
+0x42    0x0042  # LATIN CAPITAL LETTER B
+0x43    0x0043  # LATIN CAPITAL LETTER C
+0x44    0x0044  # LATIN CAPITAL LETTER D
+0x45    0x0045  # LATIN CAPITAL LETTER E
+0x46    0x0046  # LATIN CAPITAL LETTER F
+0x47    0x0047  # LATIN CAPITAL LETTER G
+0x48    0x0048  # LATIN CAPITAL LETTER H
+0x49    0x0049  # LATIN CAPITAL LETTER I
+0x4A    0x004A  # LATIN CAPITAL LETTER J
+0x4B    0x004B  # LATIN CAPITAL LETTER K
+0x4C    0x004C  # LATIN CAPITAL LETTER L
+0x4D    0x004D  # LATIN CAPITAL LETTER M
+0x4E    0x004E  # LATIN CAPITAL LETTER N
+0x4F    0x004F  # LATIN CAPITAL LETTER O
+0x50    0x0050  # LATIN CAPITAL LETTER P
+0x51    0x0051  # LATIN CAPITAL LETTER Q
+0x52    0x0052  # LATIN CAPITAL LETTER R
+0x53    0x0053  # LATIN CAPITAL LETTER S
+0x54    0x0054  # LATIN CAPITAL LETTER T
+0x55    0x0055  # LATIN CAPITAL LETTER U
+0x56    0x0056  # LATIN CAPITAL LETTER V
+0x57    0x0057  # LATIN CAPITAL LETTER W
+0x58    0x0058  # LATIN CAPITAL LETTER X
+0x59    0x0059  # LATIN CAPITAL LETTER Y
+0x5A    0x005A  # LATIN CAPITAL LETTER Z
+0x5B    0x005B  # LEFT SQUARE BRACKET
+0x5C    0x005C  # WON SIGN
+0x5D    0x005D  # RIGHT SQUARE BRACKET
+0x5E    0x005E  # CIRCUMFLEX ACCENT
+0x5F    0x005F  # LOW LINE
+0x60    0x0060  # GRAVE ACCENT
+0x61    0x0061  # LATIN SMALL LETTER A
+0x62    0x0062  # LATIN SMALL LETTER B
+0x63    0x0063  # LATIN SMALL LETTER C
+0x64    0x0064  # LATIN SMALL LETTER D
+0x65    0x0065  # LATIN SMALL LETTER E
+0x66    0x0066  # LATIN SMALL LETTER F
+0x67    0x0067  # LATIN SMALL LETTER G
+0x68    0x0068  # LATIN SMALL LETTER H
+0x69    0x0069  # LATIN SMALL LETTER I
+0x6A    0x006A  # LATIN SMALL LETTER J
+0x6B    0x006B  # LATIN SMALL LETTER K
+0x6C    0x006C  # LATIN SMALL LETTER L
+0x6D    0x006D  # LATIN SMALL LETTER M
+0x6E    0x006E  # LATIN SMALL LETTER N
+0x6F    0x006F  # LATIN SMALL LETTER O
+0x70    0x0070  # LATIN SMALL LETTER P
+0x71    0x0071  # LATIN SMALL LETTER Q
+0x72    0x0072  # LATIN SMALL LETTER R
+0x73    0x0073  # LATIN SMALL LETTER S
+0x74    0x0074  # LATIN SMALL LETTER T
+0x75    0x0075  # LATIN SMALL LETTER U
+0x76    0x0076  # LATIN SMALL LETTER V
+0x77    0x0077  # LATIN SMALL LETTER W
+0x78    0x0078  # LATIN SMALL LETTER X
+0x79    0x0079  # LATIN SMALL LETTER Y
+0x7A    0x007A  # LATIN SMALL LETTER Z
+0x7B    0x007B  # LEFT CURLY BRACKET
+0x7C    0x007C  # VERTICAL LINE
+0x7D    0x007D  # RIGHT CURLY BRACKET
+0x7E    0x007E  # TILDE
+0x7F    0x007F
+#
+0xA140	0x3000	# IDEOGRAPHIC SPACE
+0xA141	0xFF0C	# FULLWIDTH COMMA
+0xA142	0x3001	# IDEOGRAPHIC COMMA
+0xA143	0x3002	# IDEOGRAPHIC FULL STOP
+0xA144	0xFF0E	# FULLWIDTH FULL STOP
+0xA145	0x2022	# BULLET
+0xA146	0xFF1B	# FULLWIDTH SEMICOLON
+0xA147	0xFF1A	# FULLWIDTH COLON
+0xA148	0xFF1F	# FULLWIDTH QUESTION MARK
+0xA149	0xFF01	# FULLWIDTH EXCLAMATION MARK
+0xA14A	0xFE30	# PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+0xA14B	0x2026	# HORIZONTAL ELLIPSIS
+0xA14C	0x2025	# TWO DOT LEADER
+0xA14D	0xFE50	# SMALL COMMA
+0xA14E	0xFF64	# HALFWIDTH IDEOGRAPHIC COMMA
+0xA14F	0xFE52	# SMALL FULL STOP
+0xA150	0x00B7	# MIDDLE DOT
+0xA151	0xFE54	# SMALL SEMICOLON
+0xA152	0xFE55	# SMALL COLON
+0xA153	0xFE56	# SMALL QUESTION MARK
+0xA154	0xFE57	# SMALL EXCLAMATION MARK
+0xA155	0xFF5C	# FULLWIDTH VERTICAL BAR
+0xA156	0x2013	# EN DASH
+0xA157	0xFE31	# PRESENTATION FORM FOR VERTICAL EM DASH
+0xA158	0x2014	# EM DASH
+0xA159	0xFE33	# PRESENTATION FORM FOR VERTICAL LOW LINE
+0xA15B	0xFE34	# PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+0xA15C	0xFE4F	# WAVY LOW LINE
+0xA15D	0xFF08	# FULLWIDTH LEFT PARENTHESIS
+0xA15E	0xFF09	# FULLWIDTH RIGHT PARENTHESIS
+0xA15F	0xFE35	# PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+0xA160	0xFE36	# PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+0xA161	0xFF5B	# FULLWIDTH LEFT CURLY BRACKET
+0xA162	0xFF5D	# FULLWIDTH RIGHT CURLY BRACKET
+0xA163	0xFE37	# PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+0xA164	0xFE38	# PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+0xA165	0x3014	# LEFT TORTOISE SHELL BRACKET
+0xA166	0x3015	# RIGHT TORTOISE SHELL BRACKET
+0xA167	0xFE39	# PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+0xA168	0xFE3A	# PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+0xA169	0x3010	# LEFT BLACK LENTICULAR BRACKET
+0xA16A	0x3011	# RIGHT BLACK LENTICULAR BRACKET
+0xA16B	0xFE3B	# PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+0xA16C	0xFE3C	# PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+0xA16D	0x300A	# LEFT DOUBLE ANGLE BRACKET
+0xA16E	0x300B	# RIGHT DOUBLE ANGLE BRACKET
+0xA16F	0xFE3D	# PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+0xA170	0xFE3E	# PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+0xA171	0x3008	# LEFT ANGLE BRACKET
+0xA172	0x3009	# RIGHT ANGLE BRACKET
+0xA173	0xFE3F	# PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+0xA174	0xFE40	# PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+0xA175	0x300C	# LEFT CORNER BRACKET
+0xA176	0x300D	# RIGHT CORNER BRACKET
+0xA177	0xFE41	# PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+0xA178	0xFE42	# PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+0xA179	0x300E	# LEFT WHITE CORNER BRACKET
+0xA17A	0x300F	# RIGHT WHITE CORNER BRACKET
+0xA17B	0xFE43	# PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+0xA17C	0xFE44	# PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+0xA17D	0xFE59	# SMALL LEFT PARENTHESIS
+0xA17E	0xFE5A	# SMALL RIGHT PARENTHESIS
+0xA1A1	0xFE5B	# SMALL LEFT CURLY BRACKET
+0xA1A2	0xFE5C	# SMALL RIGHT CURLY BRACKET
+0xA1A3	0xFE5D	# SMALL LEFT TORTOISE SHELL BRACKET
+0xA1A4	0xFE5E	# SMALL RIGHT TORTOISE SHELL BRACKET
+0xA1A5	0x2018	# LEFT SINGLE QUOTATION MARK
+0xA1A6	0x2019	# RIGHT SINGLE QUOTATION MARK
+0xA1A7	0x201C	# LEFT DOUBLE QUOTATION MARK
+0xA1A8	0x201D	# RIGHT DOUBLE QUOTATION MARK
+0xA1A9	0x301D	# REVERSED DOUBLE PRIME QUOTATION MARK
+0xA1AA	0x301E	# DOUBLE PRIME QUOTATION MARK
+0xA1AB	0x2035	# REVERSED PRIME
+0xA1AC	0x2032	# PRIME
+0xA1AD	0xFF03	# FULLWIDTH NUMBER SIGN
+0xA1AE	0xFF06	# FULLWIDTH AMPERSAND
+0xA1AF	0xFF0A	# FULLWIDTH ASTERISK
+0xA1B0	0x203B	# REFERENCE MARK
+0xA1B1	0x00A7	# SECTION SIGN
+0xA1B2	0x3003	# DITTO MARK
+0xA1B3	0x25CB	# WHITE CIRCLE
+0xA1B4	0x25CF	# BLACK CIRCLE
+0xA1B5	0x25B3	# WHITE UP-POINTING TRIANGLE
+0xA1B6	0x25B2	# BLACK UP-POINTING TRIANGLE
+0xA1B7	0x25CE	# BULLSEYE
+0xA1B8	0x2606	# WHITE STAR
+0xA1B9	0x2605	# BLACK STAR
+0xA1BA	0x25C7	# WHITE DIAMOND
+0xA1BB	0x25C6	# BLACK DIAMOND
+0xA1BC	0x25A1	# WHITE SQUARE
+0xA1BD	0x25A0	# BLACK SQUARE
+0xA1BE	0x25BD	# WHITE DOWN-POINTING TRIANGLE
+0xA1BF	0x25BC	# BLACK DOWN-POINTING TRIANGLE
+0xA1C0	0x32A3	# CIRCLED IDEOGRAPH CORRECT
+0xA1C1	0x2105	# CARE OF
+0xA1C2	0x203E	# OVERLINE
+0xA1C6	0xFE49	# DASHED OVERLINE
+0xA1C7	0xFE4A	# CENTRELINE OVERLINE
+0xA1C8	0xFE4D	# DASHED LOW LINE
+0xA1C9	0xFE4E	# CENTRELINE LOW LINE
+0xA1CA	0xFE4B	# WAVY OVERLINE
+0xA1CB	0xFE4C	# DOUBLE WAVY OVERLINE
+0xA1CC	0xFE5F	# SMALL NUMBER SIGN
+0xA1CD	0xFE60	# SMALL AMPERSAND
+0xA1CE	0xFE61	# SMALL ASTERISK
+0xA1CF	0xFF0B	# FULLWIDTH PLUS SIGN
+0xA1D0	0xFF0D	# FULLWIDTH HYPHEN-MINUS
+0xA1D1	0x00D7	# MULTIPLICATION SIGN
+0xA1D2	0x00F7	# DIVISION SIGN
+0xA1D3	0x00B1	# PLUS-MINUS SIGN
+0xA1D4	0x221A	# SQUARE ROOT
+0xA1D5	0xFF1C	# FULLWIDTH LESS-THAN SIGN
+0xA1D6	0xFF1E	# FULLWIDTH GREATER-THAN SIGN
+0xA1D7	0xFF1D	# FULLWIDTH EQUALS SIGN
+0xA1D8	0x2266	# LESS THAN OVER EQUAL TO
+0xA1D9	0x2267	# GREATER THAN OVER EQUAL TO
+0xA1DA	0x2260	# NOT EQUAL TO
+0xA1DB	0x221E	# INFINITY
+0xA1DC	0x2252	# APPROXIMATELY EQUAL TO OR THE IMAGE OF
+0xA1DD	0x2261	# IDENTICAL TO
+0xA1DE	0xFE62	# SMALL PLUS SIGN
+0xA1DF	0xFE63	# SMALL HYPHEN-MINUS
+0xA1E0	0xFE64	# SMALL LESS-THAN SIGN
+0xA1E1	0xFE65	# SMALL GREATER-THAN SIGN
+0xA1E2	0xFE66	# SMALL EQUALS SIGN
+0xA1E3	0x223C	# TILDE OPERATOR
+0xA1E4	0x2229	# INTERSECTION
+0xA1E5	0x222A	# UNION
+0xA1E6	0x22A5	# UP TACK
+0xA1E7	0x2220	# ANGLE
+0xA1E8	0x221F	# RIGHT ANGLE
+0xA1E9	0x22BF	# RIGHT TRIANGLE
+0xA1EA	0x33D2	# SQUARE LOG
+0xA1EB	0x33D1	# SQUARE LN
+0xA1EC	0x222B	# INTEGRAL
+0xA1ED	0x222E	# CONTOUR INTEGRAL
+0xA1EE	0x2235	# BECAUSE
+0xA1EF	0x2234	# THEREFORE
+0xA1F0	0x2640	# FEMALE SIGN
+0xA1F1	0x2642	# MALE SIGN
+0xA1F2	0x2641	# EARTH
+0xA1F3	0x2609	# SUN
+0xA1F4	0x2191	# UPWARDS ARROW
+0xA1F5	0x2193	# DOWNWARDS ARROW
+0xA1F6	0x2190	# LEFTWARDS ARROW
+0xA1F7	0x2192	# RIGHTWARDS ARROW
+0xA1F8	0x2196	# NORTH WEST ARROW
+0xA1F9	0x2197	# NORTH EAST ARROW
+0xA1FA	0x2199	# SOUTH WEST ARROW
+0xA1FB	0x2198	# SOUTH EAST ARROW
+0xA1FC	0x2225	# PARALLEL TO
+0xA1FD	0x2223	# DIVIDES
+0xA241	0xFF0F	# FULLWIDTH SOLIDUS
+0xA242	0xFF3C	# FULLWIDTH REVERSE SOLIDUS
+0xA243	0xFF04	# FULLWIDTH DOLLAR SIGN
+0xA244	0x00A5	# YEN SIGN
+0xA245	0x3012	# POSTAL MARK
+0xA246	0x00A2	# CENT SIGN
+0xA247	0x00A3	# POUND SIGN
+0xA248	0xFF05	# FULLWIDTH PERCENT SIGN
+0xA249	0xFF20	# FULLWIDTH COMMERCIAL AT
+0xA24A	0x2103	# DEGREE CELSIUS
+0xA24B	0x2109	# DEGREE FAHRENHEIT
+0xA24C	0xFE69	# SMALL DOLLAR SIGN
+0xA24D	0xFE6A	# SMALL PERCENT SIGN
+0xA24E	0xFE6B	# SMALL COMMERCIAL AT
+0xA24F	0x33D5	# SQUARE MIL
+0xA250	0x339C	# SQUARE MM
+0xA251	0x339D	# SQUARE CM
+0xA252	0x339E	# SQUARE KM
+0xA253	0x33CE	# SQUARE KM CAPITAL
+0xA254	0x33A1	# SQUARE M SQUARED
+0xA255	0x338E	# SQUARE MG
+0xA256	0x338F	# SQUARE KG
+0xA257	0x33C4	# SQUARE CC
+0xA258	0x00B0	# DEGREE SIGN
+0xA259	0x5159	# <CJK>
+0xA25A	0x515B	# <CJK>
+0xA25B	0x515E	# <CJK>
+0xA25C	0x515D	# <CJK>
+0xA25D	0x5161	# <CJK>
+0xA25E	0x5163	# <CJK>
+0xA25F	0x55E7	# <CJK>
+0xA260	0x74E9	# <CJK>
+0xA261	0x7CCE	# <CJK>
+0xA262	0x2581	# LOWER ONE EIGHTH BLOCK
+0xA263	0x2582	# LOWER ONE QUARTER BLOCK
+0xA264	0x2583	# LOWER THREE EIGHTHS BLOCK
+0xA265	0x2584	# LOWER HALF BLOCK
+0xA266	0x2585	# LOWER FIVE EIGHTHS BLOCK
+0xA267	0x2586	# LOWER THREE QUARTERS BLOCK
+0xA268	0x2587	# LOWER SEVEN EIGHTHS BLOCK
+0xA269	0x2588	# FULL BLOCK
+0xA26A	0x258F	# LEFT ONE EIGHTH BLOCK
+0xA26B	0x258E	# LEFT ONE QUARTER BLOCK
+0xA26C	0x258D	# LEFT THREE EIGHTHS BLOCK
+0xA26D	0x258C	# LEFT HALF BLOCK
+0xA26E	0x258B	# LEFT FIVE EIGHTHS BLOCK
+0xA26F	0x258A	# LEFT THREE QUARTERS BLOCK
+0xA270	0x2589	# LEFT SEVEN EIGHTHS BLOCK
+0xA271	0x253C	# BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xA272	0x2534	# BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xA273	0x252C	# BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xA274	0x2524	# BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xA275	0x251C	# BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xA276	0x2594	# UPPER ONE EIGHTH BLOCK
+0xA277	0x2500	# BOX DRAWINGS LIGHT HORIZONTAL
+0xA278	0x2502	# BOX DRAWINGS LIGHT VERTICAL
+0xA279	0x2595	# RIGHT ONE EIGHTH BLOCK
+0xA27A	0x250C	# BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xA27B	0x2510	# BOX DRAWINGS LIGHT DOWN AND LEFT
+0xA27C	0x2514	# BOX DRAWINGS LIGHT UP AND RIGHT
+0xA27D	0x2518	# BOX DRAWINGS LIGHT UP AND LEFT
+0xA27E	0x256D	# BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
+0xA2A1	0x256E	# BOX DRAWINGS LIGHT ARC DOWN AND LEFT
+0xA2A2	0x2570	# BOX DRAWINGS LIGHT ARC UP AND RIGHT
+0xA2A3	0x256F	# BOX DRAWINGS LIGHT ARC UP AND LEFT
+0xA2A4	0x2550	# BOX DRAWINGS DOUBLE HORIZONTAL
+0xA2A5	0x255E	# BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0xA2A6	0x256A	# BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0xA2A7	0x2561	# BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0xA2A8	0x25E2	# BLACK LOWER RIGHT TRIANGLE
+0xA2A9	0x25E3	# BLACK LOWER LEFT TRIANGLE
+0xA2AA	0x25E5	# BLACK UPPER RIGHT TRIANGLE
+0xA2AB	0x25E4	# BLACK UPPER LEFT TRIANGLE
+0xA2AE	0x2573	# BOX DRAWINGS LIGHT DIAGONAL CROSS
+0xA2AF	0xFF10	# FULLWIDTH DIGIT ZERO
+0xA2B0	0xFF11	# FULLWIDTH DIGIT ONE
+0xA2B1	0xFF12	# FULLWIDTH DIGIT TWO
+0xA2B2	0xFF13	# FULLWIDTH DIGIT THREE
+0xA2B3	0xFF14	# FULLWIDTH DIGIT FOUR
+0xA2B4	0xFF15	# FULLWIDTH DIGIT FIVE
+0xA2B5	0xFF16	# FULLWIDTH DIGIT SIX
+0xA2B6	0xFF17	# FULLWIDTH DIGIT SEVEN
+0xA2B7	0xFF18	# FULLWIDTH DIGIT EIGHT
+0xA2B8	0xFF19	# FULLWIDTH DIGIT NINE
+0xA2B9	0x2160	# ROMAN NUMERAL ONE
+0xA2BA	0x2161	# ROMAN NUMERAL TWO
+0xA2BB	0x2162	# ROMAN NUMERAL THREE
+0xA2BC	0x2163	# ROMAN NUMERAL FOUR
+0xA2BD	0x2164	# ROMAN NUMERAL FIVE
+0xA2BE	0x2165	# ROMAN NUMERAL SIX
+0xA2BF	0x2166	# ROMAN NUMERAL SEVEN
+0xA2C0	0x2167	# ROMAN NUMERAL EIGHT
+0xA2C1	0x2168	# ROMAN NUMERAL NINE
+0xA2C2	0x2169	# ROMAN NUMERAL TEN
+0xA2C3	0x3021	# HANGZHOU NUMERAL ONE
+0xA2C4	0x3022	# HANGZHOU NUMERAL TWO
+0xA2C5	0x3023	# HANGZHOU NUMERAL THREE
+0xA2C6	0x3024	# HANGZHOU NUMERAL FOUR
+0xA2C7	0x3025	# HANGZHOU NUMERAL FIVE
+0xA2C8	0x3026	# HANGZHOU NUMERAL SIX
+0xA2C9	0x3027	# HANGZHOU NUMERAL SEVEN
+0xA2CA	0x3028	# HANGZHOU NUMERAL EIGHT
+0xA2CB	0x3029	# HANGZHOU NUMERAL NINE
+0xA2CD	0x5344	# <CJK>
+0xA2CF	0xFF21	# FULLWIDTH LATIN CAPITAL LETTER A
+0xA2D0	0xFF22	# FULLWIDTH LATIN CAPITAL LETTER B
+0xA2D1	0xFF23	# FULLWIDTH LATIN CAPITAL LETTER C
+0xA2D2	0xFF24	# FULLWIDTH LATIN CAPITAL LETTER D
+0xA2D3	0xFF25	# FULLWIDTH LATIN CAPITAL LETTER E
+0xA2D4	0xFF26	# FULLWIDTH LATIN CAPITAL LETTER F
+0xA2D5	0xFF27	# FULLWIDTH LATIN CAPITAL LETTER G
+0xA2D6	0xFF28	# FULLWIDTH LATIN CAPITAL LETTER H
+0xA2D7	0xFF29	# FULLWIDTH LATIN CAPITAL LETTER I
+0xA2D8	0xFF2A	# FULLWIDTH LATIN CAPITAL LETTER J
+0xA2D9	0xFF2B	# FULLWIDTH LATIN CAPITAL LETTER K
+0xA2DA	0xFF2C	# FULLWIDTH LATIN CAPITAL LETTER L
+0xA2DB	0xFF2D	# FULLWIDTH LATIN CAPITAL LETTER M
+0xA2DC	0xFF2E	# FULLWIDTH LATIN CAPITAL LETTER N
+0xA2DD	0xFF2F	# FULLWIDTH LATIN CAPITAL LETTER O
+0xA2DE	0xFF30	# FULLWIDTH LATIN CAPITAL LETTER P
+0xA2DF	0xFF31	# FULLWIDTH LATIN CAPITAL LETTER Q
+0xA2E0	0xFF32	# FULLWIDTH LATIN CAPITAL LETTER R
+0xA2E1	0xFF33	# FULLWIDTH LATIN CAPITAL LETTER S
+0xA2E2	0xFF34	# FULLWIDTH LATIN CAPITAL LETTER T
+0xA2E3	0xFF35	# FULLWIDTH LATIN CAPITAL LETTER U
+0xA2E4	0xFF36	# FULLWIDTH LATIN CAPITAL LETTER V
+0xA2E5	0xFF37	# FULLWIDTH LATIN CAPITAL LETTER W
+0xA2E6	0xFF38	# FULLWIDTH LATIN CAPITAL LETTER X
+0xA2E7	0xFF39	# FULLWIDTH LATIN CAPITAL LETTER Y
+0xA2E8	0xFF3A	# FULLWIDTH LATIN CAPITAL LETTER Z
+0xA2E9	0xFF41	# FULLWIDTH LATIN SMALL LETTER A
+0xA2EA	0xFF42	# FULLWIDTH LATIN SMALL LETTER B
+0xA2EB	0xFF43	# FULLWIDTH LATIN SMALL LETTER C
+0xA2EC	0xFF44	# FULLWIDTH LATIN SMALL LETTER D
+0xA2ED	0xFF45	# FULLWIDTH LATIN SMALL LETTER E
+0xA2EE	0xFF46	# FULLWIDTH LATIN SMALL LETTER F
+0xA2EF	0xFF47	# FULLWIDTH LATIN SMALL LETTER G
+0xA2F0	0xFF48	# FULLWIDTH LATIN SMALL LETTER H
+0xA2F1	0xFF49	# FULLWIDTH LATIN SMALL LETTER I
+0xA2F2	0xFF4A	# FULLWIDTH LATIN SMALL LETTER J
+0xA2F3	0xFF4B	# FULLWIDTH LATIN SMALL LETTER K
+0xA2F4	0xFF4C	# FULLWIDTH LATIN SMALL LETTER L
+0xA2F5	0xFF4D	# FULLWIDTH LATIN SMALL LETTER M
+0xA2F6	0xFF4E	# FULLWIDTH LATIN SMALL LETTER N
+0xA2F7	0xFF4F	# FULLWIDTH LATIN SMALL LETTER O
+0xA2F8	0xFF50	# FULLWIDTH LATIN SMALL LETTER P
+0xA2F9	0xFF51	# FULLWIDTH LATIN SMALL LETTER Q
+0xA2FA	0xFF52	# FULLWIDTH LATIN SMALL LETTER R
+0xA2FB	0xFF53	# FULLWIDTH LATIN SMALL LETTER S
+0xA2FC	0xFF54	# FULLWIDTH LATIN SMALL LETTER T
+0xA2FD	0xFF55	# FULLWIDTH LATIN SMALL LETTER U
+0xA2FE	0xFF56	# FULLWIDTH LATIN SMALL LETTER V
+0xA340	0xFF57	# FULLWIDTH LATIN SMALL LETTER W
+0xA341	0xFF58	# FULLWIDTH LATIN SMALL LETTER X
+0xA342	0xFF59	# FULLWIDTH LATIN SMALL LETTER Y
+0xA343	0xFF5A	# FULLWIDTH LATIN SMALL LETTER Z
+0xA344	0x0391	# GREEK CAPITAL LETTER ALPHA
+0xA345	0x0392	# GREEK CAPITAL LETTER BETA
+0xA346	0x0393	# GREEK CAPITAL LETTER GAMMA
+0xA347	0x0394	# GREEK CAPITAL LETTER DELTA
+0xA348	0x0395	# GREEK CAPITAL LETTER EPSILON
+0xA349	0x0396	# GREEK CAPITAL LETTER ZETA
+0xA34A	0x0397	# GREEK CAPITAL LETTER ETA
+0xA34B	0x0398	# GREEK CAPITAL LETTER THETA
+0xA34C	0x0399	# GREEK CAPITAL LETTER IOTA
+0xA34D	0x039A	# GREEK CAPITAL LETTER KAPPA
+0xA34E	0x039B	# GREEK CAPITAL LETTER LAMDA
+0xA34F	0x039C	# GREEK CAPITAL LETTER MU
+0xA350	0x039D	# GREEK CAPITAL LETTER NU
+0xA351	0x039E	# GREEK CAPITAL LETTER XI
+0xA352	0x039F	# GREEK CAPITAL LETTER OMICRON
+0xA353	0x03A0	# GREEK CAPITAL LETTER PI
+0xA354	0x03A1	# GREEK CAPITAL LETTER RHO
+0xA355	0x03A3	# GREEK CAPITAL LETTER SIGMA
+0xA356	0x03A4	# GREEK CAPITAL LETTER TAU
+0xA357	0x03A5	# GREEK CAPITAL LETTER UPSILON
+0xA358	0x03A6	# GREEK CAPITAL LETTER PHI
+0xA359	0x03A7	# GREEK CAPITAL LETTER CHI
+0xA35A	0x03A8	# GREEK CAPITAL LETTER PSI
+0xA35B	0x03A9	# GREEK CAPITAL LETTER OMEGA
+0xA35C	0x03B1	# GREEK SMALL LETTER ALPHA
+0xA35D	0x03B2	# GREEK SMALL LETTER BETA
+0xA35E	0x03B3	# GREEK SMALL LETTER GAMMA
+0xA35F	0x03B4	# GREEK SMALL LETTER DELTA
+0xA360	0x03B5	# GREEK SMALL LETTER EPSILON
+0xA361	0x03B6	# GREEK SMALL LETTER ZETA
+0xA362	0x03B7	# GREEK SMALL LETTER ETA
+0xA363	0x03B8	# GREEK SMALL LETTER THETA
+0xA364	0x03B9	# GREEK SMALL LETTER IOTA
+0xA365	0x03BA	# GREEK SMALL LETTER KAPPA
+0xA366	0x03BB	# GREEK SMALL LETTER LAMDA
+0xA367	0x03BC	# GREEK SMALL LETTER MU
+0xA368	0x03BD	# GREEK SMALL LETTER NU
+0xA369	0x03BE	# GREEK SMALL LETTER XI
+0xA36A	0x03BF	# GREEK SMALL LETTER OMICRON
+0xA36B	0x03C0	# GREEK SMALL LETTER PI
+0xA36C	0x03C1	# GREEK SMALL LETTER RHO
+0xA36D	0x03C3	# GREEK SMALL LETTER SIGMA
+0xA36E	0x03C4	# GREEK SMALL LETTER TAU
+0xA36F	0x03C5	# GREEK SMALL LETTER UPSILON
+0xA370	0x03C6	# GREEK SMALL LETTER PHI
+0xA371	0x03C7	# GREEK SMALL LETTER CHI
+0xA372	0x03C8	# GREEK SMALL LETTER PSI
+0xA373	0x03C9	# GREEK SMALL LETTER OMEGA
+0xA374	0x3105	# BOPOMOFO LETTER B
+0xA375	0x3106	# BOPOMOFO LETTER P
+0xA376	0x3107	# BOPOMOFO LETTER M
+0xA377	0x3108	# BOPOMOFO LETTER F
+0xA378	0x3109	# BOPOMOFO LETTER D
+0xA379	0x310A	# BOPOMOFO LETTER T
+0xA37A	0x310B	# BOPOMOFO LETTER N
+0xA37B	0x310C	# BOPOMOFO LETTER L
+0xA37C	0x310D	# BOPOMOFO LETTER G
+0xA37D	0x310E	# BOPOMOFO LETTER K
+0xA37E	0x310F	# BOPOMOFO LETTER H
+0xA3A1	0x3110	# BOPOMOFO LETTER J
+0xA3A2	0x3111	# BOPOMOFO LETTER Q
+0xA3A3	0x3112	# BOPOMOFO LETTER X
+0xA3A4	0x3113	# BOPOMOFO LETTER ZH
+0xA3A5	0x3114	# BOPOMOFO LETTER CH
+0xA3A6	0x3115	# BOPOMOFO LETTER SH
+0xA3A7	0x3116	# BOPOMOFO LETTER R
+0xA3A8	0x3117	# BOPOMOFO LETTER Z
+0xA3A9	0x3118	# BOPOMOFO LETTER C
+0xA3AA	0x3119	# BOPOMOFO LETTER S
+0xA3AB	0x311A	# BOPOMOFO LETTER A
+0xA3AC	0x311B	# BOPOMOFO LETTER O
+0xA3AD	0x311C	# BOPOMOFO LETTER E
+0xA3AE	0x311D	# BOPOMOFO LETTER EH
+0xA3AF	0x311E	# BOPOMOFO LETTER AI
+0xA3B0	0x311F	# BOPOMOFO LETTER EI
+0xA3B1	0x3120	# BOPOMOFO LETTER AU
+0xA3B2	0x3121	# BOPOMOFO LETTER OU
+0xA3B3	0x3122	# BOPOMOFO LETTER AN
+0xA3B4	0x3123	# BOPOMOFO LETTER EN
+0xA3B5	0x3124	# BOPOMOFO LETTER ANG
+0xA3B6	0x3125	# BOPOMOFO LETTER ENG
+0xA3B7	0x3126	# BOPOMOFO LETTER ER
+0xA3B8	0x3127	# BOPOMOFO LETTER I
+0xA3B9	0x3128	# BOPOMOFO LETTER U
+0xA3BA	0x3129	# BOPOMOFO LETTER IU
+0xA3BB	0x02D9	# DOT ABOVE (Mandarin Chinese light tone)
+0xA3BC	0x02C9	# MODIFIER LETTER MACRON (Mandarin Chinese first tone)
+0xA3BD	0x02CA	# MODIFIER LETTER ACUTE ACCENT (Mandarin Chinese second tone)
+0xA3BE	0x02C7	# CARON (Mandarin Chinese third tone)
+0xA3BF	0x02CB	# MODIFIER LETTER GRAVE ACCENT (Mandarin Chinese fourth tone)
+0xA440	0x4E00	# <CJK>
+0xA441	0x4E59	# <CJK>
+0xA442	0x4E01	# <CJK>
+0xA443	0x4E03	# <CJK>
+0xA444	0x4E43	# <CJK>
+0xA445	0x4E5D	# <CJK>
+0xA446	0x4E86	# <CJK>
+0xA447	0x4E8C	# <CJK>
+0xA448	0x4EBA	# <CJK>
+0xA449	0x513F	# <CJK>
+0xA44A	0x5165	# <CJK>
+0xA44B	0x516B	# <CJK>
+0xA44C	0x51E0	# <CJK>
+0xA44D	0x5200	# <CJK>
+0xA44E	0x5201	# <CJK>
+0xA44F	0x529B	# <CJK>
+0xA450	0x5315	# <CJK>
+0xA452	0x535C	# <CJK>
+0xA453	0x53C8	# <CJK>
+0xA454	0x4E09	# <CJK>
+0xA455	0x4E0B	# <CJK>
+0xA456	0x4E08	# <CJK>
+0xA457	0x4E0A	# <CJK>
+0xA458	0x4E2B	# <CJK>
+0xA459	0x4E38	# <CJK>
+0xA45A	0x51E1	# <CJK>
+0xA45B	0x4E45	# <CJK>
+0xA45C	0x4E48	# <CJK>
+0xA45D	0x4E5F	# <CJK>
+0xA45E	0x4E5E	# <CJK>
+0xA45F	0x4E8E	# <CJK>
+0xA460	0x4EA1	# <CJK>
+0xA461	0x5140	# <CJK>
+0xA462	0x5203	# <CJK>
+0xA463	0x52FA	# <CJK>
+0xA464	0x5343	# <CJK>
+0xA465	0x53C9	# <CJK>
+0xA466	0x53E3	# <CJK>
+0xA467	0x571F	# <CJK>
+0xA468	0x58EB	# <CJK>
+0xA469	0x5915	# <CJK>
+0xA46A	0x5927	# <CJK>
+0xA46B	0x5973	# <CJK>
+0xA46C	0x5B50	# <CJK>
+0xA46D	0x5B51	# <CJK>
+0xA46E	0x5B53	# <CJK>
+0xA46F	0x5BF8	# <CJK>
+0xA470	0x5C0F	# <CJK>
+0xA471	0x5C22	# <CJK>
+0xA472	0x5C38	# <CJK>
+0xA473	0x5C71	# <CJK>
+0xA474	0x5DDD	# <CJK>
+0xA475	0x5DE5	# <CJK>
+0xA476	0x5DF1	# <CJK>
+0xA477	0x5DF2	# <CJK>
+0xA478	0x5DF3	# <CJK>
+0xA479	0x5DFE	# <CJK>
+0xA47A	0x5E72	# <CJK>
+0xA47B	0x5EFE	# <CJK>
+0xA47C	0x5F0B	# <CJK>
+0xA47D	0x5F13	# <CJK>
+0xA47E	0x624D	# <CJK>
+0xA4A1	0x4E11	# <CJK>
+0xA4A2	0x4E10	# <CJK>
+0xA4A3	0x4E0D	# <CJK>
+0xA4A4	0x4E2D	# <CJK>
+0xA4A5	0x4E30	# <CJK>
+0xA4A6	0x4E39	# <CJK>
+0xA4A7	0x4E4B	# <CJK>
+0xA4A8	0x5C39	# <CJK>
+0xA4A9	0x4E88	# <CJK>
+0xA4AA	0x4E91	# <CJK>
+0xA4AB	0x4E95	# <CJK>
+0xA4AC	0x4E92	# <CJK>
+0xA4AD	0x4E94	# <CJK>
+0xA4AE	0x4EA2	# <CJK>
+0xA4AF	0x4EC1	# <CJK>
+0xA4B0	0x4EC0	# <CJK>
+0xA4B1	0x4EC3	# <CJK>
+0xA4B2	0x4EC6	# <CJK>
+0xA4B3	0x4EC7	# <CJK>
+0xA4B4	0x4ECD	# <CJK>
+0xA4B5	0x4ECA	# <CJK>
+0xA4B6	0x4ECB	# <CJK>
+0xA4B7	0x4EC4	# <CJK>
+0xA4B8	0x5143	# <CJK>
+0xA4B9	0x5141	# <CJK>
+0xA4BA	0x5167	# <CJK>
+0xA4BB	0x516D	# <CJK>
+0xA4BC	0x516E	# <CJK>
+0xA4BD	0x516C	# <CJK>
+0xA4BE	0x5197	# <CJK>
+0xA4BF	0x51F6	# <CJK>
+0xA4C0	0x5206	# <CJK>
+0xA4C1	0x5207	# <CJK>
+0xA4C2	0x5208	# <CJK>
+0xA4C3	0x52FB	# <CJK>
+0xA4C4	0x52FE	# <CJK>
+0xA4C5	0x52FF	# <CJK>
+0xA4C6	0x5316	# <CJK>
+0xA4C7	0x5339	# <CJK>
+0xA4C8	0x5348	# <CJK>
+0xA4C9	0x5347	# <CJK>
+0xA4CB	0x535E	# <CJK>
+0xA4CC	0x5384	# <CJK>
+0xA4CD	0x53CB	# <CJK>
+0xA4CE	0x53CA	# <CJK>
+0xA4CF	0x53CD	# <CJK>
+0xA4D0	0x58EC	# <CJK>
+0xA4D1	0x5929	# <CJK>
+0xA4D2	0x592B	# <CJK>
+0xA4D3	0x592A	# <CJK>
+0xA4D4	0x592D	# <CJK>
+0xA4D5	0x5B54	# <CJK>
+0xA4D6	0x5C11	# <CJK>
+0xA4D7	0x5C24	# <CJK>
+0xA4D8	0x5C3A	# <CJK>
+0xA4D9	0x5C6F	# <CJK>
+0xA4DA	0x5DF4	# <CJK>
+0xA4DB	0x5E7B	# <CJK>
+0xA4DC	0x5EFF	# <CJK>
+0xA4DD	0x5F14	# <CJK>
+0xA4DE	0x5F15	# <CJK>
+0xA4DF	0x5FC3	# <CJK>
+0xA4E0	0x6208	# <CJK>
+0xA4E1	0x6236	# <CJK>
+0xA4E2	0x624B	# <CJK>
+0xA4E3	0x624E	# <CJK>
+0xA4E4	0x652F	# <CJK>
+0xA4E5	0x6587	# <CJK>
+0xA4E6	0x6597	# <CJK>
+0xA4E7	0x65A4	# <CJK>
+0xA4E8	0x65B9	# <CJK>
+0xA4E9	0x65E5	# <CJK>
+0xA4EA	0x66F0	# <CJK>
+0xA4EB	0x6708	# <CJK>
+0xA4EC	0x6728	# <CJK>
+0xA4ED	0x6B20	# <CJK>
+0xA4EE	0x6B62	# <CJK>
+0xA4EF	0x6B79	# <CJK>
+0xA4F0	0x6BCB	# <CJK>
+0xA4F1	0x6BD4	# <CJK>
+0xA4F2	0x6BDB	# <CJK>
+0xA4F3	0x6C0F	# <CJK>
+0xA4F4	0x6C34	# <CJK>
+0xA4F5	0x706B	# <CJK>
+0xA4F6	0x722A	# <CJK>
+0xA4F7	0x7236	# <CJK>
+0xA4F8	0x723B	# <CJK>
+0xA4F9	0x7247	# <CJK>
+0xA4FA	0x7259	# <CJK>
+0xA4FB	0x725B	# <CJK>
+0xA4FC	0x72AC	# <CJK>
+0xA4FD	0x738B	# <CJK>
+0xA4FE	0x4E19	# <CJK>
+0xA540	0x4E16	# <CJK>
+0xA541	0x4E15	# <CJK>
+0xA542	0x4E14	# <CJK>
+0xA543	0x4E18	# <CJK>
+0xA544	0x4E3B	# <CJK>
+0xA545	0x4E4D	# <CJK>
+0xA546	0x4E4F	# <CJK>
+0xA547	0x4E4E	# <CJK>
+0xA548	0x4EE5	# <CJK>
+0xA549	0x4ED8	# <CJK>
+0xA54A	0x4ED4	# <CJK>
+0xA54B	0x4ED5	# <CJK>
+0xA54C	0x4ED6	# <CJK>
+0xA54D	0x4ED7	# <CJK>
+0xA54E	0x4EE3	# <CJK>
+0xA54F	0x4EE4	# <CJK>
+0xA550	0x4ED9	# <CJK>
+0xA551	0x4EDE	# <CJK>
+0xA552	0x5145	# <CJK>
+0xA553	0x5144	# <CJK>
+0xA554	0x5189	# <CJK>
+0xA555	0x518A	# <CJK>
+0xA556	0x51AC	# <CJK>
+0xA557	0x51F9	# <CJK>
+0xA558	0x51FA	# <CJK>
+0xA559	0x51F8	# <CJK>
+0xA55A	0x520A	# <CJK>
+0xA55B	0x52A0	# <CJK>
+0xA55C	0x529F	# <CJK>
+0xA55D	0x5305	# <CJK>
+0xA55E	0x5306	# <CJK>
+0xA55F	0x5317	# <CJK>
+0xA560	0x531D	# <CJK>
+0xA561	0x4EDF	# <CJK>
+0xA562	0x534A	# <CJK>
+0xA563	0x5349	# <CJK>
+0xA564	0x5361	# <CJK>
+0xA565	0x5360	# <CJK>
+0xA566	0x536F	# <CJK>
+0xA567	0x536E	# <CJK>
+0xA568	0x53BB	# <CJK>
+0xA569	0x53EF	# <CJK>
+0xA56A	0x53E4	# <CJK>
+0xA56B	0x53F3	# <CJK>
+0xA56C	0x53EC	# <CJK>
+0xA56D	0x53EE	# <CJK>
+0xA56E	0x53E9	# <CJK>
+0xA56F	0x53E8	# <CJK>
+0xA570	0x53FC	# <CJK>
+0xA571	0x53F8	# <CJK>
+0xA572	0x53F5	# <CJK>
+0xA573	0x53EB	# <CJK>
+0xA574	0x53E6	# <CJK>
+0xA575	0x53EA	# <CJK>
+0xA576	0x53F2	# <CJK>
+0xA577	0x53F1	# <CJK>
+0xA578	0x53F0	# <CJK>
+0xA579	0x53E5	# <CJK>
+0xA57A	0x53ED	# <CJK>
+0xA57B	0x53FB	# <CJK>
+0xA57C	0x56DB	# <CJK>
+0xA57D	0x56DA	# <CJK>
+0xA57E	0x5916	# <CJK>
+0xA5A1	0x592E	# <CJK>
+0xA5A2	0x5931	# <CJK>
+0xA5A3	0x5974	# <CJK>
+0xA5A4	0x5976	# <CJK>
+0xA5A5	0x5B55	# <CJK>
+0xA5A6	0x5B83	# <CJK>
+0xA5A7	0x5C3C	# <CJK>
+0xA5A8	0x5DE8	# <CJK>
+0xA5A9	0x5DE7	# <CJK>
+0xA5AA	0x5DE6	# <CJK>
+0xA5AB	0x5E02	# <CJK>
+0xA5AC	0x5E03	# <CJK>
+0xA5AD	0x5E73	# <CJK>
+0xA5AE	0x5E7C	# <CJK>
+0xA5AF	0x5F01	# <CJK>
+0xA5B0	0x5F18	# <CJK>
+0xA5B1	0x5F17	# <CJK>
+0xA5B2	0x5FC5	# <CJK>
+0xA5B3	0x620A	# <CJK>
+0xA5B4	0x6253	# <CJK>
+0xA5B5	0x6254	# <CJK>
+0xA5B6	0x6252	# <CJK>
+0xA5B7	0x6251	# <CJK>
+0xA5B8	0x65A5	# <CJK>
+0xA5B9	0x65E6	# <CJK>
+0xA5BA	0x672E	# <CJK>
+0xA5BB	0x672C	# <CJK>
+0xA5BC	0x672A	# <CJK>
+0xA5BD	0x672B	# <CJK>
+0xA5BE	0x672D	# <CJK>
+0xA5BF	0x6B63	# <CJK>
+0xA5C0	0x6BCD	# <CJK>
+0xA5C1	0x6C11	# <CJK>
+0xA5C2	0x6C10	# <CJK>
+0xA5C3	0x6C38	# <CJK>
+0xA5C4	0x6C41	# <CJK>
+0xA5C5	0x6C40	# <CJK>
+0xA5C6	0x6C3E	# <CJK>
+0xA5C7	0x72AF	# <CJK>
+0xA5C8	0x7384	# <CJK>
+0xA5C9	0x7389	# <CJK>
+0xA5CA	0x74DC	# <CJK>
+0xA5CB	0x74E6	# <CJK>
+0xA5CC	0x7518	# <CJK>
+0xA5CD	0x751F	# <CJK>
+0xA5CE	0x7528	# <CJK>
+0xA5CF	0x7529	# <CJK>
+0xA5D0	0x7530	# <CJK>
+0xA5D1	0x7531	# <CJK>
+0xA5D2	0x7532	# <CJK>
+0xA5D3	0x7533	# <CJK>
+0xA5D4	0x758B	# <CJK>
+0xA5D5	0x767D	# <CJK>
+0xA5D6	0x76AE	# <CJK>
+0xA5D7	0x76BF	# <CJK>
+0xA5D8	0x76EE	# <CJK>
+0xA5D9	0x77DB	# <CJK>
+0xA5DA	0x77E2	# <CJK>
+0xA5DB	0x77F3	# <CJK>
+0xA5DC	0x793A	# <CJK>
+0xA5DD	0x79BE	# <CJK>
+0xA5DE	0x7A74	# <CJK>
+0xA5DF	0x7ACB	# <CJK>
+0xA5E0	0x4E1E	# <CJK>
+0xA5E1	0x4E1F	# <CJK>
+0xA5E2	0x4E52	# <CJK>
+0xA5E3	0x4E53	# <CJK>
+0xA5E4	0x4E69	# <CJK>
+0xA5E5	0x4E99	# <CJK>
+0xA5E6	0x4EA4	# <CJK>
+0xA5E7	0x4EA6	# <CJK>
+0xA5E8	0x4EA5	# <CJK>
+0xA5E9	0x4EFF	# <CJK>
+0xA5EA	0x4F09	# <CJK>
+0xA5EB	0x4F19	# <CJK>
+0xA5EC	0x4F0A	# <CJK>
+0xA5ED	0x4F15	# <CJK>
+0xA5EE	0x4F0D	# <CJK>
+0xA5EF	0x4F10	# <CJK>
+0xA5F0	0x4F11	# <CJK>
+0xA5F1	0x4F0F	# <CJK>
+0xA5F2	0x4EF2	# <CJK>
+0xA5F3	0x4EF6	# <CJK>
+0xA5F4	0x4EFB	# <CJK>
+0xA5F5	0x4EF0	# <CJK>
+0xA5F6	0x4EF3	# <CJK>
+0xA5F7	0x4EFD	# <CJK>
+0xA5F8	0x4F01	# <CJK>
+0xA5F9	0x4F0B	# <CJK>
+0xA5FA	0x5149	# <CJK>
+0xA5FB	0x5147	# <CJK>
+0xA5FC	0x5146	# <CJK>
+0xA5FD	0x5148	# <CJK>
+0xA5FE	0x5168	# <CJK>
+0xA640	0x5171	# <CJK>
+0xA641	0x518D	# <CJK>
+0xA642	0x51B0	# <CJK>
+0xA643	0x5217	# <CJK>
+0xA644	0x5211	# <CJK>
+0xA645	0x5212	# <CJK>
+0xA646	0x520E	# <CJK>
+0xA647	0x5216	# <CJK>
+0xA648	0x52A3	# <CJK>
+0xA649	0x5308	# <CJK>
+0xA64A	0x5321	# <CJK>
+0xA64B	0x5320	# <CJK>
+0xA64C	0x5370	# <CJK>
+0xA64D	0x5371	# <CJK>
+0xA64E	0x5409	# <CJK>
+0xA64F	0x540F	# <CJK>
+0xA650	0x540C	# <CJK>
+0xA651	0x540A	# <CJK>
+0xA652	0x5410	# <CJK>
+0xA653	0x5401	# <CJK>
+0xA654	0x540B	# <CJK>
+0xA655	0x5404	# <CJK>
+0xA656	0x5411	# <CJK>
+0xA657	0x540D	# <CJK>
+0xA658	0x5408	# <CJK>
+0xA659	0x5403	# <CJK>
+0xA65A	0x540E	# <CJK>
+0xA65B	0x5406	# <CJK>
+0xA65C	0x5412	# <CJK>
+0xA65D	0x56E0	# <CJK>
+0xA65E	0x56DE	# <CJK>
+0xA65F	0x56DD	# <CJK>
+0xA660	0x5733	# <CJK>
+0xA661	0x5730	# <CJK>
+0xA662	0x5728	# <CJK>
+0xA663	0x572D	# <CJK>
+0xA664	0x572C	# <CJK>
+0xA665	0x572F	# <CJK>
+0xA666	0x5729	# <CJK>
+0xA667	0x5919	# <CJK>
+0xA668	0x591A	# <CJK>
+0xA669	0x5937	# <CJK>
+0xA66A	0x5938	# <CJK>
+0xA66B	0x5984	# <CJK>
+0xA66C	0x5978	# <CJK>
+0xA66D	0x5983	# <CJK>
+0xA66E	0x597D	# <CJK>
+0xA66F	0x5979	# <CJK>
+0xA670	0x5982	# <CJK>
+0xA671	0x5981	# <CJK>
+0xA672	0x5B57	# <CJK>
+0xA673	0x5B58	# <CJK>
+0xA674	0x5B87	# <CJK>
+0xA675	0x5B88	# <CJK>
+0xA676	0x5B85	# <CJK>
+0xA677	0x5B89	# <CJK>
+0xA678	0x5BFA	# <CJK>
+0xA679	0x5C16	# <CJK>
+0xA67A	0x5C79	# <CJK>
+0xA67B	0x5DDE	# <CJK>
+0xA67C	0x5E06	# <CJK>
+0xA67D	0x5E76	# <CJK>
+0xA67E	0x5E74	# <CJK>
+0xA6A1	0x5F0F	# <CJK>
+0xA6A2	0x5F1B	# <CJK>
+0xA6A3	0x5FD9	# <CJK>
+0xA6A4	0x5FD6	# <CJK>
+0xA6A5	0x620E	# <CJK>
+0xA6A6	0x620C	# <CJK>
+0xA6A7	0x620D	# <CJK>
+0xA6A8	0x6210	# <CJK>
+0xA6A9	0x6263	# <CJK>
+0xA6AA	0x625B	# <CJK>
+0xA6AB	0x6258	# <CJK>
+0xA6AC	0x6536	# <CJK>
+0xA6AD	0x65E9	# <CJK>
+0xA6AE	0x65E8	# <CJK>
+0xA6AF	0x65EC	# <CJK>
+0xA6B0	0x65ED	# <CJK>
+0xA6B1	0x66F2	# <CJK>
+0xA6B2	0x66F3	# <CJK>
+0xA6B3	0x6709	# <CJK>
+0xA6B4	0x673D	# <CJK>
+0xA6B5	0x6734	# <CJK>
+0xA6B6	0x6731	# <CJK>
+0xA6B7	0x6735	# <CJK>
+0xA6B8	0x6B21	# <CJK>
+0xA6B9	0x6B64	# <CJK>
+0xA6BA	0x6B7B	# <CJK>
+0xA6BB	0x6C16	# <CJK>
+0xA6BC	0x6C5D	# <CJK>
+0xA6BD	0x6C57	# <CJK>
+0xA6BE	0x6C59	# <CJK>
+0xA6BF	0x6C5F	# <CJK>
+0xA6C0	0x6C60	# <CJK>
+0xA6C1	0x6C50	# <CJK>
+0xA6C2	0x6C55	# <CJK>
+0xA6C3	0x6C61	# <CJK>
+0xA6C4	0x6C5B	# <CJK>
+0xA6C5	0x6C4D	# <CJK>
+0xA6C6	0x6C4E	# <CJK>
+0xA6C7	0x7070	# <CJK>
+0xA6C8	0x725F	# <CJK>
+0xA6C9	0x725D	# <CJK>
+0xA6CA	0x767E	# <CJK>
+0xA6CB	0x7AF9	# <CJK>
+0xA6CC	0x7C73	# <CJK>
+0xA6CD	0x7CF8	# <CJK>
+0xA6CE	0x7F36	# <CJK>
+0xA6CF	0x7F8A	# <CJK>
+0xA6D0	0x7FBD	# <CJK>
+0xA6D1	0x8001	# <CJK>
+0xA6D2	0x8003	# <CJK>
+0xA6D3	0x800C	# <CJK>
+0xA6D4	0x8012	# <CJK>
+0xA6D5	0x8033	# <CJK>
+0xA6D6	0x807F	# <CJK>
+0xA6D7	0x8089	# <CJK>
+0xA6D8	0x808B	# <CJK>
+0xA6D9	0x808C	# <CJK>
+0xA6DA	0x81E3	# <CJK>
+0xA6DB	0x81EA	# <CJK>
+0xA6DC	0x81F3	# <CJK>
+0xA6DD	0x81FC	# <CJK>
+0xA6DE	0x820C	# <CJK>
+0xA6DF	0x821B	# <CJK>
+0xA6E0	0x821F	# <CJK>
+0xA6E1	0x826E	# <CJK>
+0xA6E2	0x8272	# <CJK>
+0xA6E3	0x827E	# <CJK>
+0xA6E4	0x866B	# <CJK>
+0xA6E5	0x8840	# <CJK>
+0xA6E6	0x884C	# <CJK>
+0xA6E7	0x8863	# <CJK>
+0xA6E8	0x897F	# <CJK>
+0xA6E9	0x9621	# <CJK>
+0xA6EA	0x4E32	# <CJK>
+0xA6EB	0x4EA8	# <CJK>
+0xA6EC	0x4F4D	# <CJK>
+0xA6ED	0x4F4F	# <CJK>
+0xA6EE	0x4F47	# <CJK>
+0xA6EF	0x4F57	# <CJK>
+0xA6F0	0x4F5E	# <CJK>
+0xA6F1	0x4F34	# <CJK>
+0xA6F2	0x4F5B	# <CJK>
+0xA6F3	0x4F55	# <CJK>
+0xA6F4	0x4F30	# <CJK>
+0xA6F5	0x4F50	# <CJK>
+0xA6F6	0x4F51	# <CJK>
+0xA6F7	0x4F3D	# <CJK>
+0xA6F8	0x4F3A	# <CJK>
+0xA6F9	0x4F38	# <CJK>
+0xA6FA	0x4F43	# <CJK>
+0xA6FB	0x4F54	# <CJK>
+0xA6FC	0x4F3C	# <CJK>
+0xA6FD	0x4F46	# <CJK>
+0xA6FE	0x4F63	# <CJK>
+0xA740	0x4F5C	# <CJK>
+0xA741	0x4F60	# <CJK>
+0xA742	0x4F2F	# <CJK>
+0xA743	0x4F4E	# <CJK>
+0xA744	0x4F36	# <CJK>
+0xA745	0x4F59	# <CJK>
+0xA746	0x4F5D	# <CJK>
+0xA747	0x4F48	# <CJK>
+0xA748	0x4F5A	# <CJK>
+0xA749	0x514C	# <CJK>
+0xA74A	0x514B	# <CJK>
+0xA74B	0x514D	# <CJK>
+0xA74C	0x5175	# <CJK>
+0xA74D	0x51B6	# <CJK>
+0xA74E	0x51B7	# <CJK>
+0xA74F	0x5225	# <CJK>
+0xA750	0x5224	# <CJK>
+0xA751	0x5229	# <CJK>
+0xA752	0x522A	# <CJK>
+0xA753	0x5228	# <CJK>
+0xA754	0x52AB	# <CJK>
+0xA755	0x52A9	# <CJK>
+0xA756	0x52AA	# <CJK>
+0xA757	0x52AC	# <CJK>
+0xA758	0x5323	# <CJK>
+0xA759	0x5373	# <CJK>
+0xA75A	0x5375	# <CJK>
+0xA75B	0x541D	# <CJK>
+0xA75C	0x542D	# <CJK>
+0xA75D	0x541E	# <CJK>
+0xA75E	0x543E	# <CJK>
+0xA75F	0x5426	# <CJK>
+0xA760	0x544E	# <CJK>
+0xA761	0x5427	# <CJK>
+0xA762	0x5446	# <CJK>
+0xA763	0x5443	# <CJK>
+0xA764	0x5433	# <CJK>
+0xA765	0x5448	# <CJK>
+0xA766	0x5442	# <CJK>
+0xA767	0x541B	# <CJK>
+0xA768	0x5429	# <CJK>
+0xA769	0x544A	# <CJK>
+0xA76A	0x5439	# <CJK>
+0xA76B	0x543B	# <CJK>
+0xA76C	0x5438	# <CJK>
+0xA76D	0x542E	# <CJK>
+0xA76E	0x5435	# <CJK>
+0xA76F	0x5436	# <CJK>
+0xA770	0x5420	# <CJK>
+0xA771	0x543C	# <CJK>
+0xA772	0x5440	# <CJK>
+0xA773	0x5431	# <CJK>
+0xA774	0x542B	# <CJK>
+0xA775	0x541F	# <CJK>
+0xA776	0x542C	# <CJK>
+0xA777	0x56EA	# <CJK>
+0xA778	0x56F0	# <CJK>
+0xA779	0x56E4	# <CJK>
+0xA77A	0x56EB	# <CJK>
+0xA77B	0x574A	# <CJK>
+0xA77C	0x5751	# <CJK>
+0xA77D	0x5740	# <CJK>
+0xA77E	0x574D	# <CJK>
+0xA7A1	0x5747	# <CJK>
+0xA7A2	0x574E	# <CJK>
+0xA7A3	0x573E	# <CJK>
+0xA7A4	0x5750	# <CJK>
+0xA7A5	0x574F	# <CJK>
+0xA7A6	0x573B	# <CJK>
+0xA7A7	0x58EF	# <CJK>
+0xA7A8	0x593E	# <CJK>
+0xA7A9	0x599D	# <CJK>
+0xA7AA	0x5992	# <CJK>
+0xA7AB	0x59A8	# <CJK>
+0xA7AC	0x599E	# <CJK>
+0xA7AD	0x59A3	# <CJK>
+0xA7AE	0x5999	# <CJK>
+0xA7AF	0x5996	# <CJK>
+0xA7B0	0x598D	# <CJK>
+0xA7B1	0x59A4	# <CJK>
+0xA7B2	0x5993	# <CJK>
+0xA7B3	0x598A	# <CJK>
+0xA7B4	0x59A5	# <CJK>
+0xA7B5	0x5B5D	# <CJK>
+0xA7B6	0x5B5C	# <CJK>
+0xA7B7	0x5B5A	# <CJK>
+0xA7B8	0x5B5B	# <CJK>
+0xA7B9	0x5B8C	# <CJK>
+0xA7BA	0x5B8B	# <CJK>
+0xA7BB	0x5B8F	# <CJK>
+0xA7BC	0x5C2C	# <CJK>
+0xA7BD	0x5C40	# <CJK>
+0xA7BE	0x5C41	# <CJK>
+0xA7BF	0x5C3F	# <CJK>
+0xA7C0	0x5C3E	# <CJK>
+0xA7C1	0x5C90	# <CJK>
+0xA7C2	0x5C91	# <CJK>
+0xA7C3	0x5C94	# <CJK>
+0xA7C4	0x5C8C	# <CJK>
+0xA7C5	0x5DEB	# <CJK>
+0xA7C6	0x5E0C	# <CJK>
+0xA7C7	0x5E8F	# <CJK>
+0xA7C8	0x5E87	# <CJK>
+0xA7C9	0x5E8A	# <CJK>
+0xA7CA	0x5EF7	# <CJK>
+0xA7CB	0x5F04	# <CJK>
+0xA7CC	0x5F1F	# <CJK>
+0xA7CD	0x5F64	# <CJK>
+0xA7CE	0x5F62	# <CJK>
+0xA7CF	0x5F77	# <CJK>
+0xA7D0	0x5F79	# <CJK>
+0xA7D1	0x5FD8	# <CJK>
+0xA7D2	0x5FCC	# <CJK>
+0xA7D3	0x5FD7	# <CJK>
+0xA7D4	0x5FCD	# <CJK>
+0xA7D5	0x5FF1	# <CJK>
+0xA7D6	0x5FEB	# <CJK>
+0xA7D7	0x5FF8	# <CJK>
+0xA7D8	0x5FEA	# <CJK>
+0xA7D9	0x6212	# <CJK>
+0xA7DA	0x6211	# <CJK>
+0xA7DB	0x6284	# <CJK>
+0xA7DC	0x6297	# <CJK>
+0xA7DD	0x6296	# <CJK>
+0xA7DE	0x6280	# <CJK>
+0xA7DF	0x6276	# <CJK>
+0xA7E0	0x6289	# <CJK>
+0xA7E1	0x626D	# <CJK>
+0xA7E2	0x628A	# <CJK>
+0xA7E3	0x627C	# <CJK>
+0xA7E4	0x627E	# <CJK>
+0xA7E5	0x6279	# <CJK>
+0xA7E6	0x6273	# <CJK>
+0xA7E7	0x6292	# <CJK>
+0xA7E8	0x626F	# <CJK>
+0xA7E9	0x6298	# <CJK>
+0xA7EA	0x626E	# <CJK>
+0xA7EB	0x6295	# <CJK>
+0xA7EC	0x6293	# <CJK>
+0xA7ED	0x6291	# <CJK>
+0xA7EE	0x6286	# <CJK>
+0xA7EF	0x6539	# <CJK>
+0xA7F0	0x653B	# <CJK>
+0xA7F1	0x6538	# <CJK>
+0xA7F2	0x65F1	# <CJK>
+0xA7F3	0x66F4	# <CJK>
+0xA7F4	0x675F	# <CJK>
+0xA7F5	0x674E	# <CJK>
+0xA7F6	0x674F	# <CJK>
+0xA7F7	0x6750	# <CJK>
+0xA7F8	0x6751	# <CJK>
+0xA7F9	0x675C	# <CJK>
+0xA7FA	0x6756	# <CJK>
+0xA7FB	0x675E	# <CJK>
+0xA7FC	0x6749	# <CJK>
+0xA7FD	0x6746	# <CJK>
+0xA7FE	0x6760	# <CJK>
+0xA840	0x6753	# <CJK>
+0xA841	0x6757	# <CJK>
+0xA842	0x6B65	# <CJK>
+0xA843	0x6BCF	# <CJK>
+0xA844	0x6C42	# <CJK>
+0xA845	0x6C5E	# <CJK>
+0xA846	0x6C99	# <CJK>
+0xA847	0x6C81	# <CJK>
+0xA848	0x6C88	# <CJK>
+0xA849	0x6C89	# <CJK>
+0xA84A	0x6C85	# <CJK>
+0xA84B	0x6C9B	# <CJK>
+0xA84C	0x6C6A	# <CJK>
+0xA84D	0x6C7A	# <CJK>
+0xA84E	0x6C90	# <CJK>
+0xA84F	0x6C70	# <CJK>
+0xA850	0x6C8C	# <CJK>
+0xA851	0x6C68	# <CJK>
+0xA852	0x6C96	# <CJK>
+0xA853	0x6C92	# <CJK>
+0xA854	0x6C7D	# <CJK>
+0xA855	0x6C83	# <CJK>
+0xA856	0x6C72	# <CJK>
+0xA857	0x6C7E	# <CJK>
+0xA858	0x6C74	# <CJK>
+0xA859	0x6C86	# <CJK>
+0xA85A	0x6C76	# <CJK>
+0xA85B	0x6C8D	# <CJK>
+0xA85C	0x6C94	# <CJK>
+0xA85D	0x6C98	# <CJK>
+0xA85E	0x6C82	# <CJK>
+0xA85F	0x7076	# <CJK>
+0xA860	0x707C	# <CJK>
+0xA861	0x707D	# <CJK>
+0xA862	0x7078	# <CJK>
+0xA863	0x7262	# <CJK>
+0xA864	0x7261	# <CJK>
+0xA865	0x7260	# <CJK>
+0xA866	0x72C4	# <CJK>
+0xA867	0x72C2	# <CJK>
+0xA868	0x7396	# <CJK>
+0xA869	0x752C	# <CJK>
+0xA86A	0x752B	# <CJK>
+0xA86B	0x7537	# <CJK>
+0xA86C	0x7538	# <CJK>
+0xA86D	0x7682	# <CJK>
+0xA86E	0x76EF	# <CJK>
+0xA86F	0x77E3	# <CJK>
+0xA870	0x79C1	# <CJK>
+0xA871	0x79C0	# <CJK>
+0xA872	0x79BF	# <CJK>
+0xA873	0x7A76	# <CJK>
+0xA874	0x7CFB	# <CJK>
+0xA875	0x7F55	# <CJK>
+0xA876	0x8096	# <CJK>
+0xA877	0x8093	# <CJK>
+0xA878	0x809D	# <CJK>
+0xA879	0x8098	# <CJK>
+0xA87A	0x809B	# <CJK>
+0xA87B	0x809A	# <CJK>
+0xA87C	0x80B2	# <CJK>
+0xA87D	0x826F	# <CJK>
+0xA87E	0x8292	# <CJK>
+0xA8A1	0x828B	# <CJK>
+0xA8A2	0x828D	# <CJK>
+0xA8A3	0x898B	# <CJK>
+0xA8A4	0x89D2	# <CJK>
+0xA8A5	0x8A00	# <CJK>
+0xA8A6	0x8C37	# <CJK>
+0xA8A7	0x8C46	# <CJK>
+0xA8A8	0x8C55	# <CJK>
+0xA8A9	0x8C9D	# <CJK>
+0xA8AA	0x8D64	# <CJK>
+0xA8AB	0x8D70	# <CJK>
+0xA8AC	0x8DB3	# <CJK>
+0xA8AD	0x8EAB	# <CJK>
+0xA8AE	0x8ECA	# <CJK>
+0xA8AF	0x8F9B	# <CJK>
+0xA8B0	0x8FB0	# <CJK>
+0xA8B1	0x8FC2	# <CJK>
+0xA8B2	0x8FC6	# <CJK>
+0xA8B3	0x8FC5	# <CJK>
+0xA8B4	0x8FC4	# <CJK>
+0xA8B5	0x5DE1	# <CJK>
+0xA8B6	0x9091	# <CJK>
+0xA8B7	0x90A2	# <CJK>
+0xA8B8	0x90AA	# <CJK>
+0xA8B9	0x90A6	# <CJK>
+0xA8BA	0x90A3	# <CJK>
+0xA8BB	0x9149	# <CJK>
+0xA8BC	0x91C6	# <CJK>
+0xA8BD	0x91CC	# <CJK>
+0xA8BE	0x9632	# <CJK>
+0xA8BF	0x962E	# <CJK>
+0xA8C0	0x9631	# <CJK>
+0xA8C1	0x962A	# <CJK>
+0xA8C2	0x962C	# <CJK>
+0xA8C3	0x4E26	# <CJK>
+0xA8C4	0x4E56	# <CJK>
+0xA8C5	0x4E73	# <CJK>
+0xA8C6	0x4E8B	# <CJK>
+0xA8C7	0x4E9B	# <CJK>
+0xA8C8	0x4E9E	# <CJK>
+0xA8C9	0x4EAB	# <CJK>
+0xA8CA	0x4EAC	# <CJK>
+0xA8CB	0x4F6F	# <CJK>
+0xA8CC	0x4F9D	# <CJK>
+0xA8CD	0x4F8D	# <CJK>
+0xA8CE	0x4F73	# <CJK>
+0xA8CF	0x4F7F	# <CJK>
+0xA8D0	0x4F6C	# <CJK>
+0xA8D1	0x4F9B	# <CJK>
+0xA8D2	0x4F8B	# <CJK>
+0xA8D3	0x4F86	# <CJK>
+0xA8D4	0x4F83	# <CJK>
+0xA8D5	0x4F70	# <CJK>
+0xA8D6	0x4F75	# <CJK>
+0xA8D7	0x4F88	# <CJK>
+0xA8D8	0x4F69	# <CJK>
+0xA8D9	0x4F7B	# <CJK>
+0xA8DA	0x4F96	# <CJK>
+0xA8DB	0x4F7E	# <CJK>
+0xA8DC	0x4F8F	# <CJK>
+0xA8DD	0x4F91	# <CJK>
+0xA8DE	0x4F7A	# <CJK>
+0xA8DF	0x5154	# <CJK>
+0xA8E0	0x5152	# <CJK>
+0xA8E1	0x5155	# <CJK>
+0xA8E2	0x5169	# <CJK>
+0xA8E3	0x5177	# <CJK>
+0xA8E4	0x5176	# <CJK>
+0xA8E5	0x5178	# <CJK>
+0xA8E6	0x51BD	# <CJK>
+0xA8E7	0x51FD	# <CJK>
+0xA8E8	0x523B	# <CJK>
+0xA8E9	0x5238	# <CJK>
+0xA8EA	0x5237	# <CJK>
+0xA8EB	0x523A	# <CJK>
+0xA8EC	0x5230	# <CJK>
+0xA8ED	0x522E	# <CJK>
+0xA8EE	0x5236	# <CJK>
+0xA8EF	0x5241	# <CJK>
+0xA8F0	0x52BE	# <CJK>
+0xA8F1	0x52BB	# <CJK>
+0xA8F2	0x5352	# <CJK>
+0xA8F3	0x5354	# <CJK>
+0xA8F4	0x5353	# <CJK>
+0xA8F5	0x5351	# <CJK>
+0xA8F6	0x5366	# <CJK>
+0xA8F7	0x5377	# <CJK>
+0xA8F8	0x5378	# <CJK>
+0xA8F9	0x5379	# <CJK>
+0xA8FA	0x53D6	# <CJK>
+0xA8FB	0x53D4	# <CJK>
+0xA8FC	0x53D7	# <CJK>
+0xA8FD	0x5473	# <CJK>
+0xA8FE	0x5475	# <CJK>
+0xA940	0x5496	# <CJK>
+0xA941	0x5478	# <CJK>
+0xA942	0x5495	# <CJK>
+0xA943	0x5480	# <CJK>
+0xA944	0x547B	# <CJK>
+0xA945	0x5477	# <CJK>
+0xA946	0x5484	# <CJK>
+0xA947	0x5492	# <CJK>
+0xA948	0x5486	# <CJK>
+0xA949	0x547C	# <CJK>
+0xA94A	0x5490	# <CJK>
+0xA94B	0x5471	# <CJK>
+0xA94C	0x5476	# <CJK>
+0xA94D	0x548C	# <CJK>
+0xA94E	0x549A	# <CJK>
+0xA94F	0x5462	# <CJK>
+0xA950	0x5468	# <CJK>
+0xA951	0x548B	# <CJK>
+0xA952	0x547D	# <CJK>
+0xA953	0x548E	# <CJK>
+0xA954	0x56FA	# <CJK>
+0xA955	0x5783	# <CJK>
+0xA956	0x5777	# <CJK>
+0xA957	0x576A	# <CJK>
+0xA958	0x5769	# <CJK>
+0xA959	0x5761	# <CJK>
+0xA95A	0x5766	# <CJK>
+0xA95B	0x5764	# <CJK>
+0xA95C	0x577C	# <CJK>
+0xA95D	0x591C	# <CJK>
+0xA95E	0x5949	# <CJK>
+0xA95F	0x5947	# <CJK>
+0xA960	0x5948	# <CJK>
+0xA961	0x5944	# <CJK>
+0xA962	0x5954	# <CJK>
+0xA963	0x59BE	# <CJK>
+0xA964	0x59BB	# <CJK>
+0xA965	0x59D4	# <CJK>
+0xA966	0x59B9	# <CJK>
+0xA967	0x59AE	# <CJK>
+0xA968	0x59D1	# <CJK>
+0xA969	0x59C6	# <CJK>
+0xA96A	0x59D0	# <CJK>
+0xA96B	0x59CD	# <CJK>
+0xA96C	0x59CB	# <CJK>
+0xA96D	0x59D3	# <CJK>
+0xA96E	0x59CA	# <CJK>
+0xA96F	0x59AF	# <CJK>
+0xA970	0x59B3	# <CJK>
+0xA971	0x59D2	# <CJK>
+0xA972	0x59C5	# <CJK>
+0xA973	0x5B5F	# <CJK>
+0xA974	0x5B64	# <CJK>
+0xA975	0x5B63	# <CJK>
+0xA976	0x5B97	# <CJK>
+0xA977	0x5B9A	# <CJK>
+0xA978	0x5B98	# <CJK>
+0xA979	0x5B9C	# <CJK>
+0xA97A	0x5B99	# <CJK>
+0xA97B	0x5B9B	# <CJK>
+0xA97C	0x5C1A	# <CJK>
+0xA97D	0x5C48	# <CJK>
+0xA97E	0x5C45	# <CJK>
+0xA9A1	0x5C46	# <CJK>
+0xA9A2	0x5CB7	# <CJK>
+0xA9A3	0x5CA1	# <CJK>
+0xA9A4	0x5CB8	# <CJK>
+0xA9A5	0x5CA9	# <CJK>
+0xA9A6	0x5CAB	# <CJK>
+0xA9A7	0x5CB1	# <CJK>
+0xA9A8	0x5CB3	# <CJK>
+0xA9A9	0x5E18	# <CJK>
+0xA9AA	0x5E1A	# <CJK>
+0xA9AB	0x5E16	# <CJK>
+0xA9AC	0x5E15	# <CJK>
+0xA9AD	0x5E1B	# <CJK>
+0xA9AE	0x5E11	# <CJK>
+0xA9AF	0x5E78	# <CJK>
+0xA9B0	0x5E9A	# <CJK>
+0xA9B1	0x5E97	# <CJK>
+0xA9B2	0x5E9C	# <CJK>
+0xA9B3	0x5E95	# <CJK>
+0xA9B4	0x5E96	# <CJK>
+0xA9B5	0x5EF6	# <CJK>
+0xA9B6	0x5F26	# <CJK>
+0xA9B7	0x5F27	# <CJK>
+0xA9B8	0x5F29	# <CJK>
+0xA9B9	0x5F80	# <CJK>
+0xA9BA	0x5F81	# <CJK>
+0xA9BB	0x5F7F	# <CJK>
+0xA9BC	0x5F7C	# <CJK>
+0xA9BD	0x5FDD	# <CJK>
+0xA9BE	0x5FE0	# <CJK>
+0xA9BF	0x5FFD	# <CJK>
+0xA9C0	0x5FF5	# <CJK>
+0xA9C1	0x5FFF	# <CJK>
+0xA9C2	0x600F	# <CJK>
+0xA9C3	0x6014	# <CJK>
+0xA9C4	0x602F	# <CJK>
+0xA9C5	0x6035	# <CJK>
+0xA9C6	0x6016	# <CJK>
+0xA9C7	0x602A	# <CJK>
+0xA9C8	0x6015	# <CJK>
+0xA9C9	0x6021	# <CJK>
+0xA9CA	0x6027	# <CJK>
+0xA9CB	0x6029	# <CJK>
+0xA9CC	0x602B	# <CJK>
+0xA9CD	0x601B	# <CJK>
+0xA9CE	0x6216	# <CJK>
+0xA9CF	0x6215	# <CJK>
+0xA9D0	0x623F	# <CJK>
+0xA9D1	0x623E	# <CJK>
+0xA9D2	0x6240	# <CJK>
+0xA9D3	0x627F	# <CJK>
+0xA9D4	0x62C9	# <CJK>
+0xA9D5	0x62CC	# <CJK>
+0xA9D6	0x62C4	# <CJK>
+0xA9D7	0x62BF	# <CJK>
+0xA9D8	0x62C2	# <CJK>
+0xA9D9	0x62B9	# <CJK>
+0xA9DA	0x62D2	# <CJK>
+0xA9DB	0x62DB	# <CJK>
+0xA9DC	0x62AB	# <CJK>
+0xA9DD	0x62D3	# <CJK>
+0xA9DE	0x62D4	# <CJK>
+0xA9DF	0x62CB	# <CJK>
+0xA9E0	0x62C8	# <CJK>
+0xA9E1	0x62A8	# <CJK>
+0xA9E2	0x62BD	# <CJK>
+0xA9E3	0x62BC	# <CJK>
+0xA9E4	0x62D0	# <CJK>
+0xA9E5	0x62D9	# <CJK>
+0xA9E6	0x62C7	# <CJK>
+0xA9E7	0x62CD	# <CJK>
+0xA9E8	0x62B5	# <CJK>
+0xA9E9	0x62DA	# <CJK>
+0xA9EA	0x62B1	# <CJK>
+0xA9EB	0x62D8	# <CJK>
+0xA9EC	0x62D6	# <CJK>
+0xA9ED	0x62D7	# <CJK>
+0xA9EE	0x62C6	# <CJK>
+0xA9EF	0x62AC	# <CJK>
+0xA9F0	0x62CE	# <CJK>
+0xA9F1	0x653E	# <CJK>
+0xA9F2	0x65A7	# <CJK>
+0xA9F3	0x65BC	# <CJK>
+0xA9F4	0x65FA	# <CJK>
+0xA9F5	0x6614	# <CJK>
+0xA9F6	0x6613	# <CJK>
+0xA9F7	0x660C	# <CJK>
+0xA9F8	0x6606	# <CJK>
+0xA9F9	0x6602	# <CJK>
+0xA9FA	0x660E	# <CJK>
+0xA9FB	0x6600	# <CJK>
+0xA9FC	0x660F	# <CJK>
+0xA9FD	0x6615	# <CJK>
+0xA9FE	0x660A	# <CJK>
+0xAA40	0x6607	# <CJK>
+0xAA41	0x670D	# <CJK>
+0xAA42	0x670B	# <CJK>
+0xAA43	0x676D	# <CJK>
+0xAA44	0x678B	# <CJK>
+0xAA45	0x6795	# <CJK>
+0xAA46	0x6771	# <CJK>
+0xAA47	0x679C	# <CJK>
+0xAA48	0x6773	# <CJK>
+0xAA49	0x6777	# <CJK>
+0xAA4A	0x6787	# <CJK>
+0xAA4B	0x679D	# <CJK>
+0xAA4C	0x6797	# <CJK>
+0xAA4D	0x676F	# <CJK>
+0xAA4E	0x6770	# <CJK>
+0xAA4F	0x677F	# <CJK>
+0xAA50	0x6789	# <CJK>
+0xAA51	0x677E	# <CJK>
+0xAA52	0x6790	# <CJK>
+0xAA53	0x6775	# <CJK>
+0xAA54	0x679A	# <CJK>
+0xAA55	0x6793	# <CJK>
+0xAA56	0x677C	# <CJK>
+0xAA57	0x676A	# <CJK>
+0xAA58	0x6772	# <CJK>
+0xAA59	0x6B23	# <CJK>
+0xAA5A	0x6B66	# <CJK>
+0xAA5B	0x6B67	# <CJK>
+0xAA5C	0x6B7F	# <CJK>
+0xAA5D	0x6C13	# <CJK>
+0xAA5E	0x6C1B	# <CJK>
+0xAA5F	0x6CE3	# <CJK>
+0xAA60	0x6CE8	# <CJK>
+0xAA61	0x6CF3	# <CJK>
+0xAA62	0x6CB1	# <CJK>
+0xAA63	0x6CCC	# <CJK>
+0xAA64	0x6CE5	# <CJK>
+0xAA65	0x6CB3	# <CJK>
+0xAA66	0x6CBD	# <CJK>
+0xAA67	0x6CBE	# <CJK>
+0xAA68	0x6CBC	# <CJK>
+0xAA69	0x6CE2	# <CJK>
+0xAA6A	0x6CAB	# <CJK>
+0xAA6B	0x6CD5	# <CJK>
+0xAA6C	0x6CD3	# <CJK>
+0xAA6D	0x6CB8	# <CJK>
+0xAA6E	0x6CC4	# <CJK>
+0xAA6F	0x6CB9	# <CJK>
+0xAA70	0x6CC1	# <CJK>
+0xAA71	0x6CAE	# <CJK>
+0xAA72	0x6CD7	# <CJK>
+0xAA73	0x6CC5	# <CJK>
+0xAA74	0x6CF1	# <CJK>
+0xAA75	0x6CBF	# <CJK>
+0xAA76	0x6CBB	# <CJK>
+0xAA77	0x6CE1	# <CJK>
+0xAA78	0x6CDB	# <CJK>
+0xAA79	0x6CCA	# <CJK>
+0xAA7A	0x6CAC	# <CJK>
+0xAA7B	0x6CEF	# <CJK>
+0xAA7C	0x6CDC	# <CJK>
+0xAA7D	0x6CD6	# <CJK>
+0xAA7E	0x6CE0	# <CJK>
+0xAAA1	0x7095	# <CJK>
+0xAAA2	0x708E	# <CJK>
+0xAAA3	0x7092	# <CJK>
+0xAAA4	0x708A	# <CJK>
+0xAAA5	0x7099	# <CJK>
+0xAAA6	0x722C	# <CJK>
+0xAAA7	0x722D	# <CJK>
+0xAAA8	0x7238	# <CJK>
+0xAAA9	0x7248	# <CJK>
+0xAAAA	0x7267	# <CJK>
+0xAAAB	0x7269	# <CJK>
+0xAAAC	0x72C0	# <CJK>
+0xAAAD	0x72CE	# <CJK>
+0xAAAE	0x72D9	# <CJK>
+0xAAAF	0x72D7	# <CJK>
+0xAAB0	0x72D0	# <CJK>
+0xAAB1	0x73A9	# <CJK>
+0xAAB2	0x73A8	# <CJK>
+0xAAB3	0x739F	# <CJK>
+0xAAB4	0x73AB	# <CJK>
+0xAAB5	0x73A5	# <CJK>
+0xAAB6	0x753D	# <CJK>
+0xAAB7	0x759D	# <CJK>
+0xAAB8	0x7599	# <CJK>
+0xAAB9	0x759A	# <CJK>
+0xAABA	0x7684	# <CJK>
+0xAABB	0x76C2	# <CJK>
+0xAABC	0x76F2	# <CJK>
+0xAABD	0x76F4	# <CJK>
+0xAABE	0x77E5	# <CJK>
+0xAABF	0x77FD	# <CJK>
+0xAAC0	0x793E	# <CJK>
+0xAAC1	0x7940	# <CJK>
+0xAAC2	0x7941	# <CJK>
+0xAAC3	0x79C9	# <CJK>
+0xAAC4	0x79C8	# <CJK>
+0xAAC5	0x7A7A	# <CJK>
+0xAAC6	0x7A79	# <CJK>
+0xAAC7	0x7AFA	# <CJK>
+0xAAC8	0x7CFE	# <CJK>
+0xAAC9	0x7F54	# <CJK>
+0xAACA	0x7F8C	# <CJK>
+0xAACB	0x7F8B	# <CJK>
+0xAACC	0x8005	# <CJK>
+0xAACD	0x80BA	# <CJK>
+0xAACE	0x80A5	# <CJK>
+0xAACF	0x80A2	# <CJK>
+0xAAD0	0x80B1	# <CJK>
+0xAAD1	0x80A1	# <CJK>
+0xAAD2	0x80AB	# <CJK>
+0xAAD3	0x80A9	# <CJK>
+0xAAD4	0x80B4	# <CJK>
+0xAAD5	0x80AA	# <CJK>
+0xAAD6	0x80AF	# <CJK>
+0xAAD7	0x81E5	# <CJK>
+0xAAD8	0x81FE	# <CJK>
+0xAAD9	0x820D	# <CJK>
+0xAADA	0x82B3	# <CJK>
+0xAADB	0x829D	# <CJK>
+0xAADC	0x8299	# <CJK>
+0xAADD	0x82AD	# <CJK>
+0xAADE	0x82BD	# <CJK>
+0xAADF	0x829F	# <CJK>
+0xAAE0	0x82B9	# <CJK>
+0xAAE1	0x82B1	# <CJK>
+0xAAE2	0x82AC	# <CJK>
+0xAAE3	0x82A5	# <CJK>
+0xAAE4	0x82AF	# <CJK>
+0xAAE5	0x82B8	# <CJK>
+0xAAE6	0x82A3	# <CJK>
+0xAAE7	0x82B0	# <CJK>
+0xAAE8	0x82BE	# <CJK>
+0xAAE9	0x82B7	# <CJK>
+0xAAEA	0x864E	# <CJK>
+0xAAEB	0x8671	# <CJK>
+0xAAEC	0x521D	# <CJK>
+0xAAED	0x8868	# <CJK>
+0xAAEE	0x8ECB	# <CJK>
+0xAAEF	0x8FCE	# <CJK>
+0xAAF0	0x8FD4	# <CJK>
+0xAAF1	0x8FD1	# <CJK>
+0xAAF2	0x90B5	# <CJK>
+0xAAF3	0x90B8	# <CJK>
+0xAAF4	0x90B1	# <CJK>
+0xAAF5	0x90B6	# <CJK>
+0xAAF6	0x91C7	# <CJK>
+0xAAF7	0x91D1	# <CJK>
+0xAAF8	0x9577	# <CJK>
+0xAAF9	0x9580	# <CJK>
+0xAAFA	0x961C	# <CJK>
+0xAAFB	0x9640	# <CJK>
+0xAAFC	0x963F	# <CJK>
+0xAAFD	0x963B	# <CJK>
+0xAAFE	0x9644	# <CJK>
+0xAB40	0x9642	# <CJK>
+0xAB41	0x96B9	# <CJK>
+0xAB42	0x96E8	# <CJK>
+0xAB43	0x9752	# <CJK>
+0xAB44	0x975E	# <CJK>
+0xAB45	0x4E9F	# <CJK>
+0xAB46	0x4EAD	# <CJK>
+0xAB47	0x4EAE	# <CJK>
+0xAB48	0x4FE1	# <CJK>
+0xAB49	0x4FB5	# <CJK>
+0xAB4A	0x4FAF	# <CJK>
+0xAB4B	0x4FBF	# <CJK>
+0xAB4C	0x4FE0	# <CJK>
+0xAB4D	0x4FD1	# <CJK>
+0xAB4E	0x4FCF	# <CJK>
+0xAB4F	0x4FDD	# <CJK>
+0xAB50	0x4FC3	# <CJK>
+0xAB51	0x4FB6	# <CJK>
+0xAB52	0x4FD8	# <CJK>
+0xAB53	0x4FDF	# <CJK>
+0xAB54	0x4FCA	# <CJK>
+0xAB55	0x4FD7	# <CJK>
+0xAB56	0x4FAE	# <CJK>
+0xAB57	0x4FD0	# <CJK>
+0xAB58	0x4FC4	# <CJK>
+0xAB59	0x4FC2	# <CJK>
+0xAB5A	0x4FDA	# <CJK>
+0xAB5B	0x4FCE	# <CJK>
+0xAB5C	0x4FDE	# <CJK>
+0xAB5D	0x4FB7	# <CJK>
+0xAB5E	0x5157	# <CJK>
+0xAB5F	0x5192	# <CJK>
+0xAB60	0x5191	# <CJK>
+0xAB61	0x51A0	# <CJK>
+0xAB62	0x524E	# <CJK>
+0xAB63	0x5243	# <CJK>
+0xAB64	0x524A	# <CJK>
+0xAB65	0x524D	# <CJK>
+0xAB66	0x524C	# <CJK>
+0xAB67	0x524B	# <CJK>
+0xAB68	0x5247	# <CJK>
+0xAB69	0x52C7	# <CJK>
+0xAB6A	0x52C9	# <CJK>
+0xAB6B	0x52C3	# <CJK>
+0xAB6C	0x52C1	# <CJK>
+0xAB6D	0x530D	# <CJK>
+0xAB6E	0x5357	# <CJK>
+0xAB6F	0x537B	# <CJK>
+0xAB70	0x539A	# <CJK>
+0xAB71	0x53DB	# <CJK>
+0xAB72	0x54AC	# <CJK>
+0xAB73	0x54C0	# <CJK>
+0xAB74	0x54A8	# <CJK>
+0xAB75	0x54CE	# <CJK>
+0xAB76	0x54C9	# <CJK>
+0xAB77	0x54B8	# <CJK>
+0xAB78	0x54A6	# <CJK>
+0xAB79	0x54B3	# <CJK>
+0xAB7A	0x54C7	# <CJK>
+0xAB7B	0x54C2	# <CJK>
+0xAB7C	0x54BD	# <CJK>
+0xAB7D	0x54AA	# <CJK>
+0xAB7E	0x54C1	# <CJK>
+0xABA1	0x54C4	# <CJK>
+0xABA2	0x54C8	# <CJK>
+0xABA3	0x54AF	# <CJK>
+0xABA4	0x54AB	# <CJK>
+0xABA5	0x54B1	# <CJK>
+0xABA6	0x54BB	# <CJK>
+0xABA7	0x54A9	# <CJK>
+0xABA8	0x54A7	# <CJK>
+0xABA9	0x54BF	# <CJK>
+0xABAA	0x56FF	# <CJK>
+0xABAB	0x5782	# <CJK>
+0xABAC	0x578B	# <CJK>
+0xABAD	0x57A0	# <CJK>
+0xABAE	0x57A3	# <CJK>
+0xABAF	0x57A2	# <CJK>
+0xABB0	0x57CE	# <CJK>
+0xABB1	0x57AE	# <CJK>
+0xABB2	0x5793	# <CJK>
+0xABB3	0x5955	# <CJK>
+0xABB4	0x5951	# <CJK>
+0xABB5	0x594F	# <CJK>
+0xABB6	0x594E	# <CJK>
+0xABB7	0x5950	# <CJK>
+0xABB8	0x59DC	# <CJK>
+0xABB9	0x59D8	# <CJK>
+0xABBA	0x59FF	# <CJK>
+0xABBB	0x59E3	# <CJK>
+0xABBC	0x59E8	# <CJK>
+0xABBD	0x5A03	# <CJK>
+0xABBE	0x59E5	# <CJK>
+0xABBF	0x59EA	# <CJK>
+0xABC0	0x59DA	# <CJK>
+0xABC1	0x59E6	# <CJK>
+0xABC2	0x5A01	# <CJK>
+0xABC3	0x59FB	# <CJK>
+0xABC4	0x5B69	# <CJK>
+0xABC5	0x5BA3	# <CJK>
+0xABC6	0x5BA6	# <CJK>
+0xABC7	0x5BA4	# <CJK>
+0xABC8	0x5BA2	# <CJK>
+0xABC9	0x5BA5	# <CJK>
+0xABCA	0x5C01	# <CJK>
+0xABCB	0x5C4E	# <CJK>
+0xABCC	0x5C4F	# <CJK>
+0xABCD	0x5C4D	# <CJK>
+0xABCE	0x5C4B	# <CJK>
+0xABCF	0x5CD9	# <CJK>
+0xABD0	0x5CD2	# <CJK>
+0xABD1	0x5DF7	# <CJK>
+0xABD2	0x5E1D	# <CJK>
+0xABD3	0x5E25	# <CJK>
+0xABD4	0x5E1F	# <CJK>
+0xABD5	0x5E7D	# <CJK>
+0xABD6	0x5EA0	# <CJK>
+0xABD7	0x5EA6	# <CJK>
+0xABD8	0x5EFA	# <CJK>
+0xABD9	0x5F08	# <CJK>
+0xABDA	0x5F2D	# <CJK>
+0xABDB	0x5F65	# <CJK>
+0xABDC	0x5F88	# <CJK>
+0xABDD	0x5F85	# <CJK>
+0xABDE	0x5F8A	# <CJK>
+0xABDF	0x5F8B	# <CJK>
+0xABE0	0x5F87	# <CJK>
+0xABE1	0x5F8C	# <CJK>
+0xABE2	0x5F89	# <CJK>
+0xABE3	0x6012	# <CJK>
+0xABE4	0x601D	# <CJK>
+0xABE5	0x6020	# <CJK>
+0xABE6	0x6025	# <CJK>
+0xABE7	0x600E	# <CJK>
+0xABE8	0x6028	# <CJK>
+0xABE9	0x604D	# <CJK>
+0xABEA	0x6070	# <CJK>
+0xABEB	0x6068	# <CJK>
+0xABEC	0x6062	# <CJK>
+0xABED	0x6046	# <CJK>
+0xABEE	0x6043	# <CJK>
+0xABEF	0x606C	# <CJK>
+0xABF0	0x606B	# <CJK>
+0xABF1	0x606A	# <CJK>
+0xABF2	0x6064	# <CJK>
+0xABF3	0x6241	# <CJK>
+0xABF4	0x62DC	# <CJK>
+0xABF5	0x6316	# <CJK>
+0xABF6	0x6309	# <CJK>
+0xABF7	0x62FC	# <CJK>
+0xABF8	0x62ED	# <CJK>
+0xABF9	0x6301	# <CJK>
+0xABFA	0x62EE	# <CJK>
+0xABFB	0x62FD	# <CJK>
+0xABFC	0x6307	# <CJK>
+0xABFD	0x62F1	# <CJK>
+0xABFE	0x62F7	# <CJK>
+0xAC40	0x62EF	# <CJK>
+0xAC41	0x62EC	# <CJK>
+0xAC42	0x62FE	# <CJK>
+0xAC43	0x62F4	# <CJK>
+0xAC44	0x6311	# <CJK>
+0xAC45	0x6302	# <CJK>
+0xAC46	0x653F	# <CJK>
+0xAC47	0x6545	# <CJK>
+0xAC48	0x65AB	# <CJK>
+0xAC49	0x65BD	# <CJK>
+0xAC4A	0x65E2	# <CJK>
+0xAC4B	0x6625	# <CJK>
+0xAC4C	0x662D	# <CJK>
+0xAC4D	0x6620	# <CJK>
+0xAC4E	0x6627	# <CJK>
+0xAC4F	0x662F	# <CJK>
+0xAC50	0x661F	# <CJK>
+0xAC51	0x6628	# <CJK>
+0xAC52	0x6631	# <CJK>
+0xAC53	0x6624	# <CJK>
+0xAC54	0x66F7	# <CJK>
+0xAC55	0x67FF	# <CJK>
+0xAC56	0x67D3	# <CJK>
+0xAC57	0x67F1	# <CJK>
+0xAC58	0x67D4	# <CJK>
+0xAC59	0x67D0	# <CJK>
+0xAC5A	0x67EC	# <CJK>
+0xAC5B	0x67B6	# <CJK>
+0xAC5C	0x67AF	# <CJK>
+0xAC5D	0x67F5	# <CJK>
+0xAC5E	0x67E9	# <CJK>
+0xAC5F	0x67EF	# <CJK>
+0xAC60	0x67C4	# <CJK>
+0xAC61	0x67D1	# <CJK>
+0xAC62	0x67B4	# <CJK>
+0xAC63	0x67DA	# <CJK>
+0xAC64	0x67E5	# <CJK>
+0xAC65	0x67B8	# <CJK>
+0xAC66	0x67CF	# <CJK>
+0xAC67	0x67DE	# <CJK>
+0xAC68	0x67F3	# <CJK>
+0xAC69	0x67B0	# <CJK>
+0xAC6A	0x67D9	# <CJK>
+0xAC6B	0x67E2	# <CJK>
+0xAC6C	0x67DD	# <CJK>
+0xAC6D	0x67D2	# <CJK>
+0xAC6E	0x6B6A	# <CJK>
+0xAC6F	0x6B83	# <CJK>
+0xAC70	0x6B86	# <CJK>
+0xAC71	0x6BB5	# <CJK>
+0xAC72	0x6BD2	# <CJK>
+0xAC73	0x6BD7	# <CJK>
+0xAC74	0x6C1F	# <CJK>
+0xAC75	0x6CC9	# <CJK>
+0xAC76	0x6D0B	# <CJK>
+0xAC77	0x6D32	# <CJK>
+0xAC78	0x6D2A	# <CJK>
+0xAC79	0x6D41	# <CJK>
+0xAC7A	0x6D25	# <CJK>
+0xAC7B	0x6D0C	# <CJK>
+0xAC7C	0x6D31	# <CJK>
+0xAC7D	0x6D1E	# <CJK>
+0xAC7E	0x6D17	# <CJK>
+0xACA1	0x6D3B	# <CJK>
+0xACA2	0x6D3D	# <CJK>
+0xACA3	0x6D3E	# <CJK>
+0xACA4	0x6D36	# <CJK>
+0xACA5	0x6D1B	# <CJK>
+0xACA6	0x6CF5	# <CJK>
+0xACA7	0x6D39	# <CJK>
+0xACA8	0x6D27	# <CJK>
+0xACA9	0x6D38	# <CJK>
+0xACAA	0x6D29	# <CJK>
+0xACAB	0x6D2E	# <CJK>
+0xACAC	0x6D35	# <CJK>
+0xACAD	0x6D0E	# <CJK>
+0xACAE	0x6D2B	# <CJK>
+0xACAF	0x70AB	# <CJK>
+0xACB0	0x70BA	# <CJK>
+0xACB1	0x70B3	# <CJK>
+0xACB2	0x70AC	# <CJK>
+0xACB3	0x70AF	# <CJK>
+0xACB4	0x70AD	# <CJK>
+0xACB5	0x70B8	# <CJK>
+0xACB6	0x70AE	# <CJK>
+0xACB7	0x70A4	# <CJK>
+0xACB8	0x7230	# <CJK>
+0xACB9	0x7272	# <CJK>
+0xACBA	0x726F	# <CJK>
+0xACBB	0x7274	# <CJK>
+0xACBC	0x72E9	# <CJK>
+0xACBD	0x72E0	# <CJK>
+0xACBE	0x72E1	# <CJK>
+0xACBF	0x73B7	# <CJK>
+0xACC0	0x73CA	# <CJK>
+0xACC1	0x73BB	# <CJK>
+0xACC2	0x73B2	# <CJK>
+0xACC3	0x73CD	# <CJK>
+0xACC4	0x73C0	# <CJK>
+0xACC5	0x73B3	# <CJK>
+0xACC6	0x751A	# <CJK>
+0xACC7	0x752D	# <CJK>
+0xACC8	0x754F	# <CJK>
+0xACC9	0x754C	# <CJK>
+0xACCA	0x754E	# <CJK>
+0xACCB	0x754B	# <CJK>
+0xACCC	0x75AB	# <CJK>
+0xACCD	0x75A4	# <CJK>
+0xACCE	0x75A5	# <CJK>
+0xACCF	0x75A2	# <CJK>
+0xACD0	0x75A3	# <CJK>
+0xACD1	0x7678	# <CJK>
+0xACD2	0x7686	# <CJK>
+0xACD3	0x7687	# <CJK>
+0xACD4	0x7688	# <CJK>
+0xACD5	0x76C8	# <CJK>
+0xACD6	0x76C6	# <CJK>
+0xACD7	0x76C3	# <CJK>
+0xACD8	0x76C5	# <CJK>
+0xACD9	0x7701	# <CJK>
+0xACDA	0x76F9	# <CJK>
+0xACDB	0x76F8	# <CJK>
+0xACDC	0x7709	# <CJK>
+0xACDD	0x770B	# <CJK>
+0xACDE	0x76FE	# <CJK>
+0xACDF	0x76FC	# <CJK>
+0xACE0	0x7707	# <CJK>
+0xACE1	0x77DC	# <CJK>
+0xACE2	0x7802	# <CJK>
+0xACE3	0x7814	# <CJK>
+0xACE4	0x780C	# <CJK>
+0xACE5	0x780D	# <CJK>
+0xACE6	0x7946	# <CJK>
+0xACE7	0x7949	# <CJK>
+0xACE8	0x7948	# <CJK>
+0xACE9	0x7947	# <CJK>
+0xACEA	0x79B9	# <CJK>
+0xACEB	0x79BA	# <CJK>
+0xACEC	0x79D1	# <CJK>
+0xACED	0x79D2	# <CJK>
+0xACEE	0x79CB	# <CJK>
+0xACEF	0x7A7F	# <CJK>
+0xACF0	0x7A81	# <CJK>
+0xACF1	0x7AFF	# <CJK>
+0xACF2	0x7AFD	# <CJK>
+0xACF3	0x7C7D	# <CJK>
+0xACF4	0x7D02	# <CJK>
+0xACF5	0x7D05	# <CJK>
+0xACF6	0x7D00	# <CJK>
+0xACF7	0x7D09	# <CJK>
+0xACF8	0x7D07	# <CJK>
+0xACF9	0x7D04	# <CJK>
+0xACFA	0x7D06	# <CJK>
+0xACFB	0x7F38	# <CJK>
+0xACFC	0x7F8E	# <CJK>
+0xACFD	0x7FBF	# <CJK>
+0xACFE	0x8004	# <CJK>
+0xAD40	0x8010	# <CJK>
+0xAD41	0x800D	# <CJK>
+0xAD42	0x8011	# <CJK>
+0xAD43	0x8036	# <CJK>
+0xAD44	0x80D6	# <CJK>
+0xAD45	0x80E5	# <CJK>
+0xAD46	0x80DA	# <CJK>
+0xAD47	0x80C3	# <CJK>
+0xAD48	0x80C4	# <CJK>
+0xAD49	0x80CC	# <CJK>
+0xAD4A	0x80E1	# <CJK>
+0xAD4B	0x80DB	# <CJK>
+0xAD4C	0x80CE	# <CJK>
+0xAD4D	0x80DE	# <CJK>
+0xAD4E	0x80E4	# <CJK>
+0xAD4F	0x80DD	# <CJK>
+0xAD50	0x81F4	# <CJK>
+0xAD51	0x8222	# <CJK>
+0xAD52	0x82E7	# <CJK>
+0xAD53	0x8303	# <CJK>
+0xAD54	0x8305	# <CJK>
+0xAD55	0x82E3	# <CJK>
+0xAD56	0x82DB	# <CJK>
+0xAD57	0x82E6	# <CJK>
+0xAD58	0x8304	# <CJK>
+0xAD59	0x82E5	# <CJK>
+0xAD5A	0x8302	# <CJK>
+0xAD5B	0x8309	# <CJK>
+0xAD5C	0x82D2	# <CJK>
+0xAD5D	0x82D7	# <CJK>
+0xAD5E	0x82F1	# <CJK>
+0xAD5F	0x8301	# <CJK>
+0xAD60	0x82DC	# <CJK>
+0xAD61	0x82D4	# <CJK>
+0xAD62	0x82D1	# <CJK>
+0xAD63	0x82DE	# <CJK>
+0xAD64	0x82D3	# <CJK>
+0xAD65	0x82DF	# <CJK>
+0xAD66	0x82EF	# <CJK>
+0xAD67	0x8306	# <CJK>
+0xAD68	0x8650	# <CJK>
+0xAD69	0x8679	# <CJK>
+0xAD6A	0x867B	# <CJK>
+0xAD6B	0x867A	# <CJK>
+0xAD6C	0x884D	# <CJK>
+0xAD6D	0x886B	# <CJK>
+0xAD6E	0x8981	# <CJK>
+0xAD6F	0x89D4	# <CJK>
+0xAD70	0x8A08	# <CJK>
+0xAD71	0x8A02	# <CJK>
+0xAD72	0x8A03	# <CJK>
+0xAD73	0x8C9E	# <CJK>
+0xAD74	0x8CA0	# <CJK>
+0xAD75	0x8D74	# <CJK>
+0xAD76	0x8D73	# <CJK>
+0xAD77	0x8DB4	# <CJK>
+0xAD78	0x8ECD	# <CJK>
+0xAD79	0x8ECC	# <CJK>
+0xAD7A	0x8FF0	# <CJK>
+0xAD7B	0x8FE6	# <CJK>
+0xAD7C	0x8FE2	# <CJK>
+0xAD7D	0x8FEA	# <CJK>
+0xAD7E	0x8FE5	# <CJK>
+0xADA1	0x8FED	# <CJK>
+0xADA2	0x8FEB	# <CJK>
+0xADA3	0x8FE4	# <CJK>
+0xADA4	0x8FE8	# <CJK>
+0xADA5	0x90CA	# <CJK>
+0xADA6	0x90CE	# <CJK>
+0xADA7	0x90C1	# <CJK>
+0xADA8	0x90C3	# <CJK>
+0xADA9	0x914B	# <CJK>
+0xADAA	0x914A	# <CJK>
+0xADAB	0x91CD	# <CJK>
+0xADAC	0x9582	# <CJK>
+0xADAD	0x9650	# <CJK>
+0xADAE	0x964B	# <CJK>
+0xADAF	0x964C	# <CJK>
+0xADB0	0x964D	# <CJK>
+0xADB1	0x9762	# <CJK>
+0xADB2	0x9769	# <CJK>
+0xADB3	0x97CB	# <CJK>
+0xADB4	0x97ED	# <CJK>
+0xADB5	0x97F3	# <CJK>
+0xADB6	0x9801	# <CJK>
+0xADB7	0x98A8	# <CJK>
+0xADB8	0x98DB	# <CJK>
+0xADB9	0x98DF	# <CJK>
+0xADBA	0x9996	# <CJK>
+0xADBB	0x9999	# <CJK>
+0xADBC	0x4E58	# <CJK>
+0xADBD	0x4EB3	# <CJK>
+0xADBE	0x500C	# <CJK>
+0xADBF	0x500D	# <CJK>
+0xADC0	0x5023	# <CJK>
+0xADC1	0x4FEF	# <CJK>
+0xADC2	0x5026	# <CJK>
+0xADC3	0x5025	# <CJK>
+0xADC4	0x4FF8	# <CJK>
+0xADC5	0x5029	# <CJK>
+0xADC6	0x5016	# <CJK>
+0xADC7	0x5006	# <CJK>
+0xADC8	0x503C	# <CJK>
+0xADC9	0x501F	# <CJK>
+0xADCA	0x501A	# <CJK>
+0xADCB	0x5012	# <CJK>
+0xADCC	0x5011	# <CJK>
+0xADCD	0x4FFA	# <CJK>
+0xADCE	0x5000	# <CJK>
+0xADCF	0x5014	# <CJK>
+0xADD0	0x5028	# <CJK>
+0xADD1	0x4FF1	# <CJK>
+0xADD2	0x5021	# <CJK>
+0xADD3	0x500B	# <CJK>
+0xADD4	0x5019	# <CJK>
+0xADD5	0x5018	# <CJK>
+0xADD6	0x4FF3	# <CJK>
+0xADD7	0x4FEE	# <CJK>
+0xADD8	0x502D	# <CJK>
+0xADD9	0x502A	# <CJK>
+0xADDA	0x4FFE	# <CJK>
+0xADDB	0x502B	# <CJK>
+0xADDC	0x5009	# <CJK>
+0xADDD	0x517C	# <CJK>
+0xADDE	0x51A4	# <CJK>
+0xADDF	0x51A5	# <CJK>
+0xADE0	0x51A2	# <CJK>
+0xADE1	0x51CD	# <CJK>
+0xADE2	0x51CC	# <CJK>
+0xADE3	0x51C6	# <CJK>
+0xADE4	0x51CB	# <CJK>
+0xADE5	0x5256	# <CJK>
+0xADE6	0x525C	# <CJK>
+0xADE7	0x5254	# <CJK>
+0xADE8	0x525B	# <CJK>
+0xADE9	0x525D	# <CJK>
+0xADEA	0x532A	# <CJK>
+0xADEB	0x537F	# <CJK>
+0xADEC	0x539F	# <CJK>
+0xADED	0x539D	# <CJK>
+0xADEE	0x53DF	# <CJK>
+0xADEF	0x54E8	# <CJK>
+0xADF0	0x5510	# <CJK>
+0xADF1	0x5501	# <CJK>
+0xADF2	0x5537	# <CJK>
+0xADF3	0x54FC	# <CJK>
+0xADF4	0x54E5	# <CJK>
+0xADF5	0x54F2	# <CJK>
+0xADF6	0x5506	# <CJK>
+0xADF7	0x54FA	# <CJK>
+0xADF8	0x5514	# <CJK>
+0xADF9	0x54E9	# <CJK>
+0xADFA	0x54ED	# <CJK>
+0xADFB	0x54E1	# <CJK>
+0xADFC	0x5509	# <CJK>
+0xADFD	0x54EE	# <CJK>
+0xADFE	0x54EA	# <CJK>
+0xAE40	0x54E6	# <CJK>
+0xAE41	0x5527	# <CJK>
+0xAE42	0x5507	# <CJK>
+0xAE43	0x54FD	# <CJK>
+0xAE44	0x550F	# <CJK>
+0xAE45	0x5703	# <CJK>
+0xAE46	0x5704	# <CJK>
+0xAE47	0x57C2	# <CJK>
+0xAE48	0x57D4	# <CJK>
+0xAE49	0x57CB	# <CJK>
+0xAE4A	0x57C3	# <CJK>
+0xAE4B	0x5809	# <CJK>
+0xAE4C	0x590F	# <CJK>
+0xAE4D	0x5957	# <CJK>
+0xAE4E	0x5958	# <CJK>
+0xAE4F	0x595A	# <CJK>
+0xAE50	0x5A11	# <CJK>
+0xAE51	0x5A18	# <CJK>
+0xAE52	0x5A1C	# <CJK>
+0xAE53	0x5A1F	# <CJK>
+0xAE54	0x5A1B	# <CJK>
+0xAE55	0x5A13	# <CJK>
+0xAE56	0x59EC	# <CJK>
+0xAE57	0x5A20	# <CJK>
+0xAE58	0x5A23	# <CJK>
+0xAE59	0x5A29	# <CJK>
+0xAE5A	0x5A25	# <CJK>
+0xAE5B	0x5A0C	# <CJK>
+0xAE5C	0x5A09	# <CJK>
+0xAE5D	0x5B6B	# <CJK>
+0xAE5E	0x5C58	# <CJK>
+0xAE5F	0x5BB0	# <CJK>
+0xAE60	0x5BB3	# <CJK>
+0xAE61	0x5BB6	# <CJK>
+0xAE62	0x5BB4	# <CJK>
+0xAE63	0x5BAE	# <CJK>
+0xAE64	0x5BB5	# <CJK>
+0xAE65	0x5BB9	# <CJK>
+0xAE66	0x5BB8	# <CJK>
+0xAE67	0x5C04	# <CJK>
+0xAE68	0x5C51	# <CJK>
+0xAE69	0x5C55	# <CJK>
+0xAE6A	0x5C50	# <CJK>
+0xAE6B	0x5CED	# <CJK>
+0xAE6C	0x5CFD	# <CJK>
+0xAE6D	0x5CFB	# <CJK>
+0xAE6E	0x5CEA	# <CJK>
+0xAE6F	0x5CE8	# <CJK>
+0xAE70	0x5CF0	# <CJK>
+0xAE71	0x5CF6	# <CJK>
+0xAE72	0x5D01	# <CJK>
+0xAE73	0x5CF4	# <CJK>
+0xAE74	0x5DEE	# <CJK>
+0xAE75	0x5E2D	# <CJK>
+0xAE76	0x5E2B	# <CJK>
+0xAE77	0x5EAB	# <CJK>
+0xAE78	0x5EAD	# <CJK>
+0xAE79	0x5EA7	# <CJK>
+0xAE7A	0x5F31	# <CJK>
+0xAE7B	0x5F92	# <CJK>
+0xAE7C	0x5F91	# <CJK>
+0xAE7D	0x5F90	# <CJK>
+0xAE7E	0x6059	# <CJK>
+0xAEA1	0x6063	# <CJK>
+0xAEA2	0x6065	# <CJK>
+0xAEA3	0x6050	# <CJK>
+0xAEA4	0x6055	# <CJK>
+0xAEA5	0x606D	# <CJK>
+0xAEA6	0x6069	# <CJK>
+0xAEA7	0x606F	# <CJK>
+0xAEA8	0x6084	# <CJK>
+0xAEA9	0x609F	# <CJK>
+0xAEAA	0x609A	# <CJK>
+0xAEAB	0x608D	# <CJK>
+0xAEAC	0x6094	# <CJK>
+0xAEAD	0x608C	# <CJK>
+0xAEAE	0x6085	# <CJK>
+0xAEAF	0x6096	# <CJK>
+0xAEB0	0x6247	# <CJK>
+0xAEB1	0x62F3	# <CJK>
+0xAEB2	0x6308	# <CJK>
+0xAEB3	0x62FF	# <CJK>
+0xAEB4	0x634E	# <CJK>
+0xAEB5	0x633E	# <CJK>
+0xAEB6	0x632F	# <CJK>
+0xAEB7	0x6355	# <CJK>
+0xAEB8	0x6342	# <CJK>
+0xAEB9	0x6346	# <CJK>
+0xAEBA	0x634F	# <CJK>
+0xAEBB	0x6349	# <CJK>
+0xAEBC	0x633A	# <CJK>
+0xAEBD	0x6350	# <CJK>
+0xAEBE	0x633D	# <CJK>
+0xAEBF	0x632A	# <CJK>
+0xAEC0	0x632B	# <CJK>
+0xAEC1	0x6328	# <CJK>
+0xAEC2	0x634D	# <CJK>
+0xAEC3	0x634C	# <CJK>
+0xAEC4	0x6548	# <CJK>
+0xAEC5	0x6549	# <CJK>
+0xAEC6	0x6599	# <CJK>
+0xAEC7	0x65C1	# <CJK>
+0xAEC8	0x65C5	# <CJK>
+0xAEC9	0x6642	# <CJK>
+0xAECA	0x6649	# <CJK>
+0xAECB	0x664F	# <CJK>
+0xAECC	0x6643	# <CJK>
+0xAECD	0x6652	# <CJK>
+0xAECE	0x664C	# <CJK>
+0xAECF	0x6645	# <CJK>
+0xAED0	0x6641	# <CJK>
+0xAED1	0x66F8	# <CJK>
+0xAED2	0x6714	# <CJK>
+0xAED3	0x6715	# <CJK>
+0xAED4	0x6717	# <CJK>
+0xAED5	0x6821	# <CJK>
+0xAED6	0x6838	# <CJK>
+0xAED7	0x6848	# <CJK>
+0xAED8	0x6846	# <CJK>
+0xAED9	0x6853	# <CJK>
+0xAEDA	0x6839	# <CJK>
+0xAEDB	0x6842	# <CJK>
+0xAEDC	0x6854	# <CJK>
+0xAEDD	0x6829	# <CJK>
+0xAEDE	0x68B3	# <CJK>
+0xAEDF	0x6817	# <CJK>
+0xAEE0	0x684C	# <CJK>
+0xAEE1	0x6851	# <CJK>
+0xAEE2	0x683D	# <CJK>
+0xAEE3	0x67F4	# <CJK>
+0xAEE4	0x6850	# <CJK>
+0xAEE5	0x6840	# <CJK>
+0xAEE6	0x683C	# <CJK>
+0xAEE7	0x6843	# <CJK>
+0xAEE8	0x682A	# <CJK>
+0xAEE9	0x6845	# <CJK>
+0xAEEA	0x6813	# <CJK>
+0xAEEB	0x6818	# <CJK>
+0xAEEC	0x6841	# <CJK>
+0xAEED	0x6B8A	# <CJK>
+0xAEEE	0x6B89	# <CJK>
+0xAEEF	0x6BB7	# <CJK>
+0xAEF0	0x6C23	# <CJK>
+0xAEF1	0x6C27	# <CJK>
+0xAEF2	0x6C28	# <CJK>
+0xAEF3	0x6C26	# <CJK>
+0xAEF4	0x6C24	# <CJK>
+0xAEF5	0x6CF0	# <CJK>
+0xAEF6	0x6D6A	# <CJK>
+0xAEF7	0x6D95	# <CJK>
+0xAEF8	0x6D88	# <CJK>
+0xAEF9	0x6D87	# <CJK>
+0xAEFA	0x6D66	# <CJK>
+0xAEFB	0x6D78	# <CJK>
+0xAEFC	0x6D77	# <CJK>
+0xAEFD	0x6D59	# <CJK>
+0xAEFE	0x6D93	# <CJK>
+0xAF40	0x6D6C	# <CJK>
+0xAF41	0x6D89	# <CJK>
+0xAF42	0x6D6E	# <CJK>
+0xAF43	0x6D5A	# <CJK>
+0xAF44	0x6D74	# <CJK>
+0xAF45	0x6D69	# <CJK>
+0xAF46	0x6D8C	# <CJK>
+0xAF47	0x6D8A	# <CJK>
+0xAF48	0x6D79	# <CJK>
+0xAF49	0x6D85	# <CJK>
+0xAF4A	0x6D65	# <CJK>
+0xAF4B	0x6D94	# <CJK>
+0xAF4C	0x70CA	# <CJK>
+0xAF4D	0x70D8	# <CJK>
+0xAF4E	0x70E4	# <CJK>
+0xAF4F	0x70D9	# <CJK>
+0xAF50	0x70C8	# <CJK>
+0xAF51	0x70CF	# <CJK>
+0xAF52	0x7239	# <CJK>
+0xAF53	0x7279	# <CJK>
+0xAF54	0x72FC	# <CJK>
+0xAF55	0x72F9	# <CJK>
+0xAF56	0x72FD	# <CJK>
+0xAF57	0x72F8	# <CJK>
+0xAF58	0x72F7	# <CJK>
+0xAF59	0x7386	# <CJK>
+0xAF5A	0x73ED	# <CJK>
+0xAF5B	0x7409	# <CJK>
+0xAF5C	0x73EE	# <CJK>
+0xAF5D	0x73E0	# <CJK>
+0xAF5E	0x73EA	# <CJK>
+0xAF5F	0x73DE	# <CJK>
+0xAF60	0x7554	# <CJK>
+0xAF61	0x755D	# <CJK>
+0xAF62	0x755C	# <CJK>
+0xAF63	0x755A	# <CJK>
+0xAF64	0x7559	# <CJK>
+0xAF65	0x75BE	# <CJK>
+0xAF66	0x75C5	# <CJK>
+0xAF67	0x75C7	# <CJK>
+0xAF68	0x75B2	# <CJK>
+0xAF69	0x75B3	# <CJK>
+0xAF6A	0x75BD	# <CJK>
+0xAF6B	0x75BC	# <CJK>
+0xAF6C	0x75B9	# <CJK>
+0xAF6D	0x75C2	# <CJK>
+0xAF6E	0x75B8	# <CJK>
+0xAF6F	0x768B	# <CJK>
+0xAF70	0x76B0	# <CJK>
+0xAF71	0x76CA	# <CJK>
+0xAF72	0x76CD	# <CJK>
+0xAF73	0x76CE	# <CJK>
+0xAF74	0x7729	# <CJK>
+0xAF75	0x771F	# <CJK>
+0xAF76	0x7720	# <CJK>
+0xAF77	0x7728	# <CJK>
+0xAF78	0x77E9	# <CJK>
+0xAF79	0x7830	# <CJK>
+0xAF7A	0x7827	# <CJK>
+0xAF7B	0x7838	# <CJK>
+0xAF7C	0x781D	# <CJK>
+0xAF7D	0x7834	# <CJK>
+0xAF7E	0x7837	# <CJK>
+0xAFA1	0x7825	# <CJK>
+0xAFA2	0x782D	# <CJK>
+0xAFA3	0x7820	# <CJK>
+0xAFA4	0x781F	# <CJK>
+0xAFA5	0x7832	# <CJK>
+0xAFA6	0x7955	# <CJK>
+0xAFA7	0x7950	# <CJK>
+0xAFA8	0x7960	# <CJK>
+0xAFA9	0x795F	# <CJK>
+0xAFAA	0x7956	# <CJK>
+0xAFAB	0x795E	# <CJK>
+0xAFAC	0x795D	# <CJK>
+0xAFAD	0x7957	# <CJK>
+0xAFAE	0x795A	# <CJK>
+0xAFAF	0x79E4	# <CJK>
+0xAFB0	0x79E3	# <CJK>
+0xAFB1	0x79E7	# <CJK>
+0xAFB2	0x79DF	# <CJK>
+0xAFB3	0x79E6	# <CJK>
+0xAFB4	0x79E9	# <CJK>
+0xAFB5	0x79D8	# <CJK>
+0xAFB6	0x7A84	# <CJK>
+0xAFB7	0x7A88	# <CJK>
+0xAFB8	0x7AD9	# <CJK>
+0xAFB9	0x7B06	# <CJK>
+0xAFBA	0x7B11	# <CJK>
+0xAFBB	0x7C89	# <CJK>
+0xAFBC	0x7D21	# <CJK>
+0xAFBD	0x7D17	# <CJK>
+0xAFBE	0x7D0B	# <CJK>
+0xAFBF	0x7D0A	# <CJK>
+0xAFC0	0x7D20	# <CJK>
+0xAFC1	0x7D22	# <CJK>
+0xAFC2	0x7D14	# <CJK>
+0xAFC3	0x7D10	# <CJK>
+0xAFC4	0x7D15	# <CJK>
+0xAFC5	0x7D1A	# <CJK>
+0xAFC6	0x7D1C	# <CJK>
+0xAFC7	0x7D0D	# <CJK>
+0xAFC8	0x7D19	# <CJK>
+0xAFC9	0x7D1B	# <CJK>
+0xAFCA	0x7F3A	# <CJK>
+0xAFCB	0x7F5F	# <CJK>
+0xAFCC	0x7F94	# <CJK>
+0xAFCD	0x7FC5	# <CJK>
+0xAFCE	0x7FC1	# <CJK>
+0xAFCF	0x8006	# <CJK>
+0xAFD0	0x8018	# <CJK>
+0xAFD1	0x8015	# <CJK>
+0xAFD2	0x8019	# <CJK>
+0xAFD3	0x8017	# <CJK>
+0xAFD4	0x803D	# <CJK>
+0xAFD5	0x803F	# <CJK>
+0xAFD6	0x80F1	# <CJK>
+0xAFD7	0x8102	# <CJK>
+0xAFD8	0x80F0	# <CJK>
+0xAFD9	0x8105	# <CJK>
+0xAFDA	0x80ED	# <CJK>
+0xAFDB	0x80F4	# <CJK>
+0xAFDC	0x8106	# <CJK>
+0xAFDD	0x80F8	# <CJK>
+0xAFDE	0x80F3	# <CJK>
+0xAFDF	0x8108	# <CJK>
+0xAFE0	0x80FD	# <CJK>
+0xAFE1	0x810A	# <CJK>
+0xAFE2	0x80FC	# <CJK>
+0xAFE3	0x80EF	# <CJK>
+0xAFE4	0x81ED	# <CJK>
+0xAFE5	0x81EC	# <CJK>
+0xAFE6	0x8200	# <CJK>
+0xAFE7	0x8210	# <CJK>
+0xAFE8	0x822A	# <CJK>
+0xAFE9	0x822B	# <CJK>
+0xAFEA	0x8228	# <CJK>
+0xAFEB	0x822C	# <CJK>
+0xAFEC	0x82BB	# <CJK>
+0xAFED	0x832B	# <CJK>
+0xAFEE	0x8352	# <CJK>
+0xAFEF	0x8354	# <CJK>
+0xAFF0	0x834A	# <CJK>
+0xAFF1	0x8338	# <CJK>
+0xAFF2	0x8350	# <CJK>
+0xAFF3	0x8349	# <CJK>
+0xAFF4	0x8335	# <CJK>
+0xAFF5	0x8334	# <CJK>
+0xAFF6	0x834F	# <CJK>
+0xAFF7	0x8332	# <CJK>
+0xAFF8	0x8339	# <CJK>
+0xAFF9	0x8336	# <CJK>
+0xAFFA	0x8317	# <CJK>
+0xAFFB	0x8340	# <CJK>
+0xAFFC	0x8331	# <CJK>
+0xAFFD	0x8328	# <CJK>
+0xAFFE	0x8343	# <CJK>
+0xB040	0x8654	# <CJK>
+0xB041	0x868A	# <CJK>
+0xB042	0x86AA	# <CJK>
+0xB043	0x8693	# <CJK>
+0xB044	0x86A4	# <CJK>
+0xB045	0x86A9	# <CJK>
+0xB046	0x868C	# <CJK>
+0xB047	0x86A3	# <CJK>
+0xB048	0x869C	# <CJK>
+0xB049	0x8870	# <CJK>
+0xB04A	0x8877	# <CJK>
+0xB04B	0x8881	# <CJK>
+0xB04C	0x8882	# <CJK>
+0xB04D	0x887D	# <CJK>
+0xB04E	0x8879	# <CJK>
+0xB04F	0x8A18	# <CJK>
+0xB050	0x8A10	# <CJK>
+0xB051	0x8A0E	# <CJK>
+0xB052	0x8A0C	# <CJK>
+0xB053	0x8A15	# <CJK>
+0xB054	0x8A0A	# <CJK>
+0xB055	0x8A17	# <CJK>
+0xB056	0x8A13	# <CJK>
+0xB057	0x8A16	# <CJK>
+0xB058	0x8A0F	# <CJK>
+0xB059	0x8A11	# <CJK>
+0xB05A	0x8C48	# <CJK>
+0xB05B	0x8C7A	# <CJK>
+0xB05C	0x8C79	# <CJK>
+0xB05D	0x8CA1	# <CJK>
+0xB05E	0x8CA2	# <CJK>
+0xB05F	0x8D77	# <CJK>
+0xB060	0x8EAC	# <CJK>
+0xB061	0x8ED2	# <CJK>
+0xB062	0x8ED4	# <CJK>
+0xB063	0x8ECF	# <CJK>
+0xB064	0x8FB1	# <CJK>
+0xB065	0x9001	# <CJK>
+0xB066	0x9006	# <CJK>
+0xB067	0x8FF7	# <CJK>
+0xB068	0x9000	# <CJK>
+0xB069	0x8FFA	# <CJK>
+0xB06A	0x8FF4	# <CJK>
+0xB06B	0x9003	# <CJK>
+0xB06C	0x8FFD	# <CJK>
+0xB06D	0x9005	# <CJK>
+0xB06E	0x8FF8	# <CJK>
+0xB06F	0x9095	# <CJK>
+0xB070	0x90E1	# <CJK>
+0xB071	0x90DD	# <CJK>
+0xB072	0x90E2	# <CJK>
+0xB073	0x9152	# <CJK>
+0xB074	0x914D	# <CJK>
+0xB075	0x914C	# <CJK>
+0xB076	0x91D8	# <CJK>
+0xB077	0x91DD	# <CJK>
+0xB078	0x91D7	# <CJK>
+0xB079	0x91DC	# <CJK>
+0xB07A	0x91D9	# <CJK>
+0xB07B	0x9583	# <CJK>
+0xB07C	0x9662	# <CJK>
+0xB07D	0x9663	# <CJK>
+0xB07E	0x9661	# <CJK>
+0xB0A1	0x965B	# <CJK>
+0xB0A2	0x965D	# <CJK>
+0xB0A3	0x9664	# <CJK>
+0xB0A4	0x9658	# <CJK>
+0xB0A5	0x965E	# <CJK>
+0xB0A6	0x96BB	# <CJK>
+0xB0A7	0x98E2	# <CJK>
+0xB0A8	0x99AC	# <CJK>
+0xB0A9	0x9AA8	# <CJK>
+0xB0AA	0x9AD8	# <CJK>
+0xB0AB	0x9B25	# <CJK>
+0xB0AC	0x9B32	# <CJK>
+0xB0AD	0x9B3C	# <CJK>
+0xB0AE	0x4E7E	# <CJK>
+0xB0AF	0x507A	# <CJK>
+0xB0B0	0x507D	# <CJK>
+0xB0B1	0x505C	# <CJK>
+0xB0B2	0x5047	# <CJK>
+0xB0B3	0x5043	# <CJK>
+0xB0B4	0x504C	# <CJK>
+0xB0B5	0x505A	# <CJK>
+0xB0B6	0x5049	# <CJK>
+0xB0B7	0x5065	# <CJK>
+0xB0B8	0x5076	# <CJK>
+0xB0B9	0x504E	# <CJK>
+0xB0BA	0x5055	# <CJK>
+0xB0BB	0x5075	# <CJK>
+0xB0BC	0x5074	# <CJK>
+0xB0BD	0x5077	# <CJK>
+0xB0BE	0x504F	# <CJK>
+0xB0BF	0x500F	# <CJK>
+0xB0C0	0x506F	# <CJK>
+0xB0C1	0x506D	# <CJK>
+0xB0C2	0x515C	# <CJK>
+0xB0C3	0x5195	# <CJK>
+0xB0C4	0x51F0	# <CJK>
+0xB0C5	0x526A	# <CJK>
+0xB0C6	0x526F	# <CJK>
+0xB0C7	0x52D2	# <CJK>
+0xB0C8	0x52D9	# <CJK>
+0xB0C9	0x52D8	# <CJK>
+0xB0CA	0x52D5	# <CJK>
+0xB0CB	0x5310	# <CJK>
+0xB0CC	0x530F	# <CJK>
+0xB0CD	0x5319	# <CJK>
+0xB0CE	0x533F	# <CJK>
+0xB0CF	0x5340	# <CJK>
+0xB0D0	0x533E	# <CJK>
+0xB0D1	0x53C3	# <CJK>
+0xB0D2	0x66FC	# <CJK>
+0xB0D3	0x5546	# <CJK>
+0xB0D4	0x556A	# <CJK>
+0xB0D5	0x5566	# <CJK>
+0xB0D6	0x5544	# <CJK>
+0xB0D7	0x555E	# <CJK>
+0xB0D8	0x5561	# <CJK>
+0xB0D9	0x5543	# <CJK>
+0xB0DA	0x554A	# <CJK>
+0xB0DB	0x5531	# <CJK>
+0xB0DC	0x5556	# <CJK>
+0xB0DD	0x554F	# <CJK>
+0xB0DE	0x5555	# <CJK>
+0xB0DF	0x552F	# <CJK>
+0xB0E0	0x5564	# <CJK>
+0xB0E1	0x5538	# <CJK>
+0xB0E2	0x552E	# <CJK>
+0xB0E3	0x555C	# <CJK>
+0xB0E4	0x552C	# <CJK>
+0xB0E5	0x5563	# <CJK>
+0xB0E6	0x5533	# <CJK>
+0xB0E7	0x5541	# <CJK>
+0xB0E8	0x5557	# <CJK>
+0xB0E9	0x5708	# <CJK>
+0xB0EA	0x570B	# <CJK>
+0xB0EB	0x5709	# <CJK>
+0xB0EC	0x57DF	# <CJK>
+0xB0ED	0x5805	# <CJK>
+0xB0EE	0x580A	# <CJK>
+0xB0EF	0x5806	# <CJK>
+0xB0F0	0x57E0	# <CJK>
+0xB0F1	0x57E4	# <CJK>
+0xB0F2	0x57FA	# <CJK>
+0xB0F3	0x5802	# <CJK>
+0xB0F4	0x5835	# <CJK>
+0xB0F5	0x57F7	# <CJK>
+0xB0F6	0x57F9	# <CJK>
+0xB0F7	0x5920	# <CJK>
+0xB0F8	0x5962	# <CJK>
+0xB0F9	0x5A36	# <CJK>
+0xB0FA	0x5A41	# <CJK>
+0xB0FB	0x5A49	# <CJK>
+0xB0FC	0x5A66	# <CJK>
+0xB0FD	0x5A6A	# <CJK>
+0xB0FE	0x5A40	# <CJK>
+0xB140	0x5A3C	# <CJK>
+0xB141	0x5A62	# <CJK>
+0xB142	0x5A5A	# <CJK>
+0xB143	0x5A46	# <CJK>
+0xB144	0x5A4A	# <CJK>
+0xB145	0x5B70	# <CJK>
+0xB146	0x5BC7	# <CJK>
+0xB147	0x5BC5	# <CJK>
+0xB148	0x5BC4	# <CJK>
+0xB149	0x5BC2	# <CJK>
+0xB14A	0x5BBF	# <CJK>
+0xB14B	0x5BC6	# <CJK>
+0xB14C	0x5C09	# <CJK>
+0xB14D	0x5C08	# <CJK>
+0xB14E	0x5C07	# <CJK>
+0xB14F	0x5C60	# <CJK>
+0xB150	0x5C5C	# <CJK>
+0xB151	0x5C5D	# <CJK>
+0xB152	0x5D07	# <CJK>
+0xB153	0x5D06	# <CJK>
+0xB154	0x5D0E	# <CJK>
+0xB155	0x5D1B	# <CJK>
+0xB156	0x5D16	# <CJK>
+0xB157	0x5D22	# <CJK>
+0xB158	0x5D11	# <CJK>
+0xB159	0x5D29	# <CJK>
+0xB15A	0x5D14	# <CJK>
+0xB15B	0x5D19	# <CJK>
+0xB15C	0x5D24	# <CJK>
+0xB15D	0x5D27	# <CJK>
+0xB15E	0x5D17	# <CJK>
+0xB15F	0x5DE2	# <CJK>
+0xB160	0x5E38	# <CJK>
+0xB161	0x5E36	# <CJK>
+0xB162	0x5E33	# <CJK>
+0xB163	0x5E37	# <CJK>
+0xB164	0x5EB7	# <CJK>
+0xB165	0x5EB8	# <CJK>
+0xB166	0x5EB6	# <CJK>
+0xB167	0x5EB5	# <CJK>
+0xB168	0x5EBE	# <CJK>
+0xB169	0x5F35	# <CJK>
+0xB16A	0x5F37	# <CJK>
+0xB16B	0x5F57	# <CJK>
+0xB16C	0x5F6C	# <CJK>
+0xB16D	0x5F69	# <CJK>
+0xB16E	0x5F6B	# <CJK>
+0xB16F	0x5F97	# <CJK>
+0xB170	0x5F99	# <CJK>
+0xB171	0x5F9E	# <CJK>
+0xB172	0x5F98	# <CJK>
+0xB173	0x5FA1	# <CJK>
+0xB174	0x5FA0	# <CJK>
+0xB175	0x5F9C	# <CJK>
+0xB176	0x607F	# <CJK>
+0xB177	0x60A3	# <CJK>
+0xB178	0x6089	# <CJK>
+0xB179	0x60A0	# <CJK>
+0xB17A	0x60A8	# <CJK>
+0xB17B	0x60CB	# <CJK>
+0xB17C	0x60B4	# <CJK>
+0xB17D	0x60E6	# <CJK>
+0xB17E	0x60BD	# <CJK>
+0xB1A1	0x60C5	# <CJK>
+0xB1A2	0x60BB	# <CJK>
+0xB1A3	0x60B5	# <CJK>
+0xB1A4	0x60DC	# <CJK>
+0xB1A5	0x60BC	# <CJK>
+0xB1A6	0x60D8	# <CJK>
+0xB1A7	0x60D5	# <CJK>
+0xB1A8	0x60C6	# <CJK>
+0xB1A9	0x60DF	# <CJK>
+0xB1AA	0x60B8	# <CJK>
+0xB1AB	0x60DA	# <CJK>
+0xB1AC	0x60C7	# <CJK>
+0xB1AD	0x621A	# <CJK>
+0xB1AE	0x621B	# <CJK>
+0xB1AF	0x6248	# <CJK>
+0xB1B0	0x63A0	# <CJK>
+0xB1B1	0x63A7	# <CJK>
+0xB1B2	0x6372	# <CJK>
+0xB1B3	0x6396	# <CJK>
+0xB1B4	0x63A2	# <CJK>
+0xB1B5	0x63A5	# <CJK>
+0xB1B6	0x6377	# <CJK>
+0xB1B7	0x6367	# <CJK>
+0xB1B8	0x6398	# <CJK>
+0xB1B9	0x63AA	# <CJK>
+0xB1BA	0x6371	# <CJK>
+0xB1BB	0x63A9	# <CJK>
+0xB1BC	0x6389	# <CJK>
+0xB1BD	0x6383	# <CJK>
+0xB1BE	0x639B	# <CJK>
+0xB1BF	0x636B	# <CJK>
+0xB1C0	0x63A8	# <CJK>
+0xB1C1	0x6384	# <CJK>
+0xB1C2	0x6388	# <CJK>
+0xB1C3	0x6399	# <CJK>
+0xB1C4	0x63A1	# <CJK>
+0xB1C5	0x63AC	# <CJK>
+0xB1C6	0x6392	# <CJK>
+0xB1C7	0x638F	# <CJK>
+0xB1C8	0x6380	# <CJK>
+0xB1C9	0x637B	# <CJK>
+0xB1CA	0x6369	# <CJK>
+0xB1CB	0x6368	# <CJK>
+0xB1CC	0x637A	# <CJK>
+0xB1CD	0x655D	# <CJK>
+0xB1CE	0x6556	# <CJK>
+0xB1CF	0x6551	# <CJK>
+0xB1D0	0x6559	# <CJK>
+0xB1D1	0x6557	# <CJK>
+0xB1D2	0x555F	# <CJK>
+0xB1D3	0x654F	# <CJK>
+0xB1D4	0x6558	# <CJK>
+0xB1D5	0x6555	# <CJK>
+0xB1D6	0x6554	# <CJK>
+0xB1D7	0x659C	# <CJK>
+0xB1D8	0x659B	# <CJK>
+0xB1D9	0x65AC	# <CJK>
+0xB1DA	0x65CF	# <CJK>
+0xB1DB	0x65CB	# <CJK>
+0xB1DC	0x65CC	# <CJK>
+0xB1DD	0x65CE	# <CJK>
+0xB1DE	0x665D	# <CJK>
+0xB1DF	0x665A	# <CJK>
+0xB1E0	0x6664	# <CJK>
+0xB1E1	0x6668	# <CJK>
+0xB1E2	0x6666	# <CJK>
+0xB1E3	0x665E	# <CJK>
+0xB1E4	0x66F9	# <CJK>
+0xB1E5	0x52D7	# <CJK>
+0xB1E6	0x671B	# <CJK>
+0xB1E7	0x6881	# <CJK>
+0xB1E8	0x68AF	# <CJK>
+0xB1E9	0x68A2	# <CJK>
+0xB1EA	0x6893	# <CJK>
+0xB1EB	0x68B5	# <CJK>
+0xB1EC	0x687F	# <CJK>
+0xB1ED	0x6876	# <CJK>
+0xB1EE	0x68B1	# <CJK>
+0xB1EF	0x68A7	# <CJK>
+0xB1F0	0x6897	# <CJK>
+0xB1F1	0x68B0	# <CJK>
+0xB1F2	0x6883	# <CJK>
+0xB1F3	0x68C4	# <CJK>
+0xB1F4	0x68AD	# <CJK>
+0xB1F5	0x6886	# <CJK>
+0xB1F6	0x6885	# <CJK>
+0xB1F7	0x6894	# <CJK>
+0xB1F8	0x689D	# <CJK>
+0xB1F9	0x68A8	# <CJK>
+0xB1FA	0x689F	# <CJK>
+0xB1FB	0x68A1	# <CJK>
+0xB1FC	0x6882	# <CJK>
+0xB1FD	0x6B32	# <CJK>
+0xB1FE	0x6BBA	# <CJK>
+0xB240	0x6BEB	# <CJK>
+0xB241	0x6BEC	# <CJK>
+0xB242	0x6C2B	# <CJK>
+0xB243	0x6D8E	# <CJK>
+0xB244	0x6DBC	# <CJK>
+0xB245	0x6DF3	# <CJK>
+0xB246	0x6DD9	# <CJK>
+0xB247	0x6DB2	# <CJK>
+0xB248	0x6DE1	# <CJK>
+0xB249	0x6DCC	# <CJK>
+0xB24A	0x6DE4	# <CJK>
+0xB24B	0x6DFB	# <CJK>
+0xB24C	0x6DFA	# <CJK>
+0xB24D	0x6E05	# <CJK>
+0xB24E	0x6DC7	# <CJK>
+0xB24F	0x6DCB	# <CJK>
+0xB250	0x6DAF	# <CJK>
+0xB251	0x6DD1	# <CJK>
+0xB252	0x6DAE	# <CJK>
+0xB253	0x6DDE	# <CJK>
+0xB254	0x6DF9	# <CJK>
+0xB255	0x6DB8	# <CJK>
+0xB256	0x6DF7	# <CJK>
+0xB257	0x6DF5	# <CJK>
+0xB258	0x6DC5	# <CJK>
+0xB259	0x6DD2	# <CJK>
+0xB25A	0x6E1A	# <CJK>
+0xB25B	0x6DB5	# <CJK>
+0xB25C	0x6DDA	# <CJK>
+0xB25D	0x6DEB	# <CJK>
+0xB25E	0x6DD8	# <CJK>
+0xB25F	0x6DEA	# <CJK>
+0xB260	0x6DF1	# <CJK>
+0xB261	0x6DEE	# <CJK>
+0xB262	0x6DE8	# <CJK>
+0xB263	0x6DC6	# <CJK>
+0xB264	0x6DC4	# <CJK>
+0xB265	0x6DAA	# <CJK>
+0xB266	0x6DEC	# <CJK>
+0xB267	0x6DBF	# <CJK>
+0xB268	0x6DE6	# <CJK>
+0xB269	0x70F9	# <CJK>
+0xB26A	0x7109	# <CJK>
+0xB26B	0x710A	# <CJK>
+0xB26C	0x70FD	# <CJK>
+0xB26D	0x70EF	# <CJK>
+0xB26E	0x723D	# <CJK>
+0xB26F	0x727D	# <CJK>
+0xB270	0x7281	# <CJK>
+0xB271	0x731C	# <CJK>
+0xB272	0x731B	# <CJK>
+0xB273	0x7316	# <CJK>
+0xB274	0x7313	# <CJK>
+0xB275	0x7319	# <CJK>
+0xB276	0x7387	# <CJK>
+0xB277	0x7405	# <CJK>
+0xB278	0x740A	# <CJK>
+0xB279	0x7403	# <CJK>
+0xB27A	0x7406	# <CJK>
+0xB27B	0x73FE	# <CJK>
+0xB27C	0x740D	# <CJK>
+0xB27D	0x74E0	# <CJK>
+0xB27E	0x74F6	# <CJK>
+0xB2A1	0x74F7	# <CJK>
+0xB2A2	0x751C	# <CJK>
+0xB2A3	0x7522	# <CJK>
+0xB2A4	0x7565	# <CJK>
+0xB2A5	0x7566	# <CJK>
+0xB2A6	0x7562	# <CJK>
+0xB2A7	0x7570	# <CJK>
+0xB2A8	0x758F	# <CJK>
+0xB2A9	0x75D4	# <CJK>
+0xB2AA	0x75D5	# <CJK>
+0xB2AB	0x75B5	# <CJK>
+0xB2AC	0x75CA	# <CJK>
+0xB2AD	0x75CD	# <CJK>
+0xB2AE	0x768E	# <CJK>
+0xB2AF	0x76D4	# <CJK>
+0xB2B0	0x76D2	# <CJK>
+0xB2B1	0x76DB	# <CJK>
+0xB2B2	0x7737	# <CJK>
+0xB2B3	0x773E	# <CJK>
+0xB2B4	0x773C	# <CJK>
+0xB2B5	0x7736	# <CJK>
+0xB2B6	0x7738	# <CJK>
+0xB2B7	0x773A	# <CJK>
+0xB2B8	0x786B	# <CJK>
+0xB2B9	0x7843	# <CJK>
+0xB2BA	0x784E	# <CJK>
+0xB2BB	0x7965	# <CJK>
+0xB2BC	0x7968	# <CJK>
+0xB2BD	0x796D	# <CJK>
+0xB2BE	0x79FB	# <CJK>
+0xB2BF	0x7A92	# <CJK>
+0xB2C0	0x7A95	# <CJK>
+0xB2C1	0x7B20	# <CJK>
+0xB2C2	0x7B28	# <CJK>
+0xB2C3	0x7B1B	# <CJK>
+0xB2C4	0x7B2C	# <CJK>
+0xB2C5	0x7B26	# <CJK>
+0xB2C6	0x7B19	# <CJK>
+0xB2C7	0x7B1E	# <CJK>
+0xB2C8	0x7B2E	# <CJK>
+0xB2C9	0x7C92	# <CJK>
+0xB2CA	0x7C97	# <CJK>
+0xB2CB	0x7C95	# <CJK>
+0xB2CC	0x7D46	# <CJK>
+0xB2CD	0x7D43	# <CJK>
+0xB2CE	0x7D71	# <CJK>
+0xB2CF	0x7D2E	# <CJK>
+0xB2D0	0x7D39	# <CJK>
+0xB2D1	0x7D3C	# <CJK>
+0xB2D2	0x7D40	# <CJK>
+0xB2D3	0x7D30	# <CJK>
+0xB2D4	0x7D33	# <CJK>
+0xB2D5	0x7D44	# <CJK>
+0xB2D6	0x7D2F	# <CJK>
+0xB2D7	0x7D42	# <CJK>
+0xB2D8	0x7D32	# <CJK>
+0xB2D9	0x7D31	# <CJK>
+0xB2DA	0x7F3D	# <CJK>
+0xB2DB	0x7F9E	# <CJK>
+0xB2DC	0x7F9A	# <CJK>
+0xB2DD	0x7FCC	# <CJK>
+0xB2DE	0x7FCE	# <CJK>
+0xB2DF	0x7FD2	# <CJK>
+0xB2E0	0x801C	# <CJK>
+0xB2E1	0x804A	# <CJK>
+0xB2E2	0x8046	# <CJK>
+0xB2E3	0x812F	# <CJK>
+0xB2E4	0x8116	# <CJK>
+0xB2E5	0x8123	# <CJK>
+0xB2E6	0x812B	# <CJK>
+0xB2E7	0x8129	# <CJK>
+0xB2E8	0x8130	# <CJK>
+0xB2E9	0x8124	# <CJK>
+0xB2EA	0x8202	# <CJK>
+0xB2EB	0x8235	# <CJK>
+0xB2EC	0x8237	# <CJK>
+0xB2ED	0x8236	# <CJK>
+0xB2EE	0x8239	# <CJK>
+0xB2EF	0x838E	# <CJK>
+0xB2F0	0x839E	# <CJK>
+0xB2F1	0x8398	# <CJK>
+0xB2F2	0x8378	# <CJK>
+0xB2F3	0x83A2	# <CJK>
+0xB2F4	0x8396	# <CJK>
+0xB2F5	0x83BD	# <CJK>
+0xB2F6	0x83AB	# <CJK>
+0xB2F7	0x8392	# <CJK>
+0xB2F8	0x838A	# <CJK>
+0xB2F9	0x8393	# <CJK>
+0xB2FA	0x8389	# <CJK>
+0xB2FB	0x83A0	# <CJK>
+0xB2FC	0x8377	# <CJK>
+0xB2FD	0x837B	# <CJK>
+0xB2FE	0x837C	# <CJK>
+0xB340	0x8386	# <CJK>
+0xB341	0x83A7	# <CJK>
+0xB342	0x8655	# <CJK>
+0xB343	0x5F6A	# <CJK>
+0xB344	0x86C7	# <CJK>
+0xB345	0x86C0	# <CJK>
+0xB346	0x86B6	# <CJK>
+0xB347	0x86C4	# <CJK>
+0xB348	0x86B5	# <CJK>
+0xB349	0x86C6	# <CJK>
+0xB34A	0x86CB	# <CJK>
+0xB34B	0x86B1	# <CJK>
+0xB34C	0x86AF	# <CJK>
+0xB34D	0x86C9	# <CJK>
+0xB34E	0x8853	# <CJK>
+0xB34F	0x889E	# <CJK>
+0xB350	0x8888	# <CJK>
+0xB351	0x88AB	# <CJK>
+0xB352	0x8892	# <CJK>
+0xB353	0x8896	# <CJK>
+0xB354	0x888D	# <CJK>
+0xB355	0x888B	# <CJK>
+0xB356	0x8993	# <CJK>
+0xB357	0x898F	# <CJK>
+0xB358	0x8A2A	# <CJK>
+0xB359	0x8A1D	# <CJK>
+0xB35A	0x8A23	# <CJK>
+0xB35B	0x8A25	# <CJK>
+0xB35C	0x8A31	# <CJK>
+0xB35D	0x8A2D	# <CJK>
+0xB35E	0x8A1F	# <CJK>
+0xB35F	0x8A1B	# <CJK>
+0xB360	0x8A22	# <CJK>
+0xB361	0x8C49	# <CJK>
+0xB362	0x8C5A	# <CJK>
+0xB363	0x8CA9	# <CJK>
+0xB364	0x8CAC	# <CJK>
+0xB365	0x8CAB	# <CJK>
+0xB366	0x8CA8	# <CJK>
+0xB367	0x8CAA	# <CJK>
+0xB368	0x8CA7	# <CJK>
+0xB369	0x8D67	# <CJK>
+0xB36A	0x8D66	# <CJK>
+0xB36B	0x8DBE	# <CJK>
+0xB36C	0x8DBA	# <CJK>
+0xB36D	0x8EDB	# <CJK>
+0xB36E	0x8EDF	# <CJK>
+0xB36F	0x9019	# <CJK>
+0xB370	0x900D	# <CJK>
+0xB371	0x901A	# <CJK>
+0xB372	0x9017	# <CJK>
+0xB373	0x9023	# <CJK>
+0xB374	0x901F	# <CJK>
+0xB375	0x901D	# <CJK>
+0xB376	0x9010	# <CJK>
+0xB377	0x9015	# <CJK>
+0xB378	0x901E	# <CJK>
+0xB379	0x9020	# <CJK>
+0xB37A	0x900F	# <CJK>
+0xB37B	0x9022	# <CJK>
+0xB37C	0x9016	# <CJK>
+0xB37D	0x901B	# <CJK>
+0xB37E	0x9014	# <CJK>
+0xB3A1	0x90E8	# <CJK>
+0xB3A2	0x90ED	# <CJK>
+0xB3A3	0x90FD	# <CJK>
+0xB3A4	0x9157	# <CJK>
+0xB3A5	0x91CE	# <CJK>
+0xB3A6	0x91F5	# <CJK>
+0xB3A7	0x91E6	# <CJK>
+0xB3A8	0x91E3	# <CJK>
+0xB3A9	0x91E7	# <CJK>
+0xB3AA	0x91ED	# <CJK>
+0xB3AB	0x91E9	# <CJK>
+0xB3AC	0x9589	# <CJK>
+0xB3AD	0x966A	# <CJK>
+0xB3AE	0x9675	# <CJK>
+0xB3AF	0x9673	# <CJK>
+0xB3B0	0x9678	# <CJK>
+0xB3B1	0x9670	# <CJK>
+0xB3B2	0x9674	# <CJK>
+0xB3B3	0x9676	# <CJK>
+0xB3B4	0x9677	# <CJK>
+0xB3B5	0x966C	# <CJK>
+0xB3B6	0x96C0	# <CJK>
+0xB3B7	0x96EA	# <CJK>
+0xB3B8	0x96E9	# <CJK>
+0xB3B9	0x7AE0	# <CJK>
+0xB3BA	0x7ADF	# <CJK>
+0xB3BB	0x9802	# <CJK>
+0xB3BC	0x9803	# <CJK>
+0xB3BD	0x9B5A	# <CJK>
+0xB3BE	0x9CE5	# <CJK>
+0xB3BF	0x9E75	# <CJK>
+0xB3C0	0x9E7F	# <CJK>
+0xB3C1	0x9EA5	# <CJK>
+0xB3C2	0x9EBB	# <CJK>
+0xB3C3	0x50A2	# <CJK>
+0xB3C4	0x508D	# <CJK>
+0xB3C5	0x5085	# <CJK>
+0xB3C6	0x5099	# <CJK>
+0xB3C7	0x5091	# <CJK>
+0xB3C8	0x5080	# <CJK>
+0xB3C9	0x5096	# <CJK>
+0xB3CA	0x5098	# <CJK>
+0xB3CB	0x509A	# <CJK>
+0xB3CC	0x6700	# <CJK>
+0xB3CD	0x51F1	# <CJK>
+0xB3CE	0x5272	# <CJK>
+0xB3CF	0x5274	# <CJK>
+0xB3D0	0x5275	# <CJK>
+0xB3D1	0x5269	# <CJK>
+0xB3D2	0x52DE	# <CJK>
+0xB3D3	0x52DD	# <CJK>
+0xB3D4	0x52DB	# <CJK>
+0xB3D5	0x535A	# <CJK>
+0xB3D6	0x53A5	# <CJK>
+0xB3D7	0x557B	# <CJK>
+0xB3D8	0x5580	# <CJK>
+0xB3D9	0x55A7	# <CJK>
+0xB3DA	0x557C	# <CJK>
+0xB3DB	0x558A	# <CJK>
+0xB3DC	0x559D	# <CJK>
+0xB3DD	0x5598	# <CJK>
+0xB3DE	0x5582	# <CJK>
+0xB3DF	0x559C	# <CJK>
+0xB3E0	0x55AA	# <CJK>
+0xB3E1	0x5594	# <CJK>
+0xB3E2	0x5587	# <CJK>
+0xB3E3	0x558B	# <CJK>
+0xB3E4	0x5583	# <CJK>
+0xB3E5	0x55B3	# <CJK>
+0xB3E6	0x55AE	# <CJK>
+0xB3E7	0x559F	# <CJK>
+0xB3E8	0x553E	# <CJK>
+0xB3E9	0x55B2	# <CJK>
+0xB3EA	0x559A	# <CJK>
+0xB3EB	0x55BB	# <CJK>
+0xB3EC	0x55AC	# <CJK>
+0xB3ED	0x55B1	# <CJK>
+0xB3EE	0x557E	# <CJK>
+0xB3EF	0x5589	# <CJK>
+0xB3F0	0x55AB	# <CJK>
+0xB3F1	0x5599	# <CJK>
+0xB3F2	0x570D	# <CJK>
+0xB3F3	0x582F	# <CJK>
+0xB3F4	0x582A	# <CJK>
+0xB3F5	0x5834	# <CJK>
+0xB3F6	0x5824	# <CJK>
+0xB3F7	0x5830	# <CJK>
+0xB3F8	0x5831	# <CJK>
+0xB3F9	0x5821	# <CJK>
+0xB3FA	0x581D	# <CJK>
+0xB3FB	0x5820	# <CJK>
+0xB3FC	0x58F9	# <CJK>
+0xB3FD	0x58FA	# <CJK>
+0xB3FE	0x5960	# <CJK>
+0xB440	0x5A77	# <CJK>
+0xB441	0x5A9A	# <CJK>
+0xB442	0x5A7F	# <CJK>
+0xB443	0x5A92	# <CJK>
+0xB444	0x5A9B	# <CJK>
+0xB445	0x5AA7	# <CJK>
+0xB446	0x5B73	# <CJK>
+0xB447	0x5B71	# <CJK>
+0xB448	0x5BD2	# <CJK>
+0xB449	0x5BCC	# <CJK>
+0xB44A	0x5BD3	# <CJK>
+0xB44B	0x5BD0	# <CJK>
+0xB44C	0x5C0A	# <CJK>
+0xB44D	0x5C0B	# <CJK>
+0xB44E	0x5C31	# <CJK>
+0xB44F	0x5D4C	# <CJK>
+0xB450	0x5D50	# <CJK>
+0xB451	0x5D34	# <CJK>
+0xB452	0x5D47	# <CJK>
+0xB453	0x5DFD	# <CJK>
+0xB454	0x5E45	# <CJK>
+0xB455	0x5E3D	# <CJK>
+0xB456	0x5E40	# <CJK>
+0xB457	0x5E43	# <CJK>
+0xB458	0x5E7E	# <CJK>
+0xB459	0x5ECA	# <CJK>
+0xB45A	0x5EC1	# <CJK>
+0xB45B	0x5EC2	# <CJK>
+0xB45C	0x5EC4	# <CJK>
+0xB45D	0x5F3C	# <CJK>
+0xB45E	0x5F6D	# <CJK>
+0xB45F	0x5FA9	# <CJK>
+0xB460	0x5FAA	# <CJK>
+0xB461	0x5FA8	# <CJK>
+0xB462	0x60D1	# <CJK>
+0xB463	0x60E1	# <CJK>
+0xB464	0x60B2	# <CJK>
+0xB465	0x60B6	# <CJK>
+0xB466	0x60E0	# <CJK>
+0xB467	0x611C	# <CJK>
+0xB468	0x6123	# <CJK>
+0xB469	0x60FA	# <CJK>
+0xB46A	0x6115	# <CJK>
+0xB46B	0x60F0	# <CJK>
+0xB46C	0x60FB	# <CJK>
+0xB46D	0x60F4	# <CJK>
+0xB46E	0x6168	# <CJK>
+0xB46F	0x60F1	# <CJK>
+0xB470	0x610E	# <CJK>
+0xB471	0x60F6	# <CJK>
+0xB472	0x6109	# <CJK>
+0xB473	0x6100	# <CJK>
+0xB474	0x6112	# <CJK>
+0xB475	0x621F	# <CJK>
+0xB476	0x6249	# <CJK>
+0xB477	0x63A3	# <CJK>
+0xB478	0x638C	# <CJK>
+0xB479	0x63CF	# <CJK>
+0xB47A	0x63C0	# <CJK>
+0xB47B	0x63E9	# <CJK>
+0xB47C	0x63C9	# <CJK>
+0xB47D	0x63C6	# <CJK>
+0xB47E	0x63CD	# <CJK>
+0xB4A1	0x63D2	# <CJK>
+0xB4A2	0x63E3	# <CJK>
+0xB4A3	0x63D0	# <CJK>
+0xB4A4	0x63E1	# <CJK>
+0xB4A5	0x63D6	# <CJK>
+0xB4A6	0x63ED	# <CJK>
+0xB4A7	0x63EE	# <CJK>
+0xB4A8	0x6376	# <CJK>
+0xB4A9	0x63F4	# <CJK>
+0xB4AA	0x63EA	# <CJK>
+0xB4AB	0x63DB	# <CJK>
+0xB4AC	0x6452	# <CJK>
+0xB4AD	0x63DA	# <CJK>
+0xB4AE	0x63F9	# <CJK>
+0xB4AF	0x655E	# <CJK>
+0xB4B0	0x6566	# <CJK>
+0xB4B1	0x6562	# <CJK>
+0xB4B2	0x6563	# <CJK>
+0xB4B3	0x6591	# <CJK>
+0xB4B4	0x6590	# <CJK>
+0xB4B5	0x65AF	# <CJK>
+0xB4B6	0x666E	# <CJK>
+0xB4B7	0x6670	# <CJK>
+0xB4B8	0x6674	# <CJK>
+0xB4B9	0x6676	# <CJK>
+0xB4BA	0x666F	# <CJK>
+0xB4BB	0x6691	# <CJK>
+0xB4BC	0x667A	# <CJK>
+0xB4BD	0x667E	# <CJK>
+0xB4BE	0x6677	# <CJK>
+0xB4BF	0x66FE	# <CJK>
+0xB4C0	0x66FF	# <CJK>
+0xB4C1	0x671F	# <CJK>
+0xB4C2	0x671D	# <CJK>
+0xB4C3	0x68FA	# <CJK>
+0xB4C4	0x68D5	# <CJK>
+0xB4C5	0x68E0	# <CJK>
+0xB4C6	0x68D8	# <CJK>
+0xB4C7	0x68D7	# <CJK>
+0xB4C8	0x6905	# <CJK>
+0xB4C9	0x68DF	# <CJK>
+0xB4CA	0x68F5	# <CJK>
+0xB4CB	0x68EE	# <CJK>
+0xB4CC	0x68E7	# <CJK>
+0xB4CD	0x68F9	# <CJK>
+0xB4CE	0x68D2	# <CJK>
+0xB4CF	0x68F2	# <CJK>
+0xB4D0	0x68E3	# <CJK>
+0xB4D1	0x68CB	# <CJK>
+0xB4D2	0x68CD	# <CJK>
+0xB4D3	0x690D	# <CJK>
+0xB4D4	0x6912	# <CJK>
+0xB4D5	0x690E	# <CJK>
+0xB4D6	0x68C9	# <CJK>
+0xB4D7	0x68DA	# <CJK>
+0xB4D8	0x696E	# <CJK>
+0xB4D9	0x68FB	# <CJK>
+0xB4DA	0x6B3E	# <CJK>
+0xB4DB	0x6B3A	# <CJK>
+0xB4DC	0x6B3D	# <CJK>
+0xB4DD	0x6B98	# <CJK>
+0xB4DE	0x6B96	# <CJK>
+0xB4DF	0x6BBC	# <CJK>
+0xB4E0	0x6BEF	# <CJK>
+0xB4E1	0x6C2E	# <CJK>
+0xB4E2	0x6C2F	# <CJK>
+0xB4E3	0x6C2C	# <CJK>
+0xB4E4	0x6E2F	# <CJK>
+0xB4E5	0x6E38	# <CJK>
+0xB4E6	0x6E54	# <CJK>
+0xB4E7	0x6E21	# <CJK>
+0xB4E8	0x6E32	# <CJK>
+0xB4E9	0x6E67	# <CJK>
+0xB4EA	0x6E4A	# <CJK>
+0xB4EB	0x6E20	# <CJK>
+0xB4EC	0x6E25	# <CJK>
+0xB4ED	0x6E23	# <CJK>
+0xB4EE	0x6E1B	# <CJK>
+0xB4EF	0x6E5B	# <CJK>
+0xB4F0	0x6E58	# <CJK>
+0xB4F1	0x6E24	# <CJK>
+0xB4F2	0x6E56	# <CJK>
+0xB4F3	0x6E6E	# <CJK>
+0xB4F4	0x6E2D	# <CJK>
+0xB4F5	0x6E26	# <CJK>
+0xB4F6	0x6E6F	# <CJK>
+0xB4F7	0x6E34	# <CJK>
+0xB4F8	0x6E4D	# <CJK>
+0xB4F9	0x6E3A	# <CJK>
+0xB4FA	0x6E2C	# <CJK>
+0xB4FB	0x6E43	# <CJK>
+0xB4FC	0x6E1D	# <CJK>
+0xB4FD	0x6E3E	# <CJK>
+0xB4FE	0x6ECB	# <CJK>
+0xB540	0x6E89	# <CJK>
+0xB541	0x6E19	# <CJK>
+0xB542	0x6E4E	# <CJK>
+0xB543	0x6E63	# <CJK>
+0xB544	0x6E44	# <CJK>
+0xB545	0x6E72	# <CJK>
+0xB546	0x6E69	# <CJK>
+0xB547	0x6E5F	# <CJK>
+0xB548	0x7119	# <CJK>
+0xB549	0x711A	# <CJK>
+0xB54A	0x7126	# <CJK>
+0xB54B	0x7130	# <CJK>
+0xB54C	0x7121	# <CJK>
+0xB54D	0x7136	# <CJK>
+0xB54E	0x716E	# <CJK>
+0xB54F	0x711C	# <CJK>
+0xB550	0x724C	# <CJK>
+0xB551	0x7284	# <CJK>
+0xB552	0x7280	# <CJK>
+0xB553	0x7336	# <CJK>
+0xB554	0x7325	# <CJK>
+0xB555	0x7334	# <CJK>
+0xB556	0x7329	# <CJK>
+0xB557	0x743A	# <CJK>
+0xB558	0x742A	# <CJK>
+0xB559	0x7433	# <CJK>
+0xB55A	0x7422	# <CJK>
+0xB55B	0x7425	# <CJK>
+0xB55C	0x7435	# <CJK>
+0xB55D	0x7436	# <CJK>
+0xB55E	0x7434	# <CJK>
+0xB55F	0x742F	# <CJK>
+0xB560	0x741B	# <CJK>
+0xB561	0x7426	# <CJK>
+0xB562	0x7428	# <CJK>
+0xB563	0x7525	# <CJK>
+0xB564	0x7526	# <CJK>
+0xB565	0x756B	# <CJK>
+0xB566	0x756A	# <CJK>
+0xB567	0x75E2	# <CJK>
+0xB568	0x75DB	# <CJK>
+0xB569	0x75E3	# <CJK>
+0xB56A	0x75D9	# <CJK>
+0xB56B	0x75D8	# <CJK>
+0xB56C	0x75DE	# <CJK>
+0xB56D	0x75E0	# <CJK>
+0xB56E	0x767B	# <CJK>
+0xB56F	0x767C	# <CJK>
+0xB570	0x7696	# <CJK>
+0xB571	0x7693	# <CJK>
+0xB572	0x76B4	# <CJK>
+0xB573	0x76DC	# <CJK>
+0xB574	0x774F	# <CJK>
+0xB575	0x77ED	# <CJK>
+0xB576	0x785D	# <CJK>
+0xB577	0x786C	# <CJK>
+0xB578	0x786F	# <CJK>
+0xB579	0x7A0D	# <CJK>
+0xB57A	0x7A08	# <CJK>
+0xB57B	0x7A0B	# <CJK>
+0xB57C	0x7A05	# <CJK>
+0xB57D	0x7A00	# <CJK>
+0xB57E	0x7A98	# <CJK>
+0xB5A1	0x7A97	# <CJK>
+0xB5A2	0x7A96	# <CJK>
+0xB5A3	0x7AE5	# <CJK>
+0xB5A4	0x7AE3	# <CJK>
+0xB5A5	0x7B49	# <CJK>
+0xB5A6	0x7B56	# <CJK>
+0xB5A7	0x7B46	# <CJK>
+0xB5A8	0x7B50	# <CJK>
+0xB5A9	0x7B52	# <CJK>
+0xB5AA	0x7B54	# <CJK>
+0xB5AB	0x7B4D	# <CJK>
+0xB5AC	0x7B4B	# <CJK>
+0xB5AD	0x7B4F	# <CJK>
+0xB5AE	0x7B51	# <CJK>
+0xB5AF	0x7C9F	# <CJK>
+0xB5B0	0x7CA5	# <CJK>
+0xB5B1	0x7D5E	# <CJK>
+0xB5B2	0x7D50	# <CJK>
+0xB5B3	0x7D68	# <CJK>
+0xB5B4	0x7D55	# <CJK>
+0xB5B5	0x7D2B	# <CJK>
+0xB5B6	0x7D6E	# <CJK>
+0xB5B7	0x7D72	# <CJK>
+0xB5B8	0x7D61	# <CJK>
+0xB5B9	0x7D66	# <CJK>
+0xB5BA	0x7D62	# <CJK>
+0xB5BB	0x7D70	# <CJK>
+0xB5BC	0x7D73	# <CJK>
+0xB5BD	0x5584	# <CJK>
+0xB5BE	0x7FD4	# <CJK>
+0xB5BF	0x7FD5	# <CJK>
+0xB5C0	0x800B	# <CJK>
+0xB5C1	0x8052	# <CJK>
+0xB5C2	0x8085	# <CJK>
+0xB5C3	0x8155	# <CJK>
+0xB5C4	0x8154	# <CJK>
+0xB5C5	0x814B	# <CJK>
+0xB5C6	0x8151	# <CJK>
+0xB5C7	0x814E	# <CJK>
+0xB5C8	0x8139	# <CJK>
+0xB5C9	0x8146	# <CJK>
+0xB5CA	0x813E	# <CJK>
+0xB5CB	0x814C	# <CJK>
+0xB5CC	0x8153	# <CJK>
+0xB5CD	0x8174	# <CJK>
+0xB5CE	0x8212	# <CJK>
+0xB5CF	0x821C	# <CJK>
+0xB5D0	0x83E9	# <CJK>
+0xB5D1	0x8403	# <CJK>
+0xB5D2	0x83F8	# <CJK>
+0xB5D3	0x840D	# <CJK>
+0xB5D4	0x83E0	# <CJK>
+0xB5D5	0x83C5	# <CJK>
+0xB5D6	0x840B	# <CJK>
+0xB5D7	0x83C1	# <CJK>
+0xB5D8	0x83EF	# <CJK>
+0xB5D9	0x83F1	# <CJK>
+0xB5DA	0x83F4	# <CJK>
+0xB5DB	0x8457	# <CJK>
+0xB5DC	0x840A	# <CJK>
+0xB5DD	0x83F0	# <CJK>
+0xB5DE	0x840C	# <CJK>
+0xB5DF	0x83CC	# <CJK>
+0xB5E0	0x83FD	# <CJK>
+0xB5E1	0x83F2	# <CJK>
+0xB5E2	0x83CA	# <CJK>
+0xB5E3	0x8438	# <CJK>
+0xB5E4	0x840E	# <CJK>
+0xB5E5	0x8404	# <CJK>
+0xB5E6	0x83DC	# <CJK>
+0xB5E7	0x8407	# <CJK>
+0xB5E8	0x83D4	# <CJK>
+0xB5E9	0x83DF	# <CJK>
+0xB5EA	0x865B	# <CJK>
+0xB5EB	0x86DF	# <CJK>
+0xB5EC	0x86D9	# <CJK>
+0xB5ED	0x86ED	# <CJK>
+0xB5EE	0x86D4	# <CJK>
+0xB5EF	0x86DB	# <CJK>
+0xB5F0	0x86E4	# <CJK>
+0xB5F1	0x86D0	# <CJK>
+0xB5F2	0x86DE	# <CJK>
+0xB5F3	0x8857	# <CJK>
+0xB5F4	0x88C1	# <CJK>
+0xB5F5	0x88C2	# <CJK>
+0xB5F6	0x88B1	# <CJK>
+0xB5F7	0x8983	# <CJK>
+0xB5F8	0x8996	# <CJK>
+0xB5F9	0x8A3B	# <CJK>
+0xB5FA	0x8A60	# <CJK>
+0xB5FB	0x8A55	# <CJK>
+0xB5FC	0x8A5E	# <CJK>
+0xB5FD	0x8A3C	# <CJK>
+0xB5FE	0x8A41	# <CJK>
+0xB640	0x8A54	# <CJK>
+0xB641	0x8A5B	# <CJK>
+0xB642	0x8A50	# <CJK>
+0xB643	0x8A46	# <CJK>
+0xB644	0x8A34	# <CJK>
+0xB645	0x8A3A	# <CJK>
+0xB646	0x8A36	# <CJK>
+0xB647	0x8A56	# <CJK>
+0xB648	0x8C61	# <CJK>
+0xB649	0x8C82	# <CJK>
+0xB64A	0x8CAF	# <CJK>
+0xB64B	0x8CBC	# <CJK>
+0xB64C	0x8CB3	# <CJK>
+0xB64D	0x8CBD	# <CJK>
+0xB64E	0x8CC1	# <CJK>
+0xB64F	0x8CBB	# <CJK>
+0xB650	0x8CC0	# <CJK>
+0xB651	0x8CB4	# <CJK>
+0xB652	0x8CB7	# <CJK>
+0xB653	0x8CB6	# <CJK>
+0xB654	0x8CBF	# <CJK>
+0xB655	0x8CB8	# <CJK>
+0xB656	0x8D8A	# <CJK>
+0xB657	0x8D85	# <CJK>
+0xB658	0x8D81	# <CJK>
+0xB659	0x8DCE	# <CJK>
+0xB65A	0x8DDD	# <CJK>
+0xB65B	0x8DCB	# <CJK>
+0xB65C	0x8DDA	# <CJK>
+0xB65D	0x8DD1	# <CJK>
+0xB65E	0x8DCC	# <CJK>
+0xB65F	0x8DDB	# <CJK>
+0xB660	0x8DC6	# <CJK>
+0xB661	0x8EFB	# <CJK>
+0xB662	0x8EF8	# <CJK>
+0xB663	0x8EFC	# <CJK>
+0xB664	0x8F9C	# <CJK>
+0xB665	0x902E	# <CJK>
+0xB666	0x9035	# <CJK>
+0xB667	0x9031	# <CJK>
+0xB668	0x9038	# <CJK>
+0xB669	0x9032	# <CJK>
+0xB66A	0x9036	# <CJK>
+0xB66B	0x9102	# <CJK>
+0xB66C	0x90F5	# <CJK>
+0xB66D	0x9109	# <CJK>
+0xB66E	0x90FE	# <CJK>
+0xB66F	0x9163	# <CJK>
+0xB670	0x9165	# <CJK>
+0xB671	0x91CF	# <CJK>
+0xB672	0x9214	# <CJK>
+0xB673	0x9215	# <CJK>
+0xB674	0x9223	# <CJK>
+0xB675	0x9209	# <CJK>
+0xB676	0x921E	# <CJK>
+0xB677	0x920D	# <CJK>
+0xB678	0x9210	# <CJK>
+0xB679	0x9207	# <CJK>
+0xB67A	0x9211	# <CJK>
+0xB67B	0x9594	# <CJK>
+0xB67C	0x958F	# <CJK>
+0xB67D	0x958B	# <CJK>
+0xB67E	0x9591	# <CJK>
+0xB6A1	0x9593	# <CJK>
+0xB6A2	0x9592	# <CJK>
+0xB6A3	0x958E	# <CJK>
+0xB6A4	0x968A	# <CJK>
+0xB6A5	0x968E	# <CJK>
+0xB6A6	0x968B	# <CJK>
+0xB6A7	0x967D	# <CJK>
+0xB6A8	0x9685	# <CJK>
+0xB6A9	0x9686	# <CJK>
+0xB6AA	0x968D	# <CJK>
+0xB6AB	0x9672	# <CJK>
+0xB6AC	0x9684	# <CJK>
+0xB6AD	0x96C1	# <CJK>
+0xB6AE	0x96C5	# <CJK>
+0xB6AF	0x96C4	# <CJK>
+0xB6B0	0x96C6	# <CJK>
+0xB6B1	0x96C7	# <CJK>
+0xB6B2	0x96EF	# <CJK>
+0xB6B3	0x96F2	# <CJK>
+0xB6B4	0x97CC	# <CJK>
+0xB6B5	0x9805	# <CJK>
+0xB6B6	0x9806	# <CJK>
+0xB6B7	0x9808	# <CJK>
+0xB6B8	0x98E7	# <CJK>
+0xB6B9	0x98EA	# <CJK>
+0xB6BA	0x98EF	# <CJK>
+0xB6BB	0x98E9	# <CJK>
+0xB6BC	0x98F2	# <CJK>
+0xB6BD	0x98ED	# <CJK>
+0xB6BE	0x99AE	# <CJK>
+0xB6BF	0x99AD	# <CJK>
+0xB6C0	0x9EC3	# <CJK>
+0xB6C1	0x9ECD	# <CJK>
+0xB6C2	0x9ED1	# <CJK>
+0xB6C3	0x4E82	# <CJK>
+0xB6C4	0x50AD	# <CJK>
+0xB6C5	0x50B5	# <CJK>
+0xB6C6	0x50B2	# <CJK>
+0xB6C7	0x50B3	# <CJK>
+0xB6C8	0x50C5	# <CJK>
+0xB6C9	0x50BE	# <CJK>
+0xB6CA	0x50AC	# <CJK>
+0xB6CB	0x50B7	# <CJK>
+0xB6CC	0x50BB	# <CJK>
+0xB6CD	0x50AF	# <CJK>
+0xB6CE	0x50C7	# <CJK>
+0xB6CF	0x527F	# <CJK>
+0xB6D0	0x5277	# <CJK>
+0xB6D1	0x527D	# <CJK>
+0xB6D2	0x52DF	# <CJK>
+0xB6D3	0x52E6	# <CJK>
+0xB6D4	0x52E4	# <CJK>
+0xB6D5	0x52E2	# <CJK>
+0xB6D6	0x52E3	# <CJK>
+0xB6D7	0x532F	# <CJK>
+0xB6D8	0x55DF	# <CJK>
+0xB6D9	0x55E8	# <CJK>
+0xB6DA	0x55D3	# <CJK>
+0xB6DB	0x55E6	# <CJK>
+0xB6DC	0x55CE	# <CJK>
+0xB6DD	0x55DC	# <CJK>
+0xB6DE	0x55C7	# <CJK>
+0xB6DF	0x55D1	# <CJK>
+0xB6E0	0x55E3	# <CJK>
+0xB6E1	0x55E4	# <CJK>
+0xB6E2	0x55EF	# <CJK>
+0xB6E3	0x55DA	# <CJK>
+0xB6E4	0x55E1	# <CJK>
+0xB6E5	0x55C5	# <CJK>
+0xB6E6	0x55C6	# <CJK>
+0xB6E7	0x55E5	# <CJK>
+0xB6E8	0x55C9	# <CJK>
+0xB6E9	0x5712	# <CJK>
+0xB6EA	0x5713	# <CJK>
+0xB6EB	0x585E	# <CJK>
+0xB6EC	0x5851	# <CJK>
+0xB6ED	0x5858	# <CJK>
+0xB6EE	0x5857	# <CJK>
+0xB6EF	0x585A	# <CJK>
+0xB6F0	0x5854	# <CJK>
+0xB6F1	0x586B	# <CJK>
+0xB6F2	0x584C	# <CJK>
+0xB6F3	0x586D	# <CJK>
+0xB6F4	0x584A	# <CJK>
+0xB6F5	0x5862	# <CJK>
+0xB6F6	0x5852	# <CJK>
+0xB6F7	0x584B	# <CJK>
+0xB6F8	0x5967	# <CJK>
+0xB6F9	0x5AC1	# <CJK>
+0xB6FA	0x5AC9	# <CJK>
+0xB6FB	0x5ACC	# <CJK>
+0xB6FC	0x5ABE	# <CJK>
+0xB6FD	0x5ABD	# <CJK>
+0xB6FE	0x5ABC	# <CJK>
+0xB740	0x5AB3	# <CJK>
+0xB741	0x5AC2	# <CJK>
+0xB742	0x5AB2	# <CJK>
+0xB743	0x5D69	# <CJK>
+0xB744	0x5D6F	# <CJK>
+0xB745	0x5E4C	# <CJK>
+0xB746	0x5E79	# <CJK>
+0xB747	0x5EC9	# <CJK>
+0xB748	0x5EC8	# <CJK>
+0xB749	0x5F12	# <CJK>
+0xB74A	0x5F59	# <CJK>
+0xB74B	0x5FAC	# <CJK>
+0xB74C	0x5FAE	# <CJK>
+0xB74D	0x611A	# <CJK>
+0xB74E	0x610F	# <CJK>
+0xB74F	0x6148	# <CJK>
+0xB750	0x611F	# <CJK>
+0xB751	0x60F3	# <CJK>
+0xB752	0x611B	# <CJK>
+0xB753	0x60F9	# <CJK>
+0xB754	0x6101	# <CJK>
+0xB755	0x6108	# <CJK>
+0xB756	0x614E	# <CJK>
+0xB757	0x614C	# <CJK>
+0xB758	0x6144	# <CJK>
+0xB759	0x614D	# <CJK>
+0xB75A	0x613E	# <CJK>
+0xB75B	0x6134	# <CJK>
+0xB75C	0x6127	# <CJK>
+0xB75D	0x610D	# <CJK>
+0xB75E	0x6106	# <CJK>
+0xB75F	0x6137	# <CJK>
+0xB760	0x6221	# <CJK>
+0xB761	0x6222	# <CJK>
+0xB762	0x6413	# <CJK>
+0xB763	0x643E	# <CJK>
+0xB764	0x641E	# <CJK>
+0xB765	0x642A	# <CJK>
+0xB766	0x642D	# <CJK>
+0xB767	0x643D	# <CJK>
+0xB768	0x642C	# <CJK>
+0xB769	0x640F	# <CJK>
+0xB76A	0x641C	# <CJK>
+0xB76B	0x6414	# <CJK>
+0xB76C	0x640D	# <CJK>
+0xB76D	0x6436	# <CJK>
+0xB76E	0x6416	# <CJK>
+0xB76F	0x6417	# <CJK>
+0xB770	0x6406	# <CJK>
+0xB771	0x656C	# <CJK>
+0xB772	0x659F	# <CJK>
+0xB773	0x65B0	# <CJK>
+0xB774	0x6697	# <CJK>
+0xB775	0x6689	# <CJK>
+0xB776	0x6687	# <CJK>
+0xB777	0x6688	# <CJK>
+0xB778	0x6696	# <CJK>
+0xB779	0x6684	# <CJK>
+0xB77A	0x6698	# <CJK>
+0xB77B	0x668D	# <CJK>
+0xB77C	0x6703	# <CJK>
+0xB77D	0x6994	# <CJK>
+0xB77E	0x696D	# <CJK>
+0xB7A1	0x695A	# <CJK>
+0xB7A2	0x6977	# <CJK>
+0xB7A3	0x6960	# <CJK>
+0xB7A4	0x6954	# <CJK>
+0xB7A5	0x6975	# <CJK>
+0xB7A6	0x6930	# <CJK>
+0xB7A7	0x6982	# <CJK>
+0xB7A8	0x694A	# <CJK>
+0xB7A9	0x6968	# <CJK>
+0xB7AA	0x696B	# <CJK>
+0xB7AB	0x695E	# <CJK>
+0xB7AC	0x6953	# <CJK>
+0xB7AD	0x6979	# <CJK>
+0xB7AE	0x6986	# <CJK>
+0xB7AF	0x695D	# <CJK>
+0xB7B0	0x6963	# <CJK>
+0xB7B1	0x695B	# <CJK>
+0xB7B2	0x6B47	# <CJK>
+0xB7B3	0x6B72	# <CJK>
+0xB7B4	0x6BC0	# <CJK>
+0xB7B5	0x6BBF	# <CJK>
+0xB7B6	0x6BD3	# <CJK>
+0xB7B7	0x6BFD	# <CJK>
+0xB7B8	0x6EA2	# <CJK>
+0xB7B9	0x6EAF	# <CJK>
+0xB7BA	0x6ED3	# <CJK>
+0xB7BB	0x6EB6	# <CJK>
+0xB7BC	0x6EC2	# <CJK>
+0xB7BD	0x6E90	# <CJK>
+0xB7BE	0x6E9D	# <CJK>
+0xB7BF	0x6EC7	# <CJK>
+0xB7C0	0x6EC5	# <CJK>
+0xB7C1	0x6EA5	# <CJK>
+0xB7C2	0x6E98	# <CJK>
+0xB7C3	0x6EBC	# <CJK>
+0xB7C4	0x6EBA	# <CJK>
+0xB7C5	0x6EAB	# <CJK>
+0xB7C6	0x6ED1	# <CJK>
+0xB7C7	0x6E96	# <CJK>
+0xB7C8	0x6E9C	# <CJK>
+0xB7C9	0x6EC4	# <CJK>
+0xB7CA	0x6ED4	# <CJK>
+0xB7CB	0x6EAA	# <CJK>
+0xB7CC	0x6EA7	# <CJK>
+0xB7CD	0x6EB4	# <CJK>
+0xB7CE	0x714E	# <CJK>
+0xB7CF	0x7159	# <CJK>
+0xB7D0	0x7169	# <CJK>
+0xB7D1	0x7164	# <CJK>
+0xB7D2	0x7149	# <CJK>
+0xB7D3	0x7167	# <CJK>
+0xB7D4	0x715C	# <CJK>
+0xB7D5	0x716C	# <CJK>
+0xB7D6	0x7166	# <CJK>
+0xB7D7	0x714C	# <CJK>
+0xB7D8	0x7165	# <CJK>
+0xB7D9	0x715E	# <CJK>
+0xB7DA	0x7146	# <CJK>
+0xB7DB	0x7168	# <CJK>
+0xB7DC	0x7156	# <CJK>
+0xB7DD	0x723A	# <CJK>
+0xB7DE	0x7252	# <CJK>
+0xB7DF	0x7337	# <CJK>
+0xB7E0	0x7345	# <CJK>
+0xB7E1	0x733F	# <CJK>
+0xB7E2	0x733E	# <CJK>
+0xB7E3	0x746F	# <CJK>
+0xB7E4	0x745A	# <CJK>
+0xB7E5	0x7455	# <CJK>
+0xB7E6	0x745F	# <CJK>
+0xB7E7	0x745E	# <CJK>
+0xB7E8	0x7441	# <CJK>
+0xB7E9	0x743F	# <CJK>
+0xB7EA	0x7459	# <CJK>
+0xB7EB	0x745B	# <CJK>
+0xB7EC	0x745C	# <CJK>
+0xB7ED	0x7576	# <CJK>
+0xB7EE	0x7578	# <CJK>
+0xB7EF	0x7600	# <CJK>
+0xB7F0	0x75F0	# <CJK>
+0xB7F1	0x7601	# <CJK>
+0xB7F2	0x75F2	# <CJK>
+0xB7F3	0x75F1	# <CJK>
+0xB7F4	0x75FA	# <CJK>
+0xB7F5	0x75FF	# <CJK>
+0xB7F6	0x75F4	# <CJK>
+0xB7F7	0x75F3	# <CJK>
+0xB7F8	0x76DE	# <CJK>
+0xB7F9	0x76DF	# <CJK>
+0xB7FA	0x775B	# <CJK>
+0xB7FB	0x776B	# <CJK>
+0xB7FC	0x7766	# <CJK>
+0xB7FD	0x775E	# <CJK>
+0xB7FE	0x7763	# <CJK>
+0xB840	0x7779	# <CJK>
+0xB841	0x776A	# <CJK>
+0xB842	0x776C	# <CJK>
+0xB843	0x775C	# <CJK>
+0xB844	0x7765	# <CJK>
+0xB845	0x7768	# <CJK>
+0xB846	0x7762	# <CJK>
+0xB847	0x77EE	# <CJK>
+0xB848	0x788E	# <CJK>
+0xB849	0x78B0	# <CJK>
+0xB84A	0x7897	# <CJK>
+0xB84B	0x7898	# <CJK>
+0xB84C	0x788C	# <CJK>
+0xB84D	0x7889	# <CJK>
+0xB84E	0x787C	# <CJK>
+0xB84F	0x7891	# <CJK>
+0xB850	0x7893	# <CJK>
+0xB851	0x787F	# <CJK>
+0xB852	0x797A	# <CJK>
+0xB853	0x797F	# <CJK>
+0xB854	0x7981	# <CJK>
+0xB855	0x842C	# <CJK>
+0xB856	0x79BD	# <CJK>
+0xB857	0x7A1C	# <CJK>
+0xB858	0x7A1A	# <CJK>
+0xB859	0x7A20	# <CJK>
+0xB85A	0x7A14	# <CJK>
+0xB85B	0x7A1F	# <CJK>
+0xB85C	0x7A1E	# <CJK>
+0xB85D	0x7A9F	# <CJK>
+0xB85E	0x7AA0	# <CJK>
+0xB85F	0x7B77	# <CJK>
+0xB860	0x7BC0	# <CJK>
+0xB861	0x7B60	# <CJK>
+0xB862	0x7B6E	# <CJK>
+0xB863	0x7B67	# <CJK>
+0xB864	0x7CB1	# <CJK>
+0xB865	0x7CB3	# <CJK>
+0xB866	0x7CB5	# <CJK>
+0xB867	0x7D93	# <CJK>
+0xB868	0x7D79	# <CJK>
+0xB869	0x7D91	# <CJK>
+0xB86A	0x7D81	# <CJK>
+0xB86B	0x7D8F	# <CJK>
+0xB86C	0x7D5B	# <CJK>
+0xB86D	0x7F6E	# <CJK>
+0xB86E	0x7F69	# <CJK>
+0xB86F	0x7F6A	# <CJK>
+0xB870	0x7F72	# <CJK>
+0xB871	0x7FA9	# <CJK>
+0xB872	0x7FA8	# <CJK>
+0xB873	0x7FA4	# <CJK>
+0xB874	0x8056	# <CJK>
+0xB875	0x8058	# <CJK>
+0xB876	0x8086	# <CJK>
+0xB877	0x8084	# <CJK>
+0xB878	0x8171	# <CJK>
+0xB879	0x8170	# <CJK>
+0xB87A	0x8178	# <CJK>
+0xB87B	0x8165	# <CJK>
+0xB87C	0x816E	# <CJK>
+0xB87D	0x8173	# <CJK>
+0xB87E	0x816B	# <CJK>
+0xB8A1	0x8179	# <CJK>
+0xB8A2	0x817A	# <CJK>
+0xB8A3	0x8166	# <CJK>
+0xB8A4	0x8205	# <CJK>
+0xB8A5	0x8247	# <CJK>
+0xB8A6	0x8482	# <CJK>
+0xB8A7	0x8477	# <CJK>
+0xB8A8	0x843D	# <CJK>
+0xB8A9	0x8431	# <CJK>
+0xB8AA	0x8475	# <CJK>
+0xB8AB	0x8466	# <CJK>
+0xB8AC	0x846B	# <CJK>
+0xB8AD	0x8449	# <CJK>
+0xB8AE	0x846C	# <CJK>
+0xB8AF	0x845B	# <CJK>
+0xB8B0	0x843C	# <CJK>
+0xB8B1	0x8435	# <CJK>
+0xB8B2	0x8461	# <CJK>
+0xB8B3	0x8463	# <CJK>
+0xB8B4	0x8469	# <CJK>
+0xB8B5	0x846D	# <CJK>
+0xB8B6	0x8446	# <CJK>
+0xB8B7	0x865E	# <CJK>
+0xB8B8	0x865C	# <CJK>
+0xB8B9	0x865F	# <CJK>
+0xB8BA	0x86F9	# <CJK>
+0xB8BB	0x8713	# <CJK>
+0xB8BC	0x8708	# <CJK>
+0xB8BD	0x8707	# <CJK>
+0xB8BE	0x8700	# <CJK>
+0xB8BF	0x86FE	# <CJK>
+0xB8C0	0x86FB	# <CJK>
+0xB8C1	0x8702	# <CJK>
+0xB8C2	0x8703	# <CJK>
+0xB8C3	0x8706	# <CJK>
+0xB8C4	0x870A	# <CJK>
+0xB8C5	0x8859	# <CJK>
+0xB8C6	0x88DF	# <CJK>
+0xB8C7	0x88D4	# <CJK>
+0xB8C8	0x88D9	# <CJK>
+0xB8C9	0x88DC	# <CJK>
+0xB8CA	0x88D8	# <CJK>
+0xB8CB	0x88DD	# <CJK>
+0xB8CC	0x88E1	# <CJK>
+0xB8CD	0x88CA	# <CJK>
+0xB8CE	0x88D5	# <CJK>
+0xB8CF	0x88D2	# <CJK>
+0xB8D0	0x899C	# <CJK>
+0xB8D1	0x89E3	# <CJK>
+0xB8D2	0x8A6B	# <CJK>
+0xB8D3	0x8A72	# <CJK>
+0xB8D4	0x8A73	# <CJK>
+0xB8D5	0x8A66	# <CJK>
+0xB8D6	0x8A69	# <CJK>
+0xB8D7	0x8A70	# <CJK>
+0xB8D8	0x8A87	# <CJK>
+0xB8D9	0x8A7C	# <CJK>
+0xB8DA	0x8A63	# <CJK>
+0xB8DB	0x8AA0	# <CJK>
+0xB8DC	0x8A71	# <CJK>
+0xB8DD	0x8A85	# <CJK>
+0xB8DE	0x8A6D	# <CJK>
+0xB8DF	0x8A62	# <CJK>
+0xB8E0	0x8A6E	# <CJK>
+0xB8E1	0x8A6C	# <CJK>
+0xB8E2	0x8A79	# <CJK>
+0xB8E3	0x8A7B	# <CJK>
+0xB8E4	0x8A3E	# <CJK>
+0xB8E5	0x8A68	# <CJK>
+0xB8E6	0x8C62	# <CJK>
+0xB8E7	0x8C8A	# <CJK>
+0xB8E8	0x8C89	# <CJK>
+0xB8E9	0x8CCA	# <CJK>
+0xB8EA	0x8CC7	# <CJK>
+0xB8EB	0x8CC8	# <CJK>
+0xB8EC	0x8CC4	# <CJK>
+0xB8ED	0x8CB2	# <CJK>
+0xB8EE	0x8CC3	# <CJK>
+0xB8EF	0x8CC2	# <CJK>
+0xB8F0	0x8CC5	# <CJK>
+0xB8F1	0x8DE1	# <CJK>
+0xB8F2	0x8DDF	# <CJK>
+0xB8F3	0x8DE8	# <CJK>
+0xB8F4	0x8DEF	# <CJK>
+0xB8F5	0x8DF3	# <CJK>
+0xB8F6	0x8DFA	# <CJK>
+0xB8F7	0x8DEA	# <CJK>
+0xB8F8	0x8DE4	# <CJK>
+0xB8F9	0x8DE6	# <CJK>
+0xB8FA	0x8EB2	# <CJK>
+0xB8FB	0x8F03	# <CJK>
+0xB8FC	0x8F09	# <CJK>
+0xB8FD	0x8EFE	# <CJK>
+0xB8FE	0x8F0A	# <CJK>
+0xB940	0x8F9F	# <CJK>
+0xB941	0x8FB2	# <CJK>
+0xB942	0x904B	# <CJK>
+0xB943	0x904A	# <CJK>
+0xB944	0x9053	# <CJK>
+0xB945	0x9042	# <CJK>
+0xB946	0x9054	# <CJK>
+0xB947	0x903C	# <CJK>
+0xB948	0x9055	# <CJK>
+0xB949	0x9050	# <CJK>
+0xB94A	0x9047	# <CJK>
+0xB94B	0x904F	# <CJK>
+0xB94C	0x904E	# <CJK>
+0xB94D	0x904D	# <CJK>
+0xB94E	0x9051	# <CJK>
+0xB94F	0x903E	# <CJK>
+0xB950	0x9041	# <CJK>
+0xB951	0x9112	# <CJK>
+0xB952	0x9117	# <CJK>
+0xB953	0x916C	# <CJK>
+0xB954	0x916A	# <CJK>
+0xB955	0x9169	# <CJK>
+0xB956	0x91C9	# <CJK>
+0xB957	0x9237	# <CJK>
+0xB958	0x9257	# <CJK>
+0xB959	0x9238	# <CJK>
+0xB95A	0x923D	# <CJK>
+0xB95B	0x9240	# <CJK>
+0xB95C	0x923E	# <CJK>
+0xB95D	0x925B	# <CJK>
+0xB95E	0x924B	# <CJK>
+0xB95F	0x9264	# <CJK>
+0xB960	0x9251	# <CJK>
+0xB961	0x9234	# <CJK>
+0xB962	0x9249	# <CJK>
+0xB963	0x924D	# <CJK>
+0xB964	0x9245	# <CJK>
+0xB965	0x9239	# <CJK>
+0xB966	0x923F	# <CJK>
+0xB967	0x925A	# <CJK>
+0xB968	0x9598	# <CJK>
+0xB969	0x9698	# <CJK>
+0xB96A	0x9694	# <CJK>
+0xB96B	0x9695	# <CJK>
+0xB96C	0x96CD	# <CJK>
+0xB96D	0x96CB	# <CJK>
+0xB96E	0x96C9	# <CJK>
+0xB96F	0x96CA	# <CJK>
+0xB970	0x96F7	# <CJK>
+0xB971	0x96FB	# <CJK>
+0xB972	0x96F9	# <CJK>
+0xB973	0x96F6	# <CJK>
+0xB974	0x9756	# <CJK>
+0xB975	0x9774	# <CJK>
+0xB976	0x9776	# <CJK>
+0xB977	0x9810	# <CJK>
+0xB978	0x9811	# <CJK>
+0xB979	0x9813	# <CJK>
+0xB97A	0x980A	# <CJK>
+0xB97B	0x9812	# <CJK>
+0xB97C	0x980C	# <CJK>
+0xB97D	0x98FC	# <CJK>
+0xB97E	0x98F4	# <CJK>
+0xB9A1	0x98FD	# <CJK>
+0xB9A2	0x98FE	# <CJK>
+0xB9A3	0x99B3	# <CJK>
+0xB9A4	0x99B1	# <CJK>
+0xB9A5	0x99B4	# <CJK>
+0xB9A6	0x9AE1	# <CJK>
+0xB9A7	0x9CE9	# <CJK>
+0xB9A8	0x9E82	# <CJK>
+0xB9A9	0x9F0E	# <CJK>
+0xB9AA	0x9F13	# <CJK>
+0xB9AB	0x9F20	# <CJK>
+0xB9AC	0x50E7	# <CJK>
+0xB9AD	0x50EE	# <CJK>
+0xB9AE	0x50E5	# <CJK>
+0xB9AF	0x50D6	# <CJK>
+0xB9B0	0x50ED	# <CJK>
+0xB9B1	0x50DA	# <CJK>
+0xB9B2	0x50D5	# <CJK>
+0xB9B3	0x50CF	# <CJK>
+0xB9B4	0x50D1	# <CJK>
+0xB9B5	0x50F1	# <CJK>
+0xB9B6	0x50CE	# <CJK>
+0xB9B7	0x50E9	# <CJK>
+0xB9B8	0x5162	# <CJK>
+0xB9B9	0x51F3	# <CJK>
+0xB9BA	0x5283	# <CJK>
+0xB9BB	0x5282	# <CJK>
+0xB9BC	0x5331	# <CJK>
+0xB9BD	0x53AD	# <CJK>
+0xB9BE	0x55FE	# <CJK>
+0xB9BF	0x5600	# <CJK>
+0xB9C0	0x561B	# <CJK>
+0xB9C1	0x5617	# <CJK>
+0xB9C2	0x55FD	# <CJK>
+0xB9C3	0x5614	# <CJK>
+0xB9C4	0x5606	# <CJK>
+0xB9C5	0x5609	# <CJK>
+0xB9C6	0x560D	# <CJK>
+0xB9C7	0x560E	# <CJK>
+0xB9C8	0x55F7	# <CJK>
+0xB9C9	0x5616	# <CJK>
+0xB9CA	0x561F	# <CJK>
+0xB9CB	0x5608	# <CJK>
+0xB9CC	0x5610	# <CJK>
+0xB9CD	0x55F6	# <CJK>
+0xB9CE	0x5718	# <CJK>
+0xB9CF	0x5716	# <CJK>
+0xB9D0	0x5875	# <CJK>
+0xB9D1	0x587E	# <CJK>
+0xB9D2	0x5883	# <CJK>
+0xB9D3	0x5893	# <CJK>
+0xB9D4	0x588A	# <CJK>
+0xB9D5	0x5879	# <CJK>
+0xB9D6	0x5885	# <CJK>
+0xB9D7	0x587D	# <CJK>
+0xB9D8	0x58FD	# <CJK>
+0xB9D9	0x5925	# <CJK>
+0xB9DA	0x5922	# <CJK>
+0xB9DB	0x5924	# <CJK>
+0xB9DC	0x596A	# <CJK>
+0xB9DD	0x5969	# <CJK>
+0xB9DE	0x5AE1	# <CJK>
+0xB9DF	0x5AE6	# <CJK>
+0xB9E0	0x5AE9	# <CJK>
+0xB9E1	0x5AD7	# <CJK>
+0xB9E2	0x5AD6	# <CJK>
+0xB9E3	0x5AD8	# <CJK>
+0xB9E4	0x5AE3	# <CJK>
+0xB9E5	0x5B75	# <CJK>
+0xB9E6	0x5BDE	# <CJK>
+0xB9E7	0x5BE7	# <CJK>
+0xB9E8	0x5BE1	# <CJK>
+0xB9E9	0x5BE5	# <CJK>
+0xB9EA	0x5BE6	# <CJK>
+0xB9EB	0x5BE8	# <CJK>
+0xB9EC	0x5BE2	# <CJK>
+0xB9ED	0x5BE4	# <CJK>
+0xB9EE	0x5BDF	# <CJK>
+0xB9EF	0x5C0D	# <CJK>
+0xB9F0	0x5C62	# <CJK>
+0xB9F1	0x5D84	# <CJK>
+0xB9F2	0x5D87	# <CJK>
+0xB9F3	0x5E5B	# <CJK>
+0xB9F4	0x5E63	# <CJK>
+0xB9F5	0x5E55	# <CJK>
+0xB9F6	0x5E57	# <CJK>
+0xB9F7	0x5E54	# <CJK>
+0xB9F8	0x5ED3	# <CJK>
+0xB9F9	0x5ED6	# <CJK>
+0xB9FA	0x5F0A	# <CJK>
+0xB9FB	0x5F46	# <CJK>
+0xB9FC	0x5F70	# <CJK>
+0xB9FD	0x5FB9	# <CJK>
+0xB9FE	0x6147	# <CJK>
+0xBA40	0x613F	# <CJK>
+0xBA41	0x614B	# <CJK>
+0xBA42	0x6177	# <CJK>
+0xBA43	0x6162	# <CJK>
+0xBA44	0x6163	# <CJK>
+0xBA45	0x615F	# <CJK>
+0xBA46	0x615A	# <CJK>
+0xBA47	0x6158	# <CJK>
+0xBA48	0x6175	# <CJK>
+0xBA49	0x622A	# <CJK>
+0xBA4A	0x6487	# <CJK>
+0xBA4B	0x6458	# <CJK>
+0xBA4C	0x6454	# <CJK>
+0xBA4D	0x64A4	# <CJK>
+0xBA4E	0x6478	# <CJK>
+0xBA4F	0x645F	# <CJK>
+0xBA50	0x647A	# <CJK>
+0xBA51	0x6451	# <CJK>
+0xBA52	0x6467	# <CJK>
+0xBA53	0x6434	# <CJK>
+0xBA54	0x646D	# <CJK>
+0xBA55	0x647B	# <CJK>
+0xBA56	0x6572	# <CJK>
+0xBA57	0x65A1	# <CJK>
+0xBA58	0x65D7	# <CJK>
+0xBA59	0x65D6	# <CJK>
+0xBA5A	0x66A2	# <CJK>
+0xBA5B	0x66A8	# <CJK>
+0xBA5C	0x669D	# <CJK>
+0xBA5D	0x699C	# <CJK>
+0xBA5E	0x69A8	# <CJK>
+0xBA5F	0x6995	# <CJK>
+0xBA60	0x69C1	# <CJK>
+0xBA61	0x69AE	# <CJK>
+0xBA62	0x69D3	# <CJK>
+0xBA63	0x69CB	# <CJK>
+0xBA64	0x699B	# <CJK>
+0xBA65	0x69B7	# <CJK>
+0xBA66	0x69BB	# <CJK>
+0xBA67	0x69AB	# <CJK>
+0xBA68	0x69B4	# <CJK>
+0xBA69	0x69D0	# <CJK>
+0xBA6A	0x69CD	# <CJK>
+0xBA6B	0x69AD	# <CJK>
+0xBA6C	0x69CC	# <CJK>
+0xBA6D	0x69A6	# <CJK>
+0xBA6E	0x69C3	# <CJK>
+0xBA6F	0x69A3	# <CJK>
+0xBA70	0x6B49	# <CJK>
+0xBA71	0x6B4C	# <CJK>
+0xBA72	0x6C33	# <CJK>
+0xBA73	0x6F33	# <CJK>
+0xBA74	0x6F14	# <CJK>
+0xBA75	0x6EFE	# <CJK>
+0xBA76	0x6F13	# <CJK>
+0xBA77	0x6EF4	# <CJK>
+0xBA78	0x6F29	# <CJK>
+0xBA79	0x6F3E	# <CJK>
+0xBA7A	0x6F20	# <CJK>
+0xBA7B	0x6F2C	# <CJK>
+0xBA7C	0x6F0F	# <CJK>
+0xBA7D	0x6F02	# <CJK>
+0xBA7E	0x6F22	# <CJK>
+0xBAA1	0x6EFF	# <CJK>
+0xBAA2	0x6EEF	# <CJK>
+0xBAA3	0x6F06	# <CJK>
+0xBAA4	0x6F31	# <CJK>
+0xBAA5	0x6F38	# <CJK>
+0xBAA6	0x6F32	# <CJK>
+0xBAA7	0x6F23	# <CJK>
+0xBAA8	0x6F15	# <CJK>
+0xBAA9	0x6F2B	# <CJK>
+0xBAAA	0x6F2F	# <CJK>
+0xBAAB	0x6F88	# <CJK>
+0xBAAC	0x6F2A	# <CJK>
+0xBAAD	0x6EEC	# <CJK>
+0xBAAE	0x6F01	# <CJK>
+0xBAAF	0x6EF2	# <CJK>
+0xBAB0	0x6ECC	# <CJK>
+0xBAB1	0x6EF7	# <CJK>
+0xBAB2	0x7194	# <CJK>
+0xBAB3	0x7199	# <CJK>
+0xBAB4	0x717D	# <CJK>
+0xBAB5	0x718A	# <CJK>
+0xBAB6	0x7184	# <CJK>
+0xBAB7	0x7192	# <CJK>
+0xBAB8	0x723E	# <CJK>
+0xBAB9	0x7292	# <CJK>
+0xBABA	0x7296	# <CJK>
+0xBABB	0x7344	# <CJK>
+0xBABC	0x7350	# <CJK>
+0xBABD	0x7464	# <CJK>
+0xBABE	0x7463	# <CJK>
+0xBABF	0x746A	# <CJK>
+0xBAC0	0x7470	# <CJK>
+0xBAC1	0x746D	# <CJK>
+0xBAC2	0x7504	# <CJK>
+0xBAC3	0x7591	# <CJK>
+0xBAC4	0x7627	# <CJK>
+0xBAC5	0x760D	# <CJK>
+0xBAC6	0x760B	# <CJK>
+0xBAC7	0x7609	# <CJK>
+0xBAC8	0x7613	# <CJK>
+0xBAC9	0x76E1	# <CJK>
+0xBACA	0x76E3	# <CJK>
+0xBACB	0x7784	# <CJK>
+0xBACC	0x777D	# <CJK>
+0xBACD	0x777F	# <CJK>
+0xBACE	0x7761	# <CJK>
+0xBACF	0x78C1	# <CJK>
+0xBAD0	0x789F	# <CJK>
+0xBAD1	0x78A7	# <CJK>
+0xBAD2	0x78B3	# <CJK>
+0xBAD3	0x78A9	# <CJK>
+0xBAD4	0x78A3	# <CJK>
+0xBAD5	0x798E	# <CJK>
+0xBAD6	0x798F	# <CJK>
+0xBAD7	0x798D	# <CJK>
+0xBAD8	0x7A2E	# <CJK>
+0xBAD9	0x7A31	# <CJK>
+0xBADA	0x7AAA	# <CJK>
+0xBADB	0x7AA9	# <CJK>
+0xBADC	0x7AED	# <CJK>
+0xBADD	0x7AEF	# <CJK>
+0xBADE	0x7BA1	# <CJK>
+0xBADF	0x7B95	# <CJK>
+0xBAE0	0x7B8B	# <CJK>
+0xBAE1	0x7B75	# <CJK>
+0xBAE2	0x7B97	# <CJK>
+0xBAE3	0x7B9D	# <CJK>
+0xBAE4	0x7B94	# <CJK>
+0xBAE5	0x7B8F	# <CJK>
+0xBAE6	0x7BB8	# <CJK>
+0xBAE7	0x7B87	# <CJK>
+0xBAE8	0x7B84	# <CJK>
+0xBAE9	0x7CB9	# <CJK>
+0xBAEA	0x7CBD	# <CJK>
+0xBAEB	0x7CBE	# <CJK>
+0xBAEC	0x7DBB	# <CJK>
+0xBAED	0x7DB0	# <CJK>
+0xBAEE	0x7D9C	# <CJK>
+0xBAEF	0x7DBD	# <CJK>
+0xBAF0	0x7DBE	# <CJK>
+0xBAF1	0x7DA0	# <CJK>
+0xBAF2	0x7DCA	# <CJK>
+0xBAF3	0x7DB4	# <CJK>
+0xBAF4	0x7DB2	# <CJK>
+0xBAF5	0x7DB1	# <CJK>
+0xBAF6	0x7DBA	# <CJK>
+0xBAF7	0x7DA2	# <CJK>
+0xBAF8	0x7DBF	# <CJK>
+0xBAF9	0x7DB5	# <CJK>
+0xBAFA	0x7DB8	# <CJK>
+0xBAFB	0x7DAD	# <CJK>
+0xBAFC	0x7DD2	# <CJK>
+0xBAFD	0x7DC7	# <CJK>
+0xBAFE	0x7DAC	# <CJK>
+0xBB40	0x7F70	# <CJK>
+0xBB41	0x7FE0	# <CJK>
+0xBB42	0x7FE1	# <CJK>
+0xBB43	0x7FDF	# <CJK>
+0xBB44	0x805E	# <CJK>
+0xBB45	0x805A	# <CJK>
+0xBB46	0x8087	# <CJK>
+0xBB47	0x8150	# <CJK>
+0xBB48	0x8180	# <CJK>
+0xBB49	0x818F	# <CJK>
+0xBB4A	0x8188	# <CJK>
+0xBB4B	0x818A	# <CJK>
+0xBB4C	0x817F	# <CJK>
+0xBB4D	0x8182	# <CJK>
+0xBB4E	0x81E7	# <CJK>
+0xBB4F	0x81FA	# <CJK>
+0xBB50	0x8207	# <CJK>
+0xBB51	0x8214	# <CJK>
+0xBB52	0x821E	# <CJK>
+0xBB53	0x824B	# <CJK>
+0xBB54	0x84C9	# <CJK>
+0xBB55	0x84BF	# <CJK>
+0xBB56	0x84C6	# <CJK>
+0xBB57	0x84C4	# <CJK>
+0xBB58	0x8499	# <CJK>
+0xBB59	0x849E	# <CJK>
+0xBB5A	0x84B2	# <CJK>
+0xBB5B	0x849C	# <CJK>
+0xBB5C	0x84CB	# <CJK>
+0xBB5D	0x84B8	# <CJK>
+0xBB5E	0x84C0	# <CJK>
+0xBB5F	0x84D3	# <CJK>
+0xBB60	0x8490	# <CJK>
+0xBB61	0x84BC	# <CJK>
+0xBB62	0x84D1	# <CJK>
+0xBB63	0x84CA	# <CJK>
+0xBB64	0x873F	# <CJK>
+0xBB65	0x871C	# <CJK>
+0xBB66	0x873B	# <CJK>
+0xBB67	0x8722	# <CJK>
+0xBB68	0x8725	# <CJK>
+0xBB69	0x8734	# <CJK>
+0xBB6A	0x8718	# <CJK>
+0xBB6B	0x8755	# <CJK>
+0xBB6C	0x8737	# <CJK>
+0xBB6D	0x8729	# <CJK>
+0xBB6E	0x88F3	# <CJK>
+0xBB6F	0x8902	# <CJK>
+0xBB70	0x88F4	# <CJK>
+0xBB71	0x88F9	# <CJK>
+0xBB72	0x88F8	# <CJK>
+0xBB73	0x88FD	# <CJK>
+0xBB74	0x88E8	# <CJK>
+0xBB75	0x891A	# <CJK>
+0xBB76	0x88EF	# <CJK>
+0xBB77	0x8AA6	# <CJK>
+0xBB78	0x8A8C	# <CJK>
+0xBB79	0x8A9E	# <CJK>
+0xBB7A	0x8AA3	# <CJK>
+0xBB7B	0x8A8D	# <CJK>
+0xBB7C	0x8AA1	# <CJK>
+0xBB7D	0x8A93	# <CJK>
+0xBB7E	0x8AA4	# <CJK>
+0xBBA1	0x8AAA	# <CJK>
+0xBBA2	0x8AA5	# <CJK>
+0xBBA3	0x8AA8	# <CJK>
+0xBBA4	0x8A98	# <CJK>
+0xBBA5	0x8A91	# <CJK>
+0xBBA6	0x8A9A	# <CJK>
+0xBBA7	0x8AA7	# <CJK>
+0xBBA8	0x8C6A	# <CJK>
+0xBBA9	0x8C8D	# <CJK>
+0xBBAA	0x8C8C	# <CJK>
+0xBBAB	0x8CD3	# <CJK>
+0xBBAC	0x8CD1	# <CJK>
+0xBBAD	0x8CD2	# <CJK>
+0xBBAE	0x8D6B	# <CJK>
+0xBBAF	0x8D99	# <CJK>
+0xBBB0	0x8D95	# <CJK>
+0xBBB1	0x8DFC	# <CJK>
+0xBBB2	0x8F14	# <CJK>
+0xBBB3	0x8F12	# <CJK>
+0xBBB4	0x8F15	# <CJK>
+0xBBB5	0x8F13	# <CJK>
+0xBBB6	0x8FA3	# <CJK>
+0xBBB7	0x9060	# <CJK>
+0xBBB8	0x9058	# <CJK>
+0xBBB9	0x905C	# <CJK>
+0xBBBA	0x9063	# <CJK>
+0xBBBB	0x9059	# <CJK>
+0xBBBC	0x905E	# <CJK>
+0xBBBD	0x9062	# <CJK>
+0xBBBE	0x905D	# <CJK>
+0xBBBF	0x905B	# <CJK>
+0xBBC0	0x9119	# <CJK>
+0xBBC1	0x9118	# <CJK>
+0xBBC2	0x911E	# <CJK>
+0xBBC3	0x9175	# <CJK>
+0xBBC4	0x9178	# <CJK>
+0xBBC5	0x9177	# <CJK>
+0xBBC6	0x9174	# <CJK>
+0xBBC7	0x9278	# <CJK>
+0xBBC8	0x9280	# <CJK>
+0xBBC9	0x9285	# <CJK>
+0xBBCA	0x9298	# <CJK>
+0xBBCB	0x9296	# <CJK>
+0xBBCC	0x927B	# <CJK>
+0xBBCD	0x9293	# <CJK>
+0xBBCE	0x929C	# <CJK>
+0xBBCF	0x92A8	# <CJK>
+0xBBD0	0x927C	# <CJK>
+0xBBD1	0x9291	# <CJK>
+0xBBD2	0x95A1	# <CJK>
+0xBBD3	0x95A8	# <CJK>
+0xBBD4	0x95A9	# <CJK>
+0xBBD5	0x95A3	# <CJK>
+0xBBD6	0x95A5	# <CJK>
+0xBBD7	0x95A4	# <CJK>
+0xBBD8	0x9699	# <CJK>
+0xBBD9	0x969C	# <CJK>
+0xBBDA	0x969B	# <CJK>
+0xBBDB	0x96CC	# <CJK>
+0xBBDC	0x96D2	# <CJK>
+0xBBDD	0x9700	# <CJK>
+0xBBDE	0x977C	# <CJK>
+0xBBDF	0x9785	# <CJK>
+0xBBE0	0x97F6	# <CJK>
+0xBBE1	0x9817	# <CJK>
+0xBBE2	0x9818	# <CJK>
+0xBBE3	0x98AF	# <CJK>
+0xBBE4	0x98B1	# <CJK>
+0xBBE5	0x9903	# <CJK>
+0xBBE6	0x9905	# <CJK>
+0xBBE7	0x990C	# <CJK>
+0xBBE8	0x9909	# <CJK>
+0xBBE9	0x99C1	# <CJK>
+0xBBEA	0x9AAF	# <CJK>
+0xBBEB	0x9AB0	# <CJK>
+0xBBEC	0x9AE6	# <CJK>
+0xBBED	0x9B41	# <CJK>
+0xBBEE	0x9B42	# <CJK>
+0xBBEF	0x9CF4	# <CJK>
+0xBBF0	0x9CF6	# <CJK>
+0xBBF1	0x9CF3	# <CJK>
+0xBBF2	0x9EBC	# <CJK>
+0xBBF3	0x9F3B	# <CJK>
+0xBBF4	0x9F4A	# <CJK>
+0xBBF5	0x5104	# <CJK>
+0xBBF6	0x5100	# <CJK>
+0xBBF7	0x50FB	# <CJK>
+0xBBF8	0x50F5	# <CJK>
+0xBBF9	0x50F9	# <CJK>
+0xBBFA	0x5102	# <CJK>
+0xBBFB	0x5108	# <CJK>
+0xBBFC	0x5109	# <CJK>
+0xBBFD	0x5105	# <CJK>
+0xBBFE	0x51DC	# <CJK>
+0xBC40	0x5287	# <CJK>
+0xBC41	0x5288	# <CJK>
+0xBC42	0x5289	# <CJK>
+0xBC43	0x528D	# <CJK>
+0xBC44	0x528A	# <CJK>
+0xBC45	0x52F0	# <CJK>
+0xBC46	0x53B2	# <CJK>
+0xBC47	0x562E	# <CJK>
+0xBC48	0x563B	# <CJK>
+0xBC49	0x5639	# <CJK>
+0xBC4A	0x5632	# <CJK>
+0xBC4B	0x563F	# <CJK>
+0xBC4C	0x5634	# <CJK>
+0xBC4D	0x5629	# <CJK>
+0xBC4E	0x5653	# <CJK>
+0xBC4F	0x564E	# <CJK>
+0xBC50	0x5657	# <CJK>
+0xBC51	0x5674	# <CJK>
+0xBC52	0x5636	# <CJK>
+0xBC53	0x562F	# <CJK>
+0xBC54	0x5630	# <CJK>
+0xBC55	0x5880	# <CJK>
+0xBC56	0x589F	# <CJK>
+0xBC57	0x589E	# <CJK>
+0xBC58	0x58B3	# <CJK>
+0xBC59	0x589C	# <CJK>
+0xBC5A	0x58AE	# <CJK>
+0xBC5B	0x58A9	# <CJK>
+0xBC5C	0x58A6	# <CJK>
+0xBC5D	0x596D	# <CJK>
+0xBC5E	0x5B09	# <CJK>
+0xBC5F	0x5AFB	# <CJK>
+0xBC60	0x5B0B	# <CJK>
+0xBC61	0x5AF5	# <CJK>
+0xBC62	0x5B0C	# <CJK>
+0xBC63	0x5B08	# <CJK>
+0xBC64	0x5BEE	# <CJK>
+0xBC65	0x5BEC	# <CJK>
+0xBC66	0x5BE9	# <CJK>
+0xBC67	0x5BEB	# <CJK>
+0xBC68	0x5C64	# <CJK>
+0xBC69	0x5C65	# <CJK>
+0xBC6A	0x5D9D	# <CJK>
+0xBC6B	0x5D94	# <CJK>
+0xBC6C	0x5E62	# <CJK>
+0xBC6D	0x5E5F	# <CJK>
+0xBC6E	0x5E61	# <CJK>
+0xBC6F	0x5EE2	# <CJK>
+0xBC70	0x5EDA	# <CJK>
+0xBC71	0x5EDF	# <CJK>
+0xBC72	0x5EDD	# <CJK>
+0xBC73	0x5EE3	# <CJK>
+0xBC74	0x5EE0	# <CJK>
+0xBC75	0x5F48	# <CJK>
+0xBC76	0x5F71	# <CJK>
+0xBC77	0x5FB7	# <CJK>
+0xBC78	0x5FB5	# <CJK>
+0xBC79	0x6176	# <CJK>
+0xBC7A	0x6167	# <CJK>
+0xBC7B	0x616E	# <CJK>
+0xBC7C	0x615D	# <CJK>
+0xBC7D	0x6155	# <CJK>
+0xBC7E	0x6182	# <CJK>
+0xBCA1	0x617C	# <CJK>
+0xBCA2	0x6170	# <CJK>
+0xBCA3	0x616B	# <CJK>
+0xBCA4	0x617E	# <CJK>
+0xBCA5	0x61A7	# <CJK>
+0xBCA6	0x6190	# <CJK>
+0xBCA7	0x61AB	# <CJK>
+0xBCA8	0x618E	# <CJK>
+0xBCA9	0x61AC	# <CJK>
+0xBCAA	0x619A	# <CJK>
+0xBCAB	0x61A4	# <CJK>
+0xBCAC	0x6194	# <CJK>
+0xBCAD	0x61AE	# <CJK>
+0xBCAE	0x622E	# <CJK>
+0xBCAF	0x6469	# <CJK>
+0xBCB0	0x646F	# <CJK>
+0xBCB1	0x6479	# <CJK>
+0xBCB2	0x649E	# <CJK>
+0xBCB3	0x64B2	# <CJK>
+0xBCB4	0x6488	# <CJK>
+0xBCB5	0x6490	# <CJK>
+0xBCB6	0x64B0	# <CJK>
+0xBCB7	0x64A5	# <CJK>
+0xBCB8	0x6493	# <CJK>
+0xBCB9	0x6495	# <CJK>
+0xBCBA	0x64A9	# <CJK>
+0xBCBB	0x6492	# <CJK>
+0xBCBC	0x64AE	# <CJK>
+0xBCBD	0x64AD	# <CJK>
+0xBCBE	0x64AB	# <CJK>
+0xBCBF	0x649A	# <CJK>
+0xBCC0	0x64AC	# <CJK>
+0xBCC1	0x6499	# <CJK>
+0xBCC2	0x64A2	# <CJK>
+0xBCC3	0x64B3	# <CJK>
+0xBCC4	0x6575	# <CJK>
+0xBCC5	0x6577	# <CJK>
+0xBCC6	0x6578	# <CJK>
+0xBCC7	0x66AE	# <CJK>
+0xBCC8	0x66AB	# <CJK>
+0xBCC9	0x66B4	# <CJK>
+0xBCCA	0x66B1	# <CJK>
+0xBCCB	0x6A23	# <CJK>
+0xBCCC	0x6A1F	# <CJK>
+0xBCCD	0x69E8	# <CJK>
+0xBCCE	0x6A01	# <CJK>
+0xBCCF	0x6A1E	# <CJK>
+0xBCD0	0x6A19	# <CJK>
+0xBCD1	0x69FD	# <CJK>
+0xBCD2	0x6A21	# <CJK>
+0xBCD3	0x6A13	# <CJK>
+0xBCD4	0x6A0A	# <CJK>
+0xBCD5	0x69F3	# <CJK>
+0xBCD6	0x6A02	# <CJK>
+0xBCD7	0x6A05	# <CJK>
+0xBCD8	0x69ED	# <CJK>
+0xBCD9	0x6A11	# <CJK>
+0xBCDA	0x6B50	# <CJK>
+0xBCDB	0x6B4E	# <CJK>
+0xBCDC	0x6BA4	# <CJK>
+0xBCDD	0x6BC5	# <CJK>
+0xBCDE	0x6BC6	# <CJK>
+0xBCDF	0x6F3F	# <CJK>
+0xBCE0	0x6F7C	# <CJK>
+0xBCE1	0x6F84	# <CJK>
+0xBCE2	0x6F51	# <CJK>
+0xBCE3	0x6F66	# <CJK>
+0xBCE4	0x6F54	# <CJK>
+0xBCE5	0x6F86	# <CJK>
+0xBCE6	0x6F6D	# <CJK>
+0xBCE7	0x6F5B	# <CJK>
+0xBCE8	0x6F78	# <CJK>
+0xBCE9	0x6F6E	# <CJK>
+0xBCEA	0x6F8E	# <CJK>
+0xBCEB	0x6F7A	# <CJK>
+0xBCEC	0x6F70	# <CJK>
+0xBCED	0x6F64	# <CJK>
+0xBCEE	0x6F97	# <CJK>
+0xBCEF	0x6F58	# <CJK>
+0xBCF0	0x6ED5	# <CJK>
+0xBCF1	0x6F6F	# <CJK>
+0xBCF2	0x6F60	# <CJK>
+0xBCF3	0x6F5F	# <CJK>
+0xBCF4	0x719F	# <CJK>
+0xBCF5	0x71AC	# <CJK>
+0xBCF6	0x71B1	# <CJK>
+0xBCF7	0x71A8	# <CJK>
+0xBCF8	0x7256	# <CJK>
+0xBCF9	0x729B	# <CJK>
+0xBCFA	0x734E	# <CJK>
+0xBCFB	0x7357	# <CJK>
+0xBCFC	0x7469	# <CJK>
+0xBCFD	0x748B	# <CJK>
+0xBCFE	0x7483	# <CJK>
+0xBD40	0x747E	# <CJK>
+0xBD41	0x7480	# <CJK>
+0xBD42	0x757F	# <CJK>
+0xBD43	0x7620	# <CJK>
+0xBD44	0x7629	# <CJK>
+0xBD45	0x761F	# <CJK>
+0xBD46	0x7624	# <CJK>
+0xBD47	0x7626	# <CJK>
+0xBD48	0x7621	# <CJK>
+0xBD49	0x7622	# <CJK>
+0xBD4A	0x769A	# <CJK>
+0xBD4B	0x76BA	# <CJK>
+0xBD4C	0x76E4	# <CJK>
+0xBD4D	0x778E	# <CJK>
+0xBD4E	0x7787	# <CJK>
+0xBD4F	0x778C	# <CJK>
+0xBD50	0x7791	# <CJK>
+0xBD51	0x778B	# <CJK>
+0xBD52	0x78CB	# <CJK>
+0xBD53	0x78C5	# <CJK>
+0xBD54	0x78BA	# <CJK>
+0xBD55	0x78CA	# <CJK>
+0xBD56	0x78BE	# <CJK>
+0xBD57	0x78D5	# <CJK>
+0xBD58	0x78BC	# <CJK>
+0xBD59	0x78D0	# <CJK>
+0xBD5A	0x7A3F	# <CJK>
+0xBD5B	0x7A3C	# <CJK>
+0xBD5C	0x7A40	# <CJK>
+0xBD5D	0x7A3D	# <CJK>
+0xBD5E	0x7A37	# <CJK>
+0xBD5F	0x7A3B	# <CJK>
+0xBD60	0x7AAF	# <CJK>
+0xBD61	0x7AAE	# <CJK>
+0xBD62	0x7BAD	# <CJK>
+0xBD63	0x7BB1	# <CJK>
+0xBD64	0x7BC4	# <CJK>
+0xBD65	0x7BB4	# <CJK>
+0xBD66	0x7BC6	# <CJK>
+0xBD67	0x7BC7	# <CJK>
+0xBD68	0x7BC1	# <CJK>
+0xBD69	0x7BA0	# <CJK>
+0xBD6A	0x7BCC	# <CJK>
+0xBD6B	0x7CCA	# <CJK>
+0xBD6C	0x7DE0	# <CJK>
+0xBD6D	0x7DF4	# <CJK>
+0xBD6E	0x7DEF	# <CJK>
+0xBD6F	0x7DFB	# <CJK>
+0xBD70	0x7DD8	# <CJK>
+0xBD71	0x7DEC	# <CJK>
+0xBD72	0x7DDD	# <CJK>
+0xBD73	0x7DE8	# <CJK>
+0xBD74	0x7DE3	# <CJK>
+0xBD75	0x7DDA	# <CJK>
+0xBD76	0x7DDE	# <CJK>
+0xBD77	0x7DE9	# <CJK>
+0xBD78	0x7D9E	# <CJK>
+0xBD79	0x7DD9	# <CJK>
+0xBD7A	0x7DF2	# <CJK>
+0xBD7B	0x7DF9	# <CJK>
+0xBD7C	0x7F75	# <CJK>
+0xBD7D	0x7F77	# <CJK>
+0xBD7E	0x7FAF	# <CJK>
+0xBDA1	0x7FE9	# <CJK>
+0xBDA2	0x8026	# <CJK>
+0xBDA3	0x819B	# <CJK>
+0xBDA4	0x819C	# <CJK>
+0xBDA5	0x819D	# <CJK>
+0xBDA6	0x81A0	# <CJK>
+0xBDA7	0x819A	# <CJK>
+0xBDA8	0x8198	# <CJK>
+0xBDA9	0x8517	# <CJK>
+0xBDAA	0x853D	# <CJK>
+0xBDAB	0x851A	# <CJK>
+0xBDAC	0x84EE	# <CJK>
+0xBDAD	0x852C	# <CJK>
+0xBDAE	0x852D	# <CJK>
+0xBDAF	0x8513	# <CJK>
+0xBDB0	0x8511	# <CJK>
+0xBDB1	0x8523	# <CJK>
+0xBDB2	0x8521	# <CJK>
+0xBDB3	0x8514	# <CJK>
+0xBDB4	0x84EC	# <CJK>
+0xBDB5	0x8525	# <CJK>
+0xBDB6	0x84FF	# <CJK>
+0xBDB7	0x8506	# <CJK>
+0xBDB8	0x8782	# <CJK>
+0xBDB9	0x8774	# <CJK>
+0xBDBA	0x8776	# <CJK>
+0xBDBB	0x8760	# <CJK>
+0xBDBC	0x8766	# <CJK>
+0xBDBD	0x8778	# <CJK>
+0xBDBE	0x8768	# <CJK>
+0xBDBF	0x8759	# <CJK>
+0xBDC0	0x8757	# <CJK>
+0xBDC1	0x874C	# <CJK>
+0xBDC2	0x8753	# <CJK>
+0xBDC3	0x885B	# <CJK>
+0xBDC4	0x885D	# <CJK>
+0xBDC5	0x8910	# <CJK>
+0xBDC6	0x8907	# <CJK>
+0xBDC7	0x8912	# <CJK>
+0xBDC8	0x8913	# <CJK>
+0xBDC9	0x8915	# <CJK>
+0xBDCA	0x890A	# <CJK>
+0xBDCB	0x8ABC	# <CJK>
+0xBDCC	0x8AD2	# <CJK>
+0xBDCD	0x8AC7	# <CJK>
+0xBDCE	0x8AC4	# <CJK>
+0xBDCF	0x8A95	# <CJK>
+0xBDD0	0x8ACB	# <CJK>
+0xBDD1	0x8AF8	# <CJK>
+0xBDD2	0x8AB2	# <CJK>
+0xBDD3	0x8AC9	# <CJK>
+0xBDD4	0x8AC2	# <CJK>
+0xBDD5	0x8ABF	# <CJK>
+0xBDD6	0x8AB0	# <CJK>
+0xBDD7	0x8AD6	# <CJK>
+0xBDD8	0x8ACD	# <CJK>
+0xBDD9	0x8AB6	# <CJK>
+0xBDDA	0x8AB9	# <CJK>
+0xBDDB	0x8ADB	# <CJK>
+0xBDDC	0x8C4C	# <CJK>
+0xBDDD	0x8C4E	# <CJK>
+0xBDDE	0x8C6C	# <CJK>
+0xBDDF	0x8CE0	# <CJK>
+0xBDE0	0x8CDE	# <CJK>
+0xBDE1	0x8CE6	# <CJK>
+0xBDE2	0x8CE4	# <CJK>
+0xBDE3	0x8CEC	# <CJK>
+0xBDE4	0x8CED	# <CJK>
+0xBDE5	0x8CE2	# <CJK>
+0xBDE6	0x8CE3	# <CJK>
+0xBDE7	0x8CDC	# <CJK>
+0xBDE8	0x8CEA	# <CJK>
+0xBDE9	0x8CE1	# <CJK>
+0xBDEA	0x8D6D	# <CJK>
+0xBDEB	0x8D9F	# <CJK>
+0xBDEC	0x8DA3	# <CJK>
+0xBDED	0x8E2B	# <CJK>
+0xBDEE	0x8E10	# <CJK>
+0xBDEF	0x8E1D	# <CJK>
+0xBDF0	0x8E22	# <CJK>
+0xBDF1	0x8E0F	# <CJK>
+0xBDF2	0x8E29	# <CJK>
+0xBDF3	0x8E1F	# <CJK>
+0xBDF4	0x8E21	# <CJK>
+0xBDF5	0x8E1E	# <CJK>
+0xBDF6	0x8EBA	# <CJK>
+0xBDF7	0x8F1D	# <CJK>
+0xBDF8	0x8F1B	# <CJK>
+0xBDF9	0x8F1F	# <CJK>
+0xBDFA	0x8F29	# <CJK>
+0xBDFB	0x8F26	# <CJK>
+0xBDFC	0x8F2A	# <CJK>
+0xBDFD	0x8F1C	# <CJK>
+0xBDFE	0x8F1E	# <CJK>
+0xBE40	0x8F25	# <CJK>
+0xBE41	0x9069	# <CJK>
+0xBE42	0x906E	# <CJK>
+0xBE43	0x9068	# <CJK>
+0xBE44	0x906D	# <CJK>
+0xBE45	0x9077	# <CJK>
+0xBE46	0x9130	# <CJK>
+0xBE47	0x912D	# <CJK>
+0xBE48	0x9127	# <CJK>
+0xBE49	0x9131	# <CJK>
+0xBE4A	0x9187	# <CJK>
+0xBE4B	0x9189	# <CJK>
+0xBE4C	0x918B	# <CJK>
+0xBE4D	0x9183	# <CJK>
+0xBE4E	0x92C5	# <CJK>
+0xBE4F	0x92BB	# <CJK>
+0xBE50	0x92B7	# <CJK>
+0xBE51	0x92EA	# <CJK>
+0xBE52	0x92AC	# <CJK>
+0xBE53	0x92E4	# <CJK>
+0xBE54	0x92C1	# <CJK>
+0xBE55	0x92B3	# <CJK>
+0xBE56	0x92BC	# <CJK>
+0xBE57	0x92D2	# <CJK>
+0xBE58	0x92C7	# <CJK>
+0xBE59	0x92F0	# <CJK>
+0xBE5A	0x92B2	# <CJK>
+0xBE5B	0x95AD	# <CJK>
+0xBE5C	0x95B1	# <CJK>
+0xBE5D	0x9704	# <CJK>
+0xBE5E	0x9706	# <CJK>
+0xBE5F	0x9707	# <CJK>
+0xBE60	0x9709	# <CJK>
+0xBE61	0x9760	# <CJK>
+0xBE62	0x978D	# <CJK>
+0xBE63	0x978B	# <CJK>
+0xBE64	0x978F	# <CJK>
+0xBE65	0x9821	# <CJK>
+0xBE66	0x982B	# <CJK>
+0xBE67	0x981C	# <CJK>
+0xBE68	0x98B3	# <CJK>
+0xBE69	0x990A	# <CJK>
+0xBE6A	0x9913	# <CJK>
+0xBE6B	0x9912	# <CJK>
+0xBE6C	0x9918	# <CJK>
+0xBE6D	0x99DD	# <CJK>
+0xBE6E	0x99D0	# <CJK>
+0xBE6F	0x99DF	# <CJK>
+0xBE70	0x99DB	# <CJK>
+0xBE71	0x99D1	# <CJK>
+0xBE72	0x99D5	# <CJK>
+0xBE73	0x99D2	# <CJK>
+0xBE74	0x99D9	# <CJK>
+0xBE75	0x9AB7	# <CJK>
+0xBE76	0x9AEE	# <CJK>
+0xBE77	0x9AEF	# <CJK>
+0xBE78	0x9B27	# <CJK>
+0xBE79	0x9B45	# <CJK>
+0xBE7A	0x9B44	# <CJK>
+0xBE7B	0x9B77	# <CJK>
+0xBE7C	0x9B6F	# <CJK>
+0xBE7D	0x9D06	# <CJK>
+0xBE7E	0x9D09	# <CJK>
+0xBEA1	0x9D03	# <CJK>
+0xBEA2	0x9EA9	# <CJK>
+0xBEA3	0x9EBE	# <CJK>
+0xBEA4	0x9ECE	# <CJK>
+0xBEA5	0x58A8	# <CJK>
+0xBEA6	0x9F52	# <CJK>
+0xBEA7	0x5112	# <CJK>
+0xBEA8	0x5118	# <CJK>
+0xBEA9	0x5114	# <CJK>
+0xBEAA	0x5110	# <CJK>
+0xBEAB	0x5115	# <CJK>
+0xBEAC	0x5180	# <CJK>
+0xBEAD	0x51AA	# <CJK>
+0xBEAE	0x51DD	# <CJK>
+0xBEAF	0x5291	# <CJK>
+0xBEB0	0x5293	# <CJK>
+0xBEB1	0x52F3	# <CJK>
+0xBEB2	0x5659	# <CJK>
+0xBEB3	0x566B	# <CJK>
+0xBEB4	0x5679	# <CJK>
+0xBEB5	0x5669	# <CJK>
+0xBEB6	0x5664	# <CJK>
+0xBEB7	0x5678	# <CJK>
+0xBEB8	0x566A	# <CJK>
+0xBEB9	0x5668	# <CJK>
+0xBEBA	0x5665	# <CJK>
+0xBEBB	0x5671	# <CJK>
+0xBEBC	0x566F	# <CJK>
+0xBEBD	0x566C	# <CJK>
+0xBEBE	0x5662	# <CJK>
+0xBEBF	0x5676	# <CJK>
+0xBEC0	0x58C1	# <CJK>
+0xBEC1	0x58BE	# <CJK>
+0xBEC2	0x58C7	# <CJK>
+0xBEC3	0x58C5	# <CJK>
+0xBEC4	0x596E	# <CJK>
+0xBEC5	0x5B1D	# <CJK>
+0xBEC6	0x5B34	# <CJK>
+0xBEC7	0x5B78	# <CJK>
+0xBEC8	0x5BF0	# <CJK>
+0xBEC9	0x5C0E	# <CJK>
+0xBECA	0x5F4A	# <CJK>
+0xBECB	0x61B2	# <CJK>
+0xBECC	0x6191	# <CJK>
+0xBECD	0x61A9	# <CJK>
+0xBECE	0x618A	# <CJK>
+0xBECF	0x61CD	# <CJK>
+0xBED0	0x61B6	# <CJK>
+0xBED1	0x61BE	# <CJK>
+0xBED2	0x61CA	# <CJK>
+0xBED3	0x61C8	# <CJK>
+0xBED4	0x6230	# <CJK>
+0xBED5	0x64C5	# <CJK>
+0xBED6	0x64C1	# <CJK>
+0xBED7	0x64CB	# <CJK>
+0xBED8	0x64BB	# <CJK>
+0xBED9	0x64BC	# <CJK>
+0xBEDA	0x64DA	# <CJK>
+0xBEDB	0x64C4	# <CJK>
+0xBEDC	0x64C7	# <CJK>
+0xBEDD	0x64C2	# <CJK>
+0xBEDE	0x64CD	# <CJK>
+0xBEDF	0x64BF	# <CJK>
+0xBEE0	0x64D2	# <CJK>
+0xBEE1	0x64D4	# <CJK>
+0xBEE2	0x64BE	# <CJK>
+0xBEE3	0x6574	# <CJK>
+0xBEE4	0x66C6	# <CJK>
+0xBEE5	0x66C9	# <CJK>
+0xBEE6	0x66B9	# <CJK>
+0xBEE7	0x66C4	# <CJK>
+0xBEE8	0x66C7	# <CJK>
+0xBEE9	0x66B8	# <CJK>
+0xBEEA	0x6A3D	# <CJK>
+0xBEEB	0x6A38	# <CJK>
+0xBEEC	0x6A3A	# <CJK>
+0xBEED	0x6A59	# <CJK>
+0xBEEE	0x6A6B	# <CJK>
+0xBEEF	0x6A58	# <CJK>
+0xBEF0	0x6A39	# <CJK>
+0xBEF1	0x6A44	# <CJK>
+0xBEF2	0x6A62	# <CJK>
+0xBEF3	0x6A61	# <CJK>
+0xBEF4	0x6A4B	# <CJK>
+0xBEF5	0x6A47	# <CJK>
+0xBEF6	0x6A35	# <CJK>
+0xBEF7	0x6A5F	# <CJK>
+0xBEF8	0x6A48	# <CJK>
+0xBEF9	0x6B59	# <CJK>
+0xBEFA	0x6B77	# <CJK>
+0xBEFB	0x6C05	# <CJK>
+0xBEFC	0x6FC2	# <CJK>
+0xBEFD	0x6FB1	# <CJK>
+0xBEFE	0x6FA1	# <CJK>
+0xBF40	0x6FC3	# <CJK>
+0xBF41	0x6FA4	# <CJK>
+0xBF42	0x6FC1	# <CJK>
+0xBF43	0x6FA7	# <CJK>
+0xBF44	0x6FB3	# <CJK>
+0xBF45	0x6FC0	# <CJK>
+0xBF46	0x6FB9	# <CJK>
+0xBF47	0x6FB6	# <CJK>
+0xBF48	0x6FA6	# <CJK>
+0xBF49	0x6FA0	# <CJK>
+0xBF4A	0x6FB4	# <CJK>
+0xBF4B	0x71BE	# <CJK>
+0xBF4C	0x71C9	# <CJK>
+0xBF4D	0x71D0	# <CJK>
+0xBF4E	0x71D2	# <CJK>
+0xBF4F	0x71C8	# <CJK>
+0xBF50	0x71D5	# <CJK>
+0xBF51	0x71B9	# <CJK>
+0xBF52	0x71CE	# <CJK>
+0xBF53	0x71D9	# <CJK>
+0xBF54	0x71DC	# <CJK>
+0xBF55	0x71C3	# <CJK>
+0xBF56	0x71C4	# <CJK>
+0xBF57	0x7368	# <CJK>
+0xBF58	0x749C	# <CJK>
+0xBF59	0x74A3	# <CJK>
+0xBF5A	0x7498	# <CJK>
+0xBF5B	0x749F	# <CJK>
+0xBF5C	0x749E	# <CJK>
+0xBF5D	0x74E2	# <CJK>
+0xBF5E	0x750C	# <CJK>
+0xBF5F	0x750D	# <CJK>
+0xBF60	0x7634	# <CJK>
+0xBF61	0x7638	# <CJK>
+0xBF62	0x763A	# <CJK>
+0xBF63	0x76E7	# <CJK>
+0xBF64	0x76E5	# <CJK>
+0xBF65	0x77A0	# <CJK>
+0xBF66	0x779E	# <CJK>
+0xBF67	0x779F	# <CJK>
+0xBF68	0x77A5	# <CJK>
+0xBF69	0x78E8	# <CJK>
+0xBF6A	0x78DA	# <CJK>
+0xBF6B	0x78EC	# <CJK>
+0xBF6C	0x78E7	# <CJK>
+0xBF6D	0x79A6	# <CJK>
+0xBF6E	0x7A4D	# <CJK>
+0xBF6F	0x7A4E	# <CJK>
+0xBF70	0x7A46	# <CJK>
+0xBF71	0x7A4C	# <CJK>
+0xBF72	0x7A4B	# <CJK>
+0xBF73	0x7ABA	# <CJK>
+0xBF74	0x7BD9	# <CJK>
+0xBF75	0x7C11	# <CJK>
+0xBF76	0x7BC9	# <CJK>
+0xBF77	0x7BE4	# <CJK>
+0xBF78	0x7BDB	# <CJK>
+0xBF79	0x7BE1	# <CJK>
+0xBF7A	0x7BE9	# <CJK>
+0xBF7B	0x7BE6	# <CJK>
+0xBF7C	0x7CD5	# <CJK>
+0xBF7D	0x7CD6	# <CJK>
+0xBF7E	0x7E0A	# <CJK>
+0xBFA1	0x7E11	# <CJK>
+0xBFA2	0x7E08	# <CJK>
+0xBFA3	0x7E1B	# <CJK>
+0xBFA4	0x7E23	# <CJK>
+0xBFA5	0x7E1E	# <CJK>
+0xBFA6	0x7E1D	# <CJK>
+0xBFA7	0x7E09	# <CJK>
+0xBFA8	0x7E10	# <CJK>
+0xBFA9	0x7F79	# <CJK>
+0xBFAA	0x7FB2	# <CJK>
+0xBFAB	0x7FF0	# <CJK>
+0xBFAC	0x7FF1	# <CJK>
+0xBFAD	0x7FEE	# <CJK>
+0xBFAE	0x8028	# <CJK>
+0xBFAF	0x81B3	# <CJK>
+0xBFB0	0x81A9	# <CJK>
+0xBFB1	0x81A8	# <CJK>
+0xBFB2	0x81FB	# <CJK>
+0xBFB3	0x8208	# <CJK>
+0xBFB4	0x8258	# <CJK>
+0xBFB5	0x8259	# <CJK>
+0xBFB6	0x854A	# <CJK>
+0xBFB7	0x8559	# <CJK>
+0xBFB8	0x8548	# <CJK>
+0xBFB9	0x8568	# <CJK>
+0xBFBA	0x8569	# <CJK>
+0xBFBB	0x8543	# <CJK>
+0xBFBC	0x8549	# <CJK>
+0xBFBD	0x856D	# <CJK>
+0xBFBE	0x856A	# <CJK>
+0xBFBF	0x855E	# <CJK>
+0xBFC0	0x8783	# <CJK>
+0xBFC1	0x879F	# <CJK>
+0xBFC2	0x879E	# <CJK>
+0xBFC3	0x87A2	# <CJK>
+0xBFC4	0x878D	# <CJK>
+0xBFC5	0x8861	# <CJK>
+0xBFC6	0x892A	# <CJK>
+0xBFC7	0x8932	# <CJK>
+0xBFC8	0x8925	# <CJK>
+0xBFC9	0x892B	# <CJK>
+0xBFCA	0x8921	# <CJK>
+0xBFCB	0x89AA	# <CJK>
+0xBFCC	0x89A6	# <CJK>
+0xBFCD	0x8AE6	# <CJK>
+0xBFCE	0x8AFA	# <CJK>
+0xBFCF	0x8AEB	# <CJK>
+0xBFD0	0x8AF1	# <CJK>
+0xBFD1	0x8B00	# <CJK>
+0xBFD2	0x8ADC	# <CJK>
+0xBFD3	0x8AE7	# <CJK>
+0xBFD4	0x8AEE	# <CJK>
+0xBFD5	0x8AFE	# <CJK>
+0xBFD6	0x8B01	# <CJK>
+0xBFD7	0x8B02	# <CJK>
+0xBFD8	0x8AF7	# <CJK>
+0xBFD9	0x8AED	# <CJK>
+0xBFDA	0x8AF3	# <CJK>
+0xBFDB	0x8AF6	# <CJK>
+0xBFDC	0x8AFC	# <CJK>
+0xBFDD	0x8C6B	# <CJK>
+0xBFDE	0x8C6D	# <CJK>
+0xBFDF	0x8C93	# <CJK>
+0xBFE0	0x8CF4	# <CJK>
+0xBFE1	0x8E44	# <CJK>
+0xBFE2	0x8E31	# <CJK>
+0xBFE3	0x8E34	# <CJK>
+0xBFE4	0x8E42	# <CJK>
+0xBFE5	0x8E39	# <CJK>
+0xBFE6	0x8E35	# <CJK>
+0xBFE7	0x8F3B	# <CJK>
+0xBFE8	0x8F2F	# <CJK>
+0xBFE9	0x8F38	# <CJK>
+0xBFEA	0x8F33	# <CJK>
+0xBFEB	0x8FA8	# <CJK>
+0xBFEC	0x8FA6	# <CJK>
+0xBFED	0x9075	# <CJK>
+0xBFEE	0x9074	# <CJK>
+0xBFEF	0x9078	# <CJK>
+0xBFF0	0x9072	# <CJK>
+0xBFF1	0x907C	# <CJK>
+0xBFF2	0x907A	# <CJK>
+0xBFF3	0x9134	# <CJK>
+0xBFF4	0x9192	# <CJK>
+0xBFF5	0x9320	# <CJK>
+0xBFF6	0x9336	# <CJK>
+0xBFF7	0x92F8	# <CJK>
+0xBFF8	0x9333	# <CJK>
+0xBFF9	0x932F	# <CJK>
+0xBFFA	0x9322	# <CJK>
+0xBFFB	0x92FC	# <CJK>
+0xBFFC	0x932B	# <CJK>
+0xBFFD	0x9304	# <CJK>
+0xBFFE	0x931A	# <CJK>
+0xC040	0x9310	# <CJK>
+0xC041	0x9326	# <CJK>
+0xC042	0x9321	# <CJK>
+0xC043	0x9315	# <CJK>
+0xC044	0x932E	# <CJK>
+0xC045	0x9319	# <CJK>
+0xC046	0x95BB	# <CJK>
+0xC047	0x96A7	# <CJK>
+0xC048	0x96A8	# <CJK>
+0xC049	0x96AA	# <CJK>
+0xC04A	0x96D5	# <CJK>
+0xC04B	0x970E	# <CJK>
+0xC04C	0x9711	# <CJK>
+0xC04D	0x9716	# <CJK>
+0xC04E	0x970D	# <CJK>
+0xC04F	0x9713	# <CJK>
+0xC050	0x970F	# <CJK>
+0xC051	0x975B	# <CJK>
+0xC052	0x975C	# <CJK>
+0xC053	0x9766	# <CJK>
+0xC054	0x9798	# <CJK>
+0xC055	0x9830	# <CJK>
+0xC056	0x9838	# <CJK>
+0xC057	0x983B	# <CJK>
+0xC058	0x9837	# <CJK>
+0xC059	0x982D	# <CJK>
+0xC05A	0x9839	# <CJK>
+0xC05B	0x9824	# <CJK>
+0xC05C	0x9910	# <CJK>
+0xC05D	0x9928	# <CJK>
+0xC05E	0x991E	# <CJK>
+0xC05F	0x991B	# <CJK>
+0xC060	0x9921	# <CJK>
+0xC061	0x991A	# <CJK>
+0xC062	0x99ED	# <CJK>
+0xC063	0x99E2	# <CJK>
+0xC064	0x99F1	# <CJK>
+0xC065	0x9AB8	# <CJK>
+0xC066	0x9ABC	# <CJK>
+0xC067	0x9AFB	# <CJK>
+0xC068	0x9AED	# <CJK>
+0xC069	0x9B28	# <CJK>
+0xC06A	0x9B91	# <CJK>
+0xC06B	0x9D15	# <CJK>
+0xC06C	0x9D23	# <CJK>
+0xC06D	0x9D26	# <CJK>
+0xC06E	0x9D28	# <CJK>
+0xC06F	0x9D12	# <CJK>
+0xC070	0x9D1B	# <CJK>
+0xC071	0x9ED8	# <CJK>
+0xC072	0x9ED4	# <CJK>
+0xC073	0x9F8D	# <CJK>
+0xC074	0x9F9C	# <CJK>
+0xC075	0x512A	# <CJK>
+0xC076	0x511F	# <CJK>
+0xC077	0x5121	# <CJK>
+0xC078	0x5132	# <CJK>
+0xC079	0x52F5	# <CJK>
+0xC07A	0x568E	# <CJK>
+0xC07B	0x5680	# <CJK>
+0xC07C	0x5690	# <CJK>
+0xC07D	0x5685	# <CJK>
+0xC07E	0x5687	# <CJK>
+0xC0A1	0x568F	# <CJK>
+0xC0A2	0x58D5	# <CJK>
+0xC0A3	0x58D3	# <CJK>
+0xC0A4	0x58D1	# <CJK>
+0xC0A5	0x58CE	# <CJK>
+0xC0A6	0x5B30	# <CJK>
+0xC0A7	0x5B2A	# <CJK>
+0xC0A8	0x5B24	# <CJK>
+0xC0A9	0x5B7A	# <CJK>
+0xC0AA	0x5C37	# <CJK>
+0xC0AB	0x5C68	# <CJK>
+0xC0AC	0x5DBC	# <CJK>
+0xC0AD	0x5DBA	# <CJK>
+0xC0AE	0x5DBD	# <CJK>
+0xC0AF	0x5DB8	# <CJK>
+0xC0B0	0x5E6B	# <CJK>
+0xC0B1	0x5F4C	# <CJK>
+0xC0B2	0x5FBD	# <CJK>
+0xC0B3	0x61C9	# <CJK>
+0xC0B4	0x61C2	# <CJK>
+0xC0B5	0x61C7	# <CJK>
+0xC0B6	0x61E6	# <CJK>
+0xC0B7	0x61CB	# <CJK>
+0xC0B8	0x6232	# <CJK>
+0xC0B9	0x6234	# <CJK>
+0xC0BA	0x64CE	# <CJK>
+0xC0BB	0x64CA	# <CJK>
+0xC0BC	0x64D8	# <CJK>
+0xC0BD	0x64E0	# <CJK>
+0xC0BE	0x64F0	# <CJK>
+0xC0BF	0x64E6	# <CJK>
+0xC0C0	0x64EC	# <CJK>
+0xC0C1	0x64F1	# <CJK>
+0xC0C2	0x64E2	# <CJK>
+0xC0C3	0x64ED	# <CJK>
+0xC0C4	0x6582	# <CJK>
+0xC0C5	0x6583	# <CJK>
+0xC0C6	0x66D9	# <CJK>
+0xC0C7	0x66D6	# <CJK>
+0xC0C8	0x6A80	# <CJK>
+0xC0C9	0x6A94	# <CJK>
+0xC0CA	0x6A84	# <CJK>
+0xC0CB	0x6AA2	# <CJK>
+0xC0CC	0x6A9C	# <CJK>
+0xC0CD	0x6ADB	# <CJK>
+0xC0CE	0x6AA3	# <CJK>
+0xC0CF	0x6A7E	# <CJK>
+0xC0D0	0x6A97	# <CJK>
+0xC0D1	0x6A90	# <CJK>
+0xC0D2	0x6AA0	# <CJK>
+0xC0D3	0x6B5C	# <CJK>
+0xC0D4	0x6BAE	# <CJK>
+0xC0D5	0x6BDA	# <CJK>
+0xC0D6	0x6C08	# <CJK>
+0xC0D7	0x6FD8	# <CJK>
+0xC0D8	0x6FF1	# <CJK>
+0xC0D9	0x6FDF	# <CJK>
+0xC0DA	0x6FE0	# <CJK>
+0xC0DB	0x6FDB	# <CJK>
+0xC0DC	0x6FE4	# <CJK>
+0xC0DD	0x6FEB	# <CJK>
+0xC0DE	0x6FEF	# <CJK>
+0xC0DF	0x6F80	# <CJK>
+0xC0E0	0x6FEC	# <CJK>
+0xC0E1	0x6FE1	# <CJK>
+0xC0E2	0x6FE9	# <CJK>
+0xC0E3	0x6FD5	# <CJK>
+0xC0E4	0x6FEE	# <CJK>
+0xC0E5	0x6FF0	# <CJK>
+0xC0E6	0x71E7	# <CJK>
+0xC0E7	0x71DF	# <CJK>
+0xC0E8	0x71EE	# <CJK>
+0xC0E9	0x71E6	# <CJK>
+0xC0EA	0x71E5	# <CJK>
+0xC0EB	0x71ED	# <CJK>
+0xC0EC	0x71EC	# <CJK>
+0xC0ED	0x71F4	# <CJK>
+0xC0EE	0x71E0	# <CJK>
+0xC0EF	0x7235	# <CJK>
+0xC0F0	0x7246	# <CJK>
+0xC0F1	0x7370	# <CJK>
+0xC0F2	0x7372	# <CJK>
+0xC0F3	0x74A9	# <CJK>
+0xC0F4	0x74B0	# <CJK>
+0xC0F5	0x74A6	# <CJK>
+0xC0F6	0x74A8	# <CJK>
+0xC0F7	0x7646	# <CJK>
+0xC0F8	0x7642	# <CJK>
+0xC0F9	0x764C	# <CJK>
+0xC0FA	0x76EA	# <CJK>
+0xC0FB	0x77B3	# <CJK>
+0xC0FC	0x77AA	# <CJK>
+0xC0FD	0x77B0	# <CJK>
+0xC0FE	0x77AC	# <CJK>
+0xC140	0x77A7	# <CJK>
+0xC141	0x77AD	# <CJK>
+0xC142	0x77EF	# <CJK>
+0xC143	0x78F7	# <CJK>
+0xC144	0x78FA	# <CJK>
+0xC145	0x78F4	# <CJK>
+0xC146	0x78EF	# <CJK>
+0xC147	0x7901	# <CJK>
+0xC148	0x79A7	# <CJK>
+0xC149	0x79AA	# <CJK>
+0xC14A	0x7A57	# <CJK>
+0xC14B	0x7ABF	# <CJK>
+0xC14C	0x7C07	# <CJK>
+0xC14D	0x7C0D	# <CJK>
+0xC14E	0x7BFE	# <CJK>
+0xC14F	0x7BF7	# <CJK>
+0xC150	0x7C0C	# <CJK>
+0xC151	0x7BE0	# <CJK>
+0xC152	0x7CE0	# <CJK>
+0xC153	0x7CDC	# <CJK>
+0xC154	0x7CDE	# <CJK>
+0xC155	0x7CE2	# <CJK>
+0xC156	0x7CDF	# <CJK>
+0xC157	0x7CD9	# <CJK>
+0xC158	0x7CDD	# <CJK>
+0xC159	0x7E2E	# <CJK>
+0xC15A	0x7E3E	# <CJK>
+0xC15B	0x7E46	# <CJK>
+0xC15C	0x7E37	# <CJK>
+0xC15D	0x7E32	# <CJK>
+0xC15E	0x7E43	# <CJK>
+0xC15F	0x7E2B	# <CJK>
+0xC160	0x7E3D	# <CJK>
+0xC161	0x7E31	# <CJK>
+0xC162	0x7E45	# <CJK>
+0xC163	0x7E41	# <CJK>
+0xC164	0x7E34	# <CJK>
+0xC165	0x7E39	# <CJK>
+0xC166	0x7E48	# <CJK>
+0xC167	0x7E35	# <CJK>
+0xC168	0x7E3F	# <CJK>
+0xC169	0x7E2F	# <CJK>
+0xC16A	0x7F44	# <CJK>
+0xC16B	0x7FF3	# <CJK>
+0xC16C	0x7FFC	# <CJK>
+0xC16D	0x8071	# <CJK>
+0xC16E	0x8072	# <CJK>
+0xC16F	0x8070	# <CJK>
+0xC170	0x806F	# <CJK>
+0xC171	0x8073	# <CJK>
+0xC172	0x81C6	# <CJK>
+0xC173	0x81C3	# <CJK>
+0xC174	0x81BA	# <CJK>
+0xC175	0x81C2	# <CJK>
+0xC176	0x81C0	# <CJK>
+0xC177	0x81BF	# <CJK>
+0xC178	0x81BD	# <CJK>
+0xC179	0x81C9	# <CJK>
+0xC17A	0x81BE	# <CJK>
+0xC17B	0x81E8	# <CJK>
+0xC17C	0x8209	# <CJK>
+0xC17D	0x8271	# <CJK>
+0xC17E	0x85AA	# <CJK>
+0xC1A1	0x8584	# <CJK>
+0xC1A2	0x857E	# <CJK>
+0xC1A3	0x859C	# <CJK>
+0xC1A4	0x8591	# <CJK>
+0xC1A5	0x8594	# <CJK>
+0xC1A6	0x85AF	# <CJK>
+0xC1A7	0x859B	# <CJK>
+0xC1A8	0x8587	# <CJK>
+0xC1A9	0x85A8	# <CJK>
+0xC1AA	0x858A	# <CJK>
+0xC1AB	0x8667	# <CJK>
+0xC1AC	0x87C0	# <CJK>
+0xC1AD	0x87D1	# <CJK>
+0xC1AE	0x87B3	# <CJK>
+0xC1AF	0x87D2	# <CJK>
+0xC1B0	0x87C6	# <CJK>
+0xC1B1	0x87AB	# <CJK>
+0xC1B2	0x87BB	# <CJK>
+0xC1B3	0x87BA	# <CJK>
+0xC1B4	0x87C8	# <CJK>
+0xC1B5	0x87CB	# <CJK>
+0xC1B6	0x893B	# <CJK>
+0xC1B7	0x8936	# <CJK>
+0xC1B8	0x8944	# <CJK>
+0xC1B9	0x8938	# <CJK>
+0xC1BA	0x893D	# <CJK>
+0xC1BB	0x89AC	# <CJK>
+0xC1BC	0x8B0E	# <CJK>
+0xC1BD	0x8B17	# <CJK>
+0xC1BE	0x8B19	# <CJK>
+0xC1BF	0x8B1B	# <CJK>
+0xC1C0	0x8B0A	# <CJK>
+0xC1C1	0x8B20	# <CJK>
+0xC1C2	0x8B1D	# <CJK>
+0xC1C3	0x8B04	# <CJK>
+0xC1C4	0x8B10	# <CJK>
+0xC1C5	0x8C41	# <CJK>
+0xC1C6	0x8C3F	# <CJK>
+0xC1C7	0x8C73	# <CJK>
+0xC1C8	0x8CFA	# <CJK>
+0xC1C9	0x8CFD	# <CJK>
+0xC1CA	0x8CFC	# <CJK>
+0xC1CB	0x8CF8	# <CJK>
+0xC1CC	0x8CFB	# <CJK>
+0xC1CD	0x8DA8	# <CJK>
+0xC1CE	0x8E49	# <CJK>
+0xC1CF	0x8E4B	# <CJK>
+0xC1D0	0x8E48	# <CJK>
+0xC1D1	0x8E4A	# <CJK>
+0xC1D2	0x8F44	# <CJK>
+0xC1D3	0x8F3E	# <CJK>
+0xC1D4	0x8F42	# <CJK>
+0xC1D5	0x8F45	# <CJK>
+0xC1D6	0x8F3F	# <CJK>
+0xC1D7	0x907F	# <CJK>
+0xC1D8	0x907D	# <CJK>
+0xC1D9	0x9084	# <CJK>
+0xC1DA	0x9081	# <CJK>
+0xC1DB	0x9082	# <CJK>
+0xC1DC	0x9080	# <CJK>
+0xC1DD	0x9139	# <CJK>
+0xC1DE	0x91A3	# <CJK>
+0xC1DF	0x919E	# <CJK>
+0xC1E0	0x919C	# <CJK>
+0xC1E1	0x934D	# <CJK>
+0xC1E2	0x9382	# <CJK>
+0xC1E3	0x9328	# <CJK>
+0xC1E4	0x9375	# <CJK>
+0xC1E5	0x934A	# <CJK>
+0xC1E6	0x9365	# <CJK>
+0xC1E7	0x934B	# <CJK>
+0xC1E8	0x9318	# <CJK>
+0xC1E9	0x937E	# <CJK>
+0xC1EA	0x936C	# <CJK>
+0xC1EB	0x935B	# <CJK>
+0xC1EC	0x9370	# <CJK>
+0xC1ED	0x935A	# <CJK>
+0xC1EE	0x9354	# <CJK>
+0xC1EF	0x95CA	# <CJK>
+0xC1F0	0x95CB	# <CJK>
+0xC1F1	0x95CC	# <CJK>
+0xC1F2	0x95C8	# <CJK>
+0xC1F3	0x95C6	# <CJK>
+0xC1F4	0x96B1	# <CJK>
+0xC1F5	0x96B8	# <CJK>
+0xC1F6	0x96D6	# <CJK>
+0xC1F7	0x971C	# <CJK>
+0xC1F8	0x971E	# <CJK>
+0xC1F9	0x97A0	# <CJK>
+0xC1FA	0x97D3	# <CJK>
+0xC1FB	0x9846	# <CJK>
+0xC1FC	0x98B6	# <CJK>
+0xC1FD	0x9935	# <CJK>
+0xC1FE	0x9A01	# <CJK>
+0xC240	0x99FF	# <CJK>
+0xC241	0x9BAE	# <CJK>
+0xC242	0x9BAB	# <CJK>
+0xC243	0x9BAA	# <CJK>
+0xC244	0x9BAD	# <CJK>
+0xC245	0x9D3B	# <CJK>
+0xC246	0x9D3F	# <CJK>
+0xC247	0x9E8B	# <CJK>
+0xC248	0x9ECF	# <CJK>
+0xC249	0x9EDE	# <CJK>
+0xC24A	0x9EDC	# <CJK>
+0xC24B	0x9EDD	# <CJK>
+0xC24C	0x9EDB	# <CJK>
+0xC24D	0x9F3E	# <CJK>
+0xC24E	0x9F4B	# <CJK>
+0xC24F	0x53E2	# <CJK>
+0xC250	0x5695	# <CJK>
+0xC251	0x56AE	# <CJK>
+0xC252	0x58D9	# <CJK>
+0xC253	0x58D8	# <CJK>
+0xC254	0x5B38	# <CJK>
+0xC255	0x5F5D	# <CJK>
+0xC256	0x61E3	# <CJK>
+0xC257	0x6233	# <CJK>
+0xC258	0x64F4	# <CJK>
+0xC259	0x64F2	# <CJK>
+0xC25A	0x64FE	# <CJK>
+0xC25B	0x6506	# <CJK>
+0xC25C	0x64FA	# <CJK>
+0xC25D	0x64FB	# <CJK>
+0xC25E	0x64F7	# <CJK>
+0xC25F	0x65B7	# <CJK>
+0xC260	0x66DC	# <CJK>
+0xC261	0x6726	# <CJK>
+0xC262	0x6AB3	# <CJK>
+0xC263	0x6AAC	# <CJK>
+0xC264	0x6AC3	# <CJK>
+0xC265	0x6ABB	# <CJK>
+0xC266	0x6AB8	# <CJK>
+0xC267	0x6AC2	# <CJK>
+0xC268	0x6AAE	# <CJK>
+0xC269	0x6AAF	# <CJK>
+0xC26A	0x6B5F	# <CJK>
+0xC26B	0x6B78	# <CJK>
+0xC26C	0x6BAF	# <CJK>
+0xC26D	0x7009	# <CJK>
+0xC26E	0x700B	# <CJK>
+0xC26F	0x6FFE	# <CJK>
+0xC270	0x7006	# <CJK>
+0xC271	0x6FFA	# <CJK>
+0xC272	0x7011	# <CJK>
+0xC273	0x700F	# <CJK>
+0xC274	0x71FB	# <CJK>
+0xC275	0x71FC	# <CJK>
+0xC276	0x71FE	# <CJK>
+0xC277	0x71F8	# <CJK>
+0xC278	0x7377	# <CJK>
+0xC279	0x7375	# <CJK>
+0xC27A	0x74A7	# <CJK>
+0xC27B	0x74BF	# <CJK>
+0xC27C	0x7515	# <CJK>
+0xC27D	0x7656	# <CJK>
+0xC27E	0x7658	# <CJK>
+0xC2A1	0x7652	# <CJK>
+0xC2A2	0x77BD	# <CJK>
+0xC2A3	0x77BF	# <CJK>
+0xC2A4	0x77BB	# <CJK>
+0xC2A5	0x77BC	# <CJK>
+0xC2A6	0x790E	# <CJK>
+0xC2A7	0x79AE	# <CJK>
+0xC2A8	0x7A61	# <CJK>
+0xC2A9	0x7A62	# <CJK>
+0xC2AA	0x7A60	# <CJK>
+0xC2AB	0x7AC4	# <CJK>
+0xC2AC	0x7AC5	# <CJK>
+0xC2AD	0x7C2B	# <CJK>
+0xC2AE	0x7C27	# <CJK>
+0xC2AF	0x7C2A	# <CJK>
+0xC2B0	0x7C1E	# <CJK>
+0xC2B1	0x7C23	# <CJK>
+0xC2B2	0x7C21	# <CJK>
+0xC2B3	0x7CE7	# <CJK>
+0xC2B4	0x7E54	# <CJK>
+0xC2B5	0x7E55	# <CJK>
+0xC2B6	0x7E5E	# <CJK>
+0xC2B7	0x7E5A	# <CJK>
+0xC2B8	0x7E61	# <CJK>
+0xC2B9	0x7E52	# <CJK>
+0xC2BA	0x7E59	# <CJK>
+0xC2BB	0x7F48	# <CJK>
+0xC2BC	0x7FF9	# <CJK>
+0xC2BD	0x7FFB	# <CJK>
+0xC2BE	0x8077	# <CJK>
+0xC2BF	0x8076	# <CJK>
+0xC2C0	0x81CD	# <CJK>
+0xC2C1	0x81CF	# <CJK>
+0xC2C2	0x820A	# <CJK>
+0xC2C3	0x85CF	# <CJK>
+0xC2C4	0x85A9	# <CJK>
+0xC2C5	0x85CD	# <CJK>
+0xC2C6	0x85D0	# <CJK>
+0xC2C7	0x85C9	# <CJK>
+0xC2C8	0x85B0	# <CJK>
+0xC2C9	0x85BA	# <CJK>
+0xC2CA	0x85B9	# <CJK>
+0xC2CB	0x85A6	# <CJK>
+0xC2CC	0x87EF	# <CJK>
+0xC2CD	0x87EC	# <CJK>
+0xC2CE	0x87F2	# <CJK>
+0xC2CF	0x87E0	# <CJK>
+0xC2D0	0x8986	# <CJK>
+0xC2D1	0x89B2	# <CJK>
+0xC2D2	0x89F4	# <CJK>
+0xC2D3	0x8B28	# <CJK>
+0xC2D4	0x8B39	# <CJK>
+0xC2D5	0x8B2C	# <CJK>
+0xC2D6	0x8B2B	# <CJK>
+0xC2D7	0x8C50	# <CJK>
+0xC2D8	0x8D05	# <CJK>
+0xC2D9	0x8E59	# <CJK>
+0xC2DA	0x8E63	# <CJK>
+0xC2DB	0x8E66	# <CJK>
+0xC2DC	0x8E64	# <CJK>
+0xC2DD	0x8E5F	# <CJK>
+0xC2DE	0x8E55	# <CJK>
+0xC2DF	0x8EC0	# <CJK>
+0xC2E0	0x8F49	# <CJK>
+0xC2E1	0x8F4D	# <CJK>
+0xC2E2	0x9087	# <CJK>
+0xC2E3	0x9083	# <CJK>
+0xC2E4	0x9088	# <CJK>
+0xC2E5	0x91AB	# <CJK>
+0xC2E6	0x91AC	# <CJK>
+0xC2E7	0x91D0	# <CJK>
+0xC2E8	0x9394	# <CJK>
+0xC2E9	0x938A	# <CJK>
+0xC2EA	0x9396	# <CJK>
+0xC2EB	0x93A2	# <CJK>
+0xC2EC	0x93B3	# <CJK>
+0xC2ED	0x93AE	# <CJK>
+0xC2EE	0x93AC	# <CJK>
+0xC2EF	0x93B0	# <CJK>
+0xC2F0	0x9398	# <CJK>
+0xC2F1	0x939A	# <CJK>
+0xC2F2	0x9397	# <CJK>
+0xC2F3	0x95D4	# <CJK>
+0xC2F4	0x95D6	# <CJK>
+0xC2F5	0x95D0	# <CJK>
+0xC2F6	0x95D5	# <CJK>
+0xC2F7	0x96E2	# <CJK>
+0xC2F8	0x96DC	# <CJK>
+0xC2F9	0x96D9	# <CJK>
+0xC2FA	0x96DB	# <CJK>
+0xC2FB	0x96DE	# <CJK>
+0xC2FC	0x9724	# <CJK>
+0xC2FD	0x97A3	# <CJK>
+0xC2FE	0x97A6	# <CJK>
+0xC340	0x97AD	# <CJK>
+0xC341	0x97F9	# <CJK>
+0xC342	0x984D	# <CJK>
+0xC343	0x984F	# <CJK>
+0xC344	0x984C	# <CJK>
+0xC345	0x984E	# <CJK>
+0xC346	0x9853	# <CJK>
+0xC347	0x98BA	# <CJK>
+0xC348	0x993E	# <CJK>
+0xC349	0x993F	# <CJK>
+0xC34A	0x993D	# <CJK>
+0xC34B	0x992E	# <CJK>
+0xC34C	0x99A5	# <CJK>
+0xC34D	0x9A0E	# <CJK>
+0xC34E	0x9AC1	# <CJK>
+0xC34F	0x9B03	# <CJK>
+0xC350	0x9B06	# <CJK>
+0xC351	0x9B4F	# <CJK>
+0xC352	0x9B4E	# <CJK>
+0xC353	0x9B4D	# <CJK>
+0xC354	0x9BCA	# <CJK>
+0xC355	0x9BC9	# <CJK>
+0xC356	0x9BFD	# <CJK>
+0xC357	0x9BC8	# <CJK>
+0xC358	0x9BC0	# <CJK>
+0xC359	0x9D51	# <CJK>
+0xC35A	0x9D5D	# <CJK>
+0xC35B	0x9D60	# <CJK>
+0xC35C	0x9EE0	# <CJK>
+0xC35D	0x9F15	# <CJK>
+0xC35E	0x9F2C	# <CJK>
+0xC35F	0x5133	# <CJK>
+0xC360	0x56A5	# <CJK>
+0xC361	0x58DE	# <CJK>
+0xC362	0x58DF	# <CJK>
+0xC363	0x58E2	# <CJK>
+0xC364	0x5BF5	# <CJK>
+0xC365	0x9F90	# <CJK>
+0xC366	0x5EEC	# <CJK>
+0xC367	0x61F2	# <CJK>
+0xC368	0x61F7	# <CJK>
+0xC369	0x61F6	# <CJK>
+0xC36A	0x61F5	# <CJK>
+0xC36B	0x6500	# <CJK>
+0xC36C	0x650F	# <CJK>
+0xC36D	0x66E0	# <CJK>
+0xC36E	0x66DD	# <CJK>
+0xC36F	0x6AE5	# <CJK>
+0xC370	0x6ADD	# <CJK>
+0xC371	0x6ADA	# <CJK>
+0xC372	0x6AD3	# <CJK>
+0xC373	0x701B	# <CJK>
+0xC374	0x701F	# <CJK>
+0xC375	0x7028	# <CJK>
+0xC376	0x701A	# <CJK>
+0xC377	0x701D	# <CJK>
+0xC378	0x7015	# <CJK>
+0xC379	0x7018	# <CJK>
+0xC37A	0x7206	# <CJK>
+0xC37B	0x720D	# <CJK>
+0xC37C	0x7258	# <CJK>
+0xC37D	0x72A2	# <CJK>
+0xC37E	0x7378	# <CJK>
+0xC3A1	0x737A	# <CJK>
+0xC3A2	0x74BD	# <CJK>
+0xC3A3	0x74CA	# <CJK>
+0xC3A4	0x74E3	# <CJK>
+0xC3A5	0x7587	# <CJK>
+0xC3A6	0x7586	# <CJK>
+0xC3A7	0x765F	# <CJK>
+0xC3A8	0x7661	# <CJK>
+0xC3A9	0x77C7	# <CJK>
+0xC3AA	0x7919	# <CJK>
+0xC3AB	0x79B1	# <CJK>
+0xC3AC	0x7A6B	# <CJK>
+0xC3AD	0x7A69	# <CJK>
+0xC3AE	0x7C3E	# <CJK>
+0xC3AF	0x7C3F	# <CJK>
+0xC3B0	0x7C38	# <CJK>
+0xC3B1	0x7C3D	# <CJK>
+0xC3B2	0x7C37	# <CJK>
+0xC3B3	0x7C40	# <CJK>
+0xC3B4	0x7E6B	# <CJK>
+0xC3B5	0x7E6D	# <CJK>
+0xC3B6	0x7E79	# <CJK>
+0xC3B7	0x7E69	# <CJK>
+0xC3B8	0x7E6A	# <CJK>
+0xC3B9	0x7F85	# <CJK>
+0xC3BA	0x7E73	# <CJK>
+0xC3BB	0x7FB6	# <CJK>
+0xC3BC	0x7FB9	# <CJK>
+0xC3BD	0x7FB8	# <CJK>
+0xC3BE	0x81D8	# <CJK>
+0xC3BF	0x85E9	# <CJK>
+0xC3C0	0x85DD	# <CJK>
+0xC3C1	0x85EA	# <CJK>
+0xC3C2	0x85D5	# <CJK>
+0xC3C3	0x85E4	# <CJK>
+0xC3C4	0x85E5	# <CJK>
+0xC3C5	0x85F7	# <CJK>
+0xC3C6	0x87FB	# <CJK>
+0xC3C7	0x8805	# <CJK>
+0xC3C8	0x880D	# <CJK>
+0xC3C9	0x87F9	# <CJK>
+0xC3CA	0x87FE	# <CJK>
+0xC3CB	0x8960	# <CJK>
+0xC3CC	0x895F	# <CJK>
+0xC3CD	0x8956	# <CJK>
+0xC3CE	0x895E	# <CJK>
+0xC3CF	0x8B41	# <CJK>
+0xC3D0	0x8B5C	# <CJK>
+0xC3D1	0x8B58	# <CJK>
+0xC3D2	0x8B49	# <CJK>
+0xC3D3	0x8B5A	# <CJK>
+0xC3D4	0x8B4E	# <CJK>
+0xC3D5	0x8B4F	# <CJK>
+0xC3D6	0x8B46	# <CJK>
+0xC3D7	0x8B59	# <CJK>
+0xC3D8	0x8D08	# <CJK>
+0xC3D9	0x8D0A	# <CJK>
+0xC3DA	0x8E7C	# <CJK>
+0xC3DB	0x8E72	# <CJK>
+0xC3DC	0x8E87	# <CJK>
+0xC3DD	0x8E76	# <CJK>
+0xC3DE	0x8E6C	# <CJK>
+0xC3DF	0x8E7A	# <CJK>
+0xC3E0	0x8E74	# <CJK>
+0xC3E1	0x8F54	# <CJK>
+0xC3E2	0x8F4E	# <CJK>
+0xC3E3	0x8FAD	# <CJK>
+0xC3E4	0x908A	# <CJK>
+0xC3E5	0x908B	# <CJK>
+0xC3E6	0x91B1	# <CJK>
+0xC3E7	0x91AE	# <CJK>
+0xC3E8	0x93E1	# <CJK>
+0xC3E9	0x93D1	# <CJK>
+0xC3EA	0x93DF	# <CJK>
+0xC3EB	0x93C3	# <CJK>
+0xC3EC	0x93C8	# <CJK>
+0xC3ED	0x93DC	# <CJK>
+0xC3EE	0x93DD	# <CJK>
+0xC3EF	0x93D6	# <CJK>
+0xC3F0	0x93E2	# <CJK>
+0xC3F1	0x93CD	# <CJK>
+0xC3F2	0x93D8	# <CJK>
+0xC3F3	0x93E4	# <CJK>
+0xC3F4	0x93D7	# <CJK>
+0xC3F5	0x93E8	# <CJK>
+0xC3F6	0x95DC	# <CJK>
+0xC3F7	0x96B4	# <CJK>
+0xC3F8	0x96E3	# <CJK>
+0xC3F9	0x972A	# <CJK>
+0xC3FA	0x9727	# <CJK>
+0xC3FB	0x9761	# <CJK>
+0xC3FC	0x97DC	# <CJK>
+0xC3FD	0x97FB	# <CJK>
+0xC3FE	0x985E	# <CJK>
+0xC440	0x9858	# <CJK>
+0xC441	0x985B	# <CJK>
+0xC442	0x98BC	# <CJK>
+0xC443	0x9945	# <CJK>
+0xC444	0x9949	# <CJK>
+0xC445	0x9A16	# <CJK>
+0xC446	0x9A19	# <CJK>
+0xC447	0x9B0D	# <CJK>
+0xC448	0x9BE8	# <CJK>
+0xC449	0x9BE7	# <CJK>
+0xC44A	0x9BD6	# <CJK>
+0xC44B	0x9BDB	# <CJK>
+0xC44C	0x9D89	# <CJK>
+0xC44D	0x9D61	# <CJK>
+0xC44E	0x9D72	# <CJK>
+0xC44F	0x9D6A	# <CJK>
+0xC450	0x9D6C	# <CJK>
+0xC451	0x9E92	# <CJK>
+0xC452	0x9E97	# <CJK>
+0xC453	0x9E93	# <CJK>
+0xC454	0x9EB4	# <CJK>
+0xC455	0x52F8	# <CJK>
+0xC456	0x56A8	# <CJK>
+0xC457	0x56B7	# <CJK>
+0xC458	0x56B6	# <CJK>
+0xC459	0x56B4	# <CJK>
+0xC45A	0x56BC	# <CJK>
+0xC45B	0x58E4	# <CJK>
+0xC45C	0x5B40	# <CJK>
+0xC45D	0x5B43	# <CJK>
+0xC45E	0x5B7D	# <CJK>
+0xC45F	0x5BF6	# <CJK>
+0xC460	0x5DC9	# <CJK>
+0xC461	0x61F8	# <CJK>
+0xC462	0x61FA	# <CJK>
+0xC463	0x6518	# <CJK>
+0xC464	0x6514	# <CJK>
+0xC465	0x6519	# <CJK>
+0xC466	0x66E6	# <CJK>
+0xC467	0x6727	# <CJK>
+0xC468	0x6AEC	# <CJK>
+0xC469	0x703E	# <CJK>
+0xC46A	0x7030	# <CJK>
+0xC46B	0x7032	# <CJK>
+0xC46C	0x7210	# <CJK>
+0xC46D	0x737B	# <CJK>
+0xC46E	0x74CF	# <CJK>
+0xC46F	0x7662	# <CJK>
+0xC470	0x7665	# <CJK>
+0xC471	0x7926	# <CJK>
+0xC472	0x792A	# <CJK>
+0xC473	0x792C	# <CJK>
+0xC474	0x792B	# <CJK>
+0xC475	0x7AC7	# <CJK>
+0xC476	0x7AF6	# <CJK>
+0xC477	0x7C4C	# <CJK>
+0xC478	0x7C43	# <CJK>
+0xC479	0x7C4D	# <CJK>
+0xC47A	0x7CEF	# <CJK>
+0xC47B	0x7CF0	# <CJK>
+0xC47C	0x8FAE	# <CJK>
+0xC47D	0x7E7D	# <CJK>
+0xC47E	0x7E7C	# <CJK>
+0xC4A1	0x7E82	# <CJK>
+0xC4A2	0x7F4C	# <CJK>
+0xC4A3	0x8000	# <CJK>
+0xC4A4	0x81DA	# <CJK>
+0xC4A5	0x8266	# <CJK>
+0xC4A6	0x85FB	# <CJK>
+0xC4A7	0x85F9	# <CJK>
+0xC4A8	0x8611	# <CJK>
+0xC4A9	0x85FA	# <CJK>
+0xC4AA	0x8606	# <CJK>
+0xC4AB	0x860B	# <CJK>
+0xC4AC	0x8607	# <CJK>
+0xC4AD	0x860A	# <CJK>
+0xC4AE	0x8814	# <CJK>
+0xC4AF	0x8815	# <CJK>
+0xC4B0	0x8964	# <CJK>
+0xC4B1	0x89BA	# <CJK>
+0xC4B2	0x89F8	# <CJK>
+0xC4B3	0x8B70	# <CJK>
+0xC4B4	0x8B6C	# <CJK>
+0xC4B5	0x8B66	# <CJK>
+0xC4B6	0x8B6F	# <CJK>
+0xC4B7	0x8B5F	# <CJK>
+0xC4B8	0x8B6B	# <CJK>
+0xC4B9	0x8D0F	# <CJK>
+0xC4BA	0x8D0D	# <CJK>
+0xC4BB	0x8E89	# <CJK>
+0xC4BC	0x8E81	# <CJK>
+0xC4BD	0x8E85	# <CJK>
+0xC4BE	0x8E82	# <CJK>
+0xC4BF	0x91B4	# <CJK>
+0xC4C0	0x91CB	# <CJK>
+0xC4C1	0x9418	# <CJK>
+0xC4C2	0x9403	# <CJK>
+0xC4C3	0x93FD	# <CJK>
+0xC4C4	0x95E1	# <CJK>
+0xC4C5	0x9730	# <CJK>
+0xC4C6	0x98C4	# <CJK>
+0xC4C7	0x9952	# <CJK>
+0xC4C8	0x9951	# <CJK>
+0xC4C9	0x99A8	# <CJK>
+0xC4CA	0x9A2B	# <CJK>
+0xC4CB	0x9A30	# <CJK>
+0xC4CC	0x9A37	# <CJK>
+0xC4CD	0x9A35	# <CJK>
+0xC4CE	0x9C13	# <CJK>
+0xC4CF	0x9C0D	# <CJK>
+0xC4D0	0x9E79	# <CJK>
+0xC4D1	0x9EB5	# <CJK>
+0xC4D2	0x9EE8	# <CJK>
+0xC4D3	0x9F2F	# <CJK>
+0xC4D4	0x9F5F	# <CJK>
+0xC4D5	0x9F63	# <CJK>
+0xC4D6	0x9F61	# <CJK>
+0xC4D7	0x5137	# <CJK>
+0xC4D8	0x5138	# <CJK>
+0xC4D9	0x56C1	# <CJK>
+0xC4DA	0x56C0	# <CJK>
+0xC4DB	0x56C2	# <CJK>
+0xC4DC	0x5914	# <CJK>
+0xC4DD	0x5C6C	# <CJK>
+0xC4DE	0x5DCD	# <CJK>
+0xC4DF	0x61FC	# <CJK>
+0xC4E0	0x61FE	# <CJK>
+0xC4E1	0x651D	# <CJK>
+0xC4E2	0x651C	# <CJK>
+0xC4E3	0x6595	# <CJK>
+0xC4E4	0x66E9	# <CJK>
+0xC4E5	0x6AFB	# <CJK>
+0xC4E6	0x6B04	# <CJK>
+0xC4E7	0x6AFA	# <CJK>
+0xC4E8	0x6BB2	# <CJK>
+0xC4E9	0x704C	# <CJK>
+0xC4EA	0x721B	# <CJK>
+0xC4EB	0x72A7	# <CJK>
+0xC4EC	0x74D6	# <CJK>
+0xC4ED	0x74D4	# <CJK>
+0xC4EE	0x7669	# <CJK>
+0xC4EF	0x77D3	# <CJK>
+0xC4F0	0x7C50	# <CJK>
+0xC4F1	0x7E8F	# <CJK>
+0xC4F2	0x7E8C	# <CJK>
+0xC4F3	0x7FBC	# <CJK>
+0xC4F4	0x8617	# <CJK>
+0xC4F5	0x862D	# <CJK>
+0xC4F6	0x861A	# <CJK>
+0xC4F7	0x8823	# <CJK>
+0xC4F8	0x8822	# <CJK>
+0xC4F9	0x8821	# <CJK>
+0xC4FA	0x881F	# <CJK>
+0xC4FB	0x896A	# <CJK>
+0xC4FC	0x896C	# <CJK>
+0xC4FD	0x89BD	# <CJK>
+0xC4FE	0x8B74	# <CJK>
+0xC540	0x8B77	# <CJK>
+0xC541	0x8B7D	# <CJK>
+0xC542	0x8D13	# <CJK>
+0xC543	0x8E8A	# <CJK>
+0xC544	0x8E8D	# <CJK>
+0xC545	0x8E8B	# <CJK>
+0xC546	0x8F5F	# <CJK>
+0xC547	0x8FAF	# <CJK>
+0xC548	0x91BA	# <CJK>
+0xC549	0x942E	# <CJK>
+0xC54A	0x9433	# <CJK>
+0xC54B	0x9435	# <CJK>
+0xC54C	0x943A	# <CJK>
+0xC54D	0x9438	# <CJK>
+0xC54E	0x9432	# <CJK>
+0xC54F	0x942B	# <CJK>
+0xC550	0x95E2	# <CJK>
+0xC551	0x9738	# <CJK>
+0xC552	0x9739	# <CJK>
+0xC553	0x9732	# <CJK>
+0xC554	0x97FF	# <CJK>
+0xC555	0x9867	# <CJK>
+0xC556	0x9865	# <CJK>
+0xC557	0x9957	# <CJK>
+0xC558	0x9A45	# <CJK>
+0xC559	0x9A43	# <CJK>
+0xC55A	0x9A40	# <CJK>
+0xC55B	0x9A3E	# <CJK>
+0xC55C	0x9ACF	# <CJK>
+0xC55D	0x9B54	# <CJK>
+0xC55E	0x9B51	# <CJK>
+0xC55F	0x9C2D	# <CJK>
+0xC560	0x9C25	# <CJK>
+0xC561	0x9DAF	# <CJK>
+0xC562	0x9DB4	# <CJK>
+0xC563	0x9DC2	# <CJK>
+0xC564	0x9DB8	# <CJK>
+0xC565	0x9E9D	# <CJK>
+0xC566	0x9EEF	# <CJK>
+0xC567	0x9F19	# <CJK>
+0xC568	0x9F5C	# <CJK>
+0xC569	0x9F66	# <CJK>
+0xC56A	0x9F67	# <CJK>
+0xC56B	0x513C	# <CJK>
+0xC56C	0x513B	# <CJK>
+0xC56D	0x56C8	# <CJK>
+0xC56E	0x56CA	# <CJK>
+0xC56F	0x56C9	# <CJK>
+0xC570	0x5B7F	# <CJK>
+0xC571	0x5DD4	# <CJK>
+0xC572	0x5DD2	# <CJK>
+0xC573	0x5F4E	# <CJK>
+0xC574	0x61FF	# <CJK>
+0xC575	0x6524	# <CJK>
+0xC576	0x6B0A	# <CJK>
+0xC577	0x6B61	# <CJK>
+0xC578	0x7051	# <CJK>
+0xC579	0x7058	# <CJK>
+0xC57A	0x7380	# <CJK>
+0xC57B	0x74E4	# <CJK>
+0xC57C	0x758A	# <CJK>
+0xC57D	0x766E	# <CJK>
+0xC57E	0x766C	# <CJK>
+0xC5A1	0x79B3	# <CJK>
+0xC5A2	0x7C60	# <CJK>
+0xC5A3	0x7C5F	# <CJK>
+0xC5A4	0x807E	# <CJK>
+0xC5A5	0x807D	# <CJK>
+0xC5A6	0x81DF	# <CJK>
+0xC5A7	0x8972	# <CJK>
+0xC5A8	0x896F	# <CJK>
+0xC5A9	0x89FC	# <CJK>
+0xC5AA	0x8B80	# <CJK>
+0xC5AB	0x8D16	# <CJK>
+0xC5AC	0x8D17	# <CJK>
+0xC5AD	0x8E91	# <CJK>
+0xC5AE	0x8E93	# <CJK>
+0xC5AF	0x8F61	# <CJK>
+0xC5B0	0x9148	# <CJK>
+0xC5B1	0x9444	# <CJK>
+0xC5B2	0x9451	# <CJK>
+0xC5B3	0x9452	# <CJK>
+0xC5B4	0x973D	# <CJK>
+0xC5B5	0x973E	# <CJK>
+0xC5B6	0x97C3	# <CJK>
+0xC5B7	0x97C1	# <CJK>
+0xC5B8	0x986B	# <CJK>
+0xC5B9	0x9955	# <CJK>
+0xC5BA	0x9A55	# <CJK>
+0xC5BB	0x9A4D	# <CJK>
+0xC5BC	0x9AD2	# <CJK>
+0xC5BD	0x9B1A	# <CJK>
+0xC5BE	0x9C49	# <CJK>
+0xC5BF	0x9C31	# <CJK>
+0xC5C0	0x9C3E	# <CJK>
+0xC5C1	0x9C3B	# <CJK>
+0xC5C2	0x9DD3	# <CJK>
+0xC5C3	0x9DD7	# <CJK>
+0xC5C4	0x9F34	# <CJK>
+0xC5C5	0x9F6C	# <CJK>
+0xC5C6	0x9F6A	# <CJK>
+0xC5C7	0x9F94	# <CJK>
+0xC5C8	0x56CC	# <CJK>
+0xC5C9	0x5DD6	# <CJK>
+0xC5CA	0x6200	# <CJK>
+0xC5CB	0x6523	# <CJK>
+0xC5CC	0x652B	# <CJK>
+0xC5CD	0x652A	# <CJK>
+0xC5CE	0x66EC	# <CJK>
+0xC5CF	0x6B10	# <CJK>
+0xC5D0	0x74DA	# <CJK>
+0xC5D1	0x7ACA	# <CJK>
+0xC5D2	0x7C64	# <CJK>
+0xC5D3	0x7C63	# <CJK>
+0xC5D4	0x7C65	# <CJK>
+0xC5D5	0x7E93	# <CJK>
+0xC5D6	0x7E96	# <CJK>
+0xC5D7	0x7E94	# <CJK>
+0xC5D8	0x81E2	# <CJK>
+0xC5D9	0x8638	# <CJK>
+0xC5DA	0x863F	# <CJK>
+0xC5DB	0x8831	# <CJK>
+0xC5DC	0x8B8A	# <CJK>
+0xC5DD	0x9090	# <CJK>
+0xC5DE	0x908F	# <CJK>
+0xC5DF	0x9463	# <CJK>
+0xC5E0	0x9460	# <CJK>
+0xC5E1	0x9464	# <CJK>
+0xC5E2	0x9768	# <CJK>
+0xC5E3	0x986F	# <CJK>
+0xC5E4	0x995C	# <CJK>
+0xC5E5	0x9A5A	# <CJK>
+0xC5E6	0x9A5B	# <CJK>
+0xC5E7	0x9A57	# <CJK>
+0xC5E8	0x9AD3	# <CJK>
+0xC5E9	0x9AD4	# <CJK>
+0xC5EA	0x9AD1	# <CJK>
+0xC5EB	0x9C54	# <CJK>
+0xC5EC	0x9C57	# <CJK>
+0xC5ED	0x9C56	# <CJK>
+0xC5EE	0x9DE5	# <CJK>
+0xC5EF	0x9E9F	# <CJK>
+0xC5F0	0x9EF4	# <CJK>
+0xC5F1	0x56D1	# <CJK>
+0xC5F2	0x58E9	# <CJK>
+0xC5F3	0x652C	# <CJK>
+0xC5F4	0x705E	# <CJK>
+0xC5F5	0x7671	# <CJK>
+0xC5F6	0x7672	# <CJK>
+0xC5F7	0x77D7	# <CJK>
+0xC5F8	0x7F50	# <CJK>
+0xC5F9	0x7F88	# <CJK>
+0xC5FA	0x8836	# <CJK>
+0xC5FB	0x8839	# <CJK>
+0xC5FC	0x8862	# <CJK>
+0xC5FD	0x8B93	# <CJK>
+0xC5FE	0x8B92	# <CJK>
+0xC640	0x8B96	# <CJK>
+0xC641	0x8277	# <CJK>
+0xC642	0x8D1B	# <CJK>
+0xC643	0x91C0	# <CJK>
+0xC644	0x946A	# <CJK>
+0xC645	0x9742	# <CJK>
+0xC646	0x9748	# <CJK>
+0xC647	0x9744	# <CJK>
+0xC648	0x97C6	# <CJK>
+0xC649	0x9870	# <CJK>
+0xC64A	0x9A5F	# <CJK>
+0xC64B	0x9B22	# <CJK>
+0xC64C	0x9B58	# <CJK>
+0xC64D	0x9C5F	# <CJK>
+0xC64E	0x9DF9	# <CJK>
+0xC64F	0x9DFA	# <CJK>
+0xC650	0x9E7C	# <CJK>
+0xC651	0x9E7D	# <CJK>
+0xC652	0x9F07	# <CJK>
+0xC653	0x9F77	# <CJK>
+0xC654	0x9F72	# <CJK>
+0xC655	0x5EF3	# <CJK>
+0xC656	0x6B16	# <CJK>
+0xC657	0x7063	# <CJK>
+0xC658	0x7C6C	# <CJK>
+0xC659	0x7C6E	# <CJK>
+0xC65A	0x883B	# <CJK>
+0xC65B	0x89C0	# <CJK>
+0xC65C	0x8EA1	# <CJK>
+0xC65D	0x91C1	# <CJK>
+0xC65E	0x9472	# <CJK>
+0xC65F	0x9470	# <CJK>
+0xC660	0x9871	# <CJK>
+0xC661	0x995E	# <CJK>
+0xC662	0x9AD6	# <CJK>
+0xC663	0x9B23	# <CJK>
+0xC664	0x9ECC	# <CJK>
+0xC665	0x7064	# <CJK>
+0xC666	0x77DA	# <CJK>
+0xC667	0x8B9A	# <CJK>
+0xC668	0x9477	# <CJK>
+0xC669	0x97C9	# <CJK>
+0xC66A	0x9A62	# <CJK>
+0xC66B	0x9A65	# <CJK>
+0xC66C	0x7E9C	# <CJK>
+0xC66D	0x8B9C	# <CJK>
+0xC66E	0x8EAA	# <CJK>
+0xC66F	0x91C5	# <CJK>
+0xC670	0x947D	# <CJK>
+0xC671	0x947E	# <CJK>
+0xC672	0x947C	# <CJK>
+0xC673	0x9C77	# <CJK>
+0xC674	0x9C78	# <CJK>
+0xC675	0x9EF7	# <CJK>
+0xC676	0x8C54	# <CJK>
+0xC677	0x947F	# <CJK>
+0xC678	0x9E1A	# <CJK>
+0xC679	0x7228	# <CJK>
+0xC67A	0x9A6A	# <CJK>
+0xC67B	0x9B31	# <CJK>
+0xC67C	0x9E1B	# <CJK>
+0xC67D	0x9E1E	# <CJK>
+0xC67E	0x7C72	# <CJK>
+0xC6A1	0x30FE	# KATAKANA VOICED ITERATION MARK
+0xC6A2	0x309D	# HIRAGANA ITERATION MARK
+0xC6A3	0x309E	# HIRAGANA VOICED ITERATION MARK
+0xC6A4	0x3005	# IDEOGRAPHIC ITERATION MARK
+0xC6A5	0x3041	# HIRAGANA LETTER SMALL A
+0xC6A6	0x3042	# HIRAGANA LETTER A
+0xC6A7	0x3043	# HIRAGANA LETTER SMALL I
+0xC6A8	0x3044	# HIRAGANA LETTER I
+0xC6A9	0x3045	# HIRAGANA LETTER SMALL U
+0xC6AA	0x3046	# HIRAGANA LETTER U
+0xC6AB	0x3047	# HIRAGANA LETTER SMALL E
+0xC6AC	0x3048	# HIRAGANA LETTER E
+0xC6AD	0x3049	# HIRAGANA LETTER SMALL O
+0xC6AE	0x304A	# HIRAGANA LETTER O
+0xC6AF	0x304B	# HIRAGANA LETTER KA
+0xC6B0	0x304C	# HIRAGANA LETTER GA
+0xC6B1	0x304D	# HIRAGANA LETTER KI
+0xC6B2	0x304E	# HIRAGANA LETTER GI
+0xC6B3	0x304F	# HIRAGANA LETTER KU
+0xC6B4	0x3050	# HIRAGANA LETTER GU
+0xC6B5	0x3051	# HIRAGANA LETTER KE
+0xC6B6	0x3052	# HIRAGANA LETTER GE
+0xC6B7	0x3053	# HIRAGANA LETTER KO
+0xC6B8	0x3054	# HIRAGANA LETTER GO
+0xC6B9	0x3055	# HIRAGANA LETTER SA
+0xC6BA	0x3056	# HIRAGANA LETTER ZA
+0xC6BB	0x3057	# HIRAGANA LETTER SI
+0xC6BC	0x3058	# HIRAGANA LETTER ZI
+0xC6BD	0x3059	# HIRAGANA LETTER SU
+0xC6BE	0x305A	# HIRAGANA LETTER ZU
+0xC6BF	0x305B	# HIRAGANA LETTER SE
+0xC6C0	0x305C	# HIRAGANA LETTER ZE
+0xC6C1	0x305D	# HIRAGANA LETTER SO
+0xC6C2	0x305E	# HIRAGANA LETTER ZO
+0xC6C3	0x305F	# HIRAGANA LETTER TA
+0xC6C4	0x3060	# HIRAGANA LETTER DA
+0xC6C5	0x3061	# HIRAGANA LETTER TI
+0xC6C6	0x3062	# HIRAGANA LETTER DI
+0xC6C7	0x3063	# HIRAGANA LETTER SMALL TU
+0xC6C8	0x3064	# HIRAGANA LETTER TU
+0xC6C9	0x3065	# HIRAGANA LETTER DU
+0xC6CA	0x3066	# HIRAGANA LETTER TE
+0xC6CB	0x3067	# HIRAGANA LETTER DE
+0xC6CC	0x3068	# HIRAGANA LETTER TO
+0xC6CD	0x3069	# HIRAGANA LETTER DO
+0xC6CE	0x306A	# HIRAGANA LETTER NA
+0xC6CF	0x306B	# HIRAGANA LETTER NI
+0xC6D0	0x306C	# HIRAGANA LETTER NU
+0xC6D1	0x306D	# HIRAGANA LETTER NE
+0xC6D2	0x306E	# HIRAGANA LETTER NO
+0xC6D3	0x306F	# HIRAGANA LETTER HA
+0xC6D4	0x3070	# HIRAGANA LETTER BA
+0xC6D5	0x3071	# HIRAGANA LETTER PA
+0xC6D6	0x3072	# HIRAGANA LETTER HI
+0xC6D7	0x3073	# HIRAGANA LETTER BI
+0xC6D8	0x3074	# HIRAGANA LETTER PI
+0xC6D9	0x3075	# HIRAGANA LETTER HU
+0xC6DA	0x3076	# HIRAGANA LETTER BU
+0xC6DB	0x3077	# HIRAGANA LETTER PU
+0xC6DC	0x3078	# HIRAGANA LETTER HE
+0xC6DD	0x3079	# HIRAGANA LETTER BE
+0xC6DE	0x307A	# HIRAGANA LETTER PE
+0xC6DF	0x307B	# HIRAGANA LETTER HO
+0xC6E0	0x307C	# HIRAGANA LETTER BO
+0xC6E1	0x307D	# HIRAGANA LETTER PO
+0xC6E2	0x307E	# HIRAGANA LETTER MA
+0xC6E3	0x307F	# HIRAGANA LETTER MI
+0xC6E4	0x3080	# HIRAGANA LETTER MU
+0xC6E5	0x3081	# HIRAGANA LETTER ME
+0xC6E6	0x3082	# HIRAGANA LETTER MO
+0xC6E7	0x3083	# HIRAGANA LETTER SMALL YA
+0xC6E8	0x3084	# HIRAGANA LETTER YA
+0xC6E9	0x3085	# HIRAGANA LETTER SMALL YU
+0xC6EA	0x3086	# HIRAGANA LETTER YU
+0xC6EB	0x3087	# HIRAGANA LETTER SMALL YO
+0xC6EC	0x3088	# HIRAGANA LETTER YO
+0xC6ED	0x3089	# HIRAGANA LETTER RA
+0xC6EE	0x308A	# HIRAGANA LETTER RI
+0xC6EF	0x308B	# HIRAGANA LETTER RU
+0xC6F0	0x308C	# HIRAGANA LETTER RE
+0xC6F1	0x308D	# HIRAGANA LETTER RO
+0xC6F2	0x308E	# HIRAGANA LETTER SMALL WA
+0xC6F3	0x308F	# HIRAGANA LETTER WA
+0xC6F4	0x3090	# HIRAGANA LETTER WI
+0xC6F5	0x3091	# HIRAGANA LETTER WE
+0xC6F6	0x3092	# HIRAGANA LETTER WO
+0xC6F7	0x3093	# HIRAGANA LETTER N
+0xC6F8	0x30A1	# KATAKANA LETTER SMALL A
+0xC6F9	0x30A2	# KATAKANA LETTER A
+0xC6FA	0x30A3	# KATAKANA LETTER SMALL I
+0xC6FB	0x30A4	# KATAKANA LETTER I
+0xC6FC	0x30A5	# KATAKANA LETTER SMALL U
+0xC6FD	0x30A6	# KATAKANA LETTER U
+0xC6FE	0x30A7	# KATAKANA LETTER SMALL E
+0xC740	0x30A8	# KATAKANA LETTER E
+0xC741	0x30A9	# KATAKANA LETTER SMALL O
+0xC742	0x30AA	# KATAKANA LETTER O
+0xC743	0x30AB	# KATAKANA LETTER KA
+0xC744	0x30AC	# KATAKANA LETTER GA
+0xC745	0x30AD	# KATAKANA LETTER KI
+0xC746	0x30AE	# KATAKANA LETTER GI
+0xC747	0x30AF	# KATAKANA LETTER KU
+0xC748	0x30B0	# KATAKANA LETTER GU
+0xC749	0x30B1	# KATAKANA LETTER KE
+0xC74A	0x30B2	# KATAKANA LETTER GE
+0xC74B	0x30B3	# KATAKANA LETTER KO
+0xC74C	0x30B4	# KATAKANA LETTER GO
+0xC74D	0x30B5	# KATAKANA LETTER SA
+0xC74E	0x30B6	# KATAKANA LETTER ZA
+0xC74F	0x30B7	# KATAKANA LETTER SI
+0xC750	0x30B8	# KATAKANA LETTER ZI
+0xC751	0x30B9	# KATAKANA LETTER SU
+0xC752	0x30BA	# KATAKANA LETTER ZU
+0xC753	0x30BB	# KATAKANA LETTER SE
+0xC754	0x30BC	# KATAKANA LETTER ZE
+0xC755	0x30BD	# KATAKANA LETTER SO
+0xC756	0x30BE	# KATAKANA LETTER ZO
+0xC757	0x30BF	# KATAKANA LETTER TA
+0xC758	0x30C0	# KATAKANA LETTER DA
+0xC759	0x30C1	# KATAKANA LETTER TI
+0xC75A	0x30C2	# KATAKANA LETTER DI
+0xC75B	0x30C3	# KATAKANA LETTER SMALL TU
+0xC75C	0x30C4	# KATAKANA LETTER TU
+0xC75D	0x30C5	# KATAKANA LETTER DU
+0xC75E	0x30C6	# KATAKANA LETTER TE
+0xC75F	0x30C7	# KATAKANA LETTER DE
+0xC760	0x30C8	# KATAKANA LETTER TO
+0xC761	0x30C9	# KATAKANA LETTER DO
+0xC762	0x30CA	# KATAKANA LETTER NA
+0xC763	0x30CB	# KATAKANA LETTER NI
+0xC764	0x30CC	# KATAKANA LETTER NU
+0xC765	0x30CD	# KATAKANA LETTER NE
+0xC766	0x30CE	# KATAKANA LETTER NO
+0xC767	0x30CF	# KATAKANA LETTER HA
+0xC768	0x30D0	# KATAKANA LETTER BA
+0xC769	0x30D1	# KATAKANA LETTER PA
+0xC76A	0x30D2	# KATAKANA LETTER HI
+0xC76B	0x30D3	# KATAKANA LETTER BI
+0xC76C	0x30D4	# KATAKANA LETTER PI
+0xC76D	0x30D5	# KATAKANA LETTER HU
+0xC76E	0x30D6	# KATAKANA LETTER BU
+0xC76F	0x30D7	# KATAKANA LETTER PU
+0xC770	0x30D8	# KATAKANA LETTER HE
+0xC771	0x30D9	# KATAKANA LETTER BE
+0xC772	0x30DA	# KATAKANA LETTER PE
+0xC773	0x30DB	# KATAKANA LETTER HO
+0xC774	0x30DC	# KATAKANA LETTER BO
+0xC775	0x30DD	# KATAKANA LETTER PO
+0xC776	0x30DE	# KATAKANA LETTER MA
+0xC777	0x30DF	# KATAKANA LETTER MI
+0xC778	0x30E0	# KATAKANA LETTER MU
+0xC779	0x30E1	# KATAKANA LETTER ME
+0xC77A	0x30E2	# KATAKANA LETTER MO
+0xC77B	0x30E3	# KATAKANA LETTER SMALL YA
+0xC77C	0x30E4	# KATAKANA LETTER YA
+0xC77D	0x30E5	# KATAKANA LETTER SMALL YU
+0xC77E	0x30E6	# KATAKANA LETTER YU
+0xC7A1	0x30E7	# KATAKANA LETTER SMALL YO
+0xC7A2	0x30E8	# KATAKANA LETTER YO
+0xC7A3	0x30E9	# KATAKANA LETTER RA
+0xC7A4	0x30EA	# KATAKANA LETTER RI
+0xC7A5	0x30EB	# KATAKANA LETTER RU
+0xC7A6	0x30EC	# KATAKANA LETTER RE
+0xC7A7	0x30ED	# KATAKANA LETTER RO
+0xC7A8	0x30EE	# KATAKANA LETTER SMALL WA
+0xC7A9	0x30EF	# KATAKANA LETTER WA
+0xC7AA	0x30F0	# KATAKANA LETTER WI
+0xC7AB	0x30F1	# KATAKANA LETTER WE
+0xC7AC	0x30F2	# KATAKANA LETTER WO
+0xC7AD	0x30F3	# KATAKANA LETTER N
+0xC7AE	0x30F4	# KATAKANA LETTER VU
+0xC7AF	0x30F5	# KATAKANA LETTER SMALL KA
+0xC7B0	0x30F6	# KATAKANA LETTER SMALL KE
+0xC7B1	0x0414	# CYRILLIC CAPITAL LETTER DE
+0xC7B2	0x0415	# CYRILLIC CAPITAL LETTER IE
+0xC7B3	0x0401	# CYRILLIC CAPITAL LETTER IO
+0xC7B4	0x0416	# CYRILLIC CAPITAL LETTER ZHE
+0xC7B5	0x0417	# CYRILLIC CAPITAL LETTER ZE
+0xC7B6	0x0418	# CYRILLIC CAPITAL LETTER I
+0xC7B7	0x0419	# CYRILLIC CAPITAL LETTER SHORT I
+0xC7B8	0x041A	# CYRILLIC CAPITAL LETTER KA
+0xC7B9	0x041B	# CYRILLIC CAPITAL LETTER EL
+0xC7BA	0x041C	# CYRILLIC CAPITAL LETTER EM
+0xC7BB	0x0423	# CYRILLIC CAPITAL LETTER U
+0xC7BC	0x0424	# CYRILLIC CAPITAL LETTER EF
+0xC7BD	0x0425	# CYRILLIC CAPITAL LETTER HA
+0xC7BE	0x0426	# CYRILLIC CAPITAL LETTER TSE
+0xC7BF	0x0427	# CYRILLIC CAPITAL LETTER CHE
+0xC7C0	0x0428	# CYRILLIC CAPITAL LETTER SHA
+0xC7C1	0x0429	# CYRILLIC CAPITAL LETTER SHCHA
+0xC7C2	0x042A	# CYRILLIC CAPITAL LETTER HARD SIGN
+0xC7C3	0x042B	# CYRILLIC CAPITAL LETTER YERU
+0xC7C4	0x042C	# CYRILLIC CAPITAL LETTER SOFT SIGN
+0xC7C5	0x042D	# CYRILLIC CAPITAL LETTER E
+0xC7C6	0x042E	# CYRILLIC CAPITAL LETTER YU
+0xC7C7	0x042F	# CYRILLIC CAPITAL LETTER YA
+0xC7C8	0x0430	# CYRILLIC SMALL LETTER A
+0xC7C9	0x0431	# CYRILLIC SMALL LETTER BE
+0xC7CA	0x0432	# CYRILLIC SMALL LETTER VE
+0xC7CB	0x0433	# CYRILLIC SMALL LETTER GHE
+0xC7CC	0x0434	# CYRILLIC SMALL LETTER DE
+0xC7CD	0x0435	# CYRILLIC SMALL LETTER IE
+0xC7CE	0x0451	# CYRILLIC SMALL LETTER IO
+0xC7CF	0x0436	# CYRILLIC SMALL LETTER ZHE
+0xC7D0	0x0437	# CYRILLIC SMALL LETTER ZE
+0xC7D1	0x0438	# CYRILLIC SMALL LETTER I
+0xC7D2	0x0439	# CYRILLIC SMALL LETTER SHORT I
+0xC7D3	0x043A	# CYRILLIC SMALL LETTER KA
+0xC7D4	0x043B	# CYRILLIC SMALL LETTER EL
+0xC7D5	0x043C	# CYRILLIC SMALL LETTER EM
+0xC7D6	0x043D	# CYRILLIC SMALL LETTER EN
+0xC7D7	0x043E	# CYRILLIC SMALL LETTER O
+0xC7D8	0x043F	# CYRILLIC SMALL LETTER PE
+0xC7D9	0x0440	# CYRILLIC SMALL LETTER ER
+0xC7DA	0x0441	# CYRILLIC SMALL LETTER ES
+0xC7DB	0x0442	# CYRILLIC SMALL LETTER TE
+0xC7DC	0x0443	# CYRILLIC SMALL LETTER U
+0xC7DD	0x0444	# CYRILLIC SMALL LETTER EF
+0xC7DE	0x0445	# CYRILLIC SMALL LETTER HA
+0xC7DF	0x0446	# CYRILLIC SMALL LETTER TSE
+0xC7E0	0x0447	# CYRILLIC SMALL LETTER CHE
+0xC7E1	0x0448	# CYRILLIC SMALL LETTER SHA
+0xC7E2	0x0449	# CYRILLIC SMALL LETTER SHCHA
+0xC7E3	0x044A	# CYRILLIC SMALL LETTER HARD SIGN
+0xC7E4	0x044B	# CYRILLIC SMALL LETTER YERU
+0xC7E5	0x044C	# CYRILLIC SMALL LETTER SOFT SIGN
+0xC7E6	0x044D	# CYRILLIC SMALL LETTER E
+0xC7E7	0x044E	# CYRILLIC SMALL LETTER YU
+0xC7E8	0x044F	# CYRILLIC SMALL LETTER YA
+0xC7E9	0x2460	# CIRCLED DIGIT ONE
+0xC7EA	0x2461	# CIRCLED DIGIT TWO
+0xC7EB	0x2462	# CIRCLED DIGIT THREE
+0xC7EC	0x2463	# CIRCLED DIGIT FOUR
+0xC7ED	0x2464	# CIRCLED DIGIT FIVE
+0xC7EE	0x2465	# CIRCLED DIGIT SIX
+0xC7EF	0x2466	# CIRCLED DIGIT SEVEN
+0xC7F0	0x2467	# CIRCLED DIGIT EIGHT
+0xC7F1	0x2468	# CIRCLED DIGIT NINE
+0xC7F2	0x2469	# CIRCLED NUMBER TEN
+0xC7F3	0x2474	# PARENTHESIZED DIGIT ONE
+0xC7F4	0x2475	# PARENTHESIZED DIGIT TWO
+0xC7F5	0x2476	# PARENTHESIZED DIGIT THREE
+0xC7F6	0x2477	# PARENTHESIZED DIGIT FOUR
+0xC7F7	0x2478	# PARENTHESIZED DIGIT FIVE
+0xC7F8	0x2479	# PARENTHESIZED DIGIT SIX
+0xC7F9	0x247A	# PARENTHESIZED DIGIT SEVEN
+0xC7FA	0x247B	# PARENTHESIZED DIGIT EIGHT
+0xC7FB	0x247C	# PARENTHESIZED DIGIT NINE
+0xC7FC	0x247D	# PARENTHESIZED NUMBER TEN
+0xC940	0x4E42	# <CJK>
+0xC941	0x4E5C	# <CJK>
+0xC942	0x51F5	# <CJK>
+0xC943	0x531A	# <CJK>
+0xC944	0x5382	# <CJK>
+0xC945	0x4E07	# <CJK>
+0xC946	0x4E0C	# <CJK>
+0xC947	0x4E47	# <CJK>
+0xC948	0x4E8D	# <CJK>
+0xC949	0x56D7	# <CJK>
+0xC94A	0xFA0C	# CJK COMPATIBILITY IDEOGRAPH-FA0C
+0xC94B	0x5C6E	# <CJK>
+0xC94C	0x5F73	# <CJK>
+0xC94D	0x4E0F	# <CJK>
+0xC94E	0x5187	# <CJK>
+0xC94F	0x4E0E	# <CJK>
+0xC950	0x4E2E	# <CJK>
+0xC951	0x4E93	# <CJK>
+0xC952	0x4EC2	# <CJK>
+0xC953	0x4EC9	# <CJK>
+0xC954	0x4EC8	# <CJK>
+0xC955	0x5198	# <CJK>
+0xC956	0x52FC	# <CJK>
+0xC957	0x536C	# <CJK>
+0xC958	0x53B9	# <CJK>
+0xC959	0x5720	# <CJK>
+0xC95A	0x5903	# <CJK>
+0xC95B	0x592C	# <CJK>
+0xC95C	0x5C10	# <CJK>
+0xC95D	0x5DFF	# <CJK>
+0xC95E	0x65E1	# <CJK>
+0xC95F	0x6BB3	# <CJK>
+0xC960	0x6BCC	# <CJK>
+0xC961	0x6C14	# <CJK>
+0xC962	0x723F	# <CJK>
+0xC963	0x4E31	# <CJK>
+0xC964	0x4E3C	# <CJK>
+0xC965	0x4EE8	# <CJK>
+0xC966	0x4EDC	# <CJK>
+0xC967	0x4EE9	# <CJK>
+0xC968	0x4EE1	# <CJK>
+0xC969	0x4EDD	# <CJK>
+0xC96A	0x4EDA	# <CJK>
+0xC96B	0x520C	# <CJK>
+0xC96C	0x531C	# <CJK>
+0xC96D	0x534C	# <CJK>
+0xC96E	0x5722	# <CJK>
+0xC96F	0x5723	# <CJK>
+0xC970	0x5917	# <CJK>
+0xC971	0x592F	# <CJK>
+0xC972	0x5B81	# <CJK>
+0xC973	0x5B84	# <CJK>
+0xC974	0x5C12	# <CJK>
+0xC975	0x5C3B	# <CJK>
+0xC976	0x5C74	# <CJK>
+0xC977	0x5C73	# <CJK>
+0xC978	0x5E04	# <CJK>
+0xC979	0x5E80	# <CJK>
+0xC97A	0x5E82	# <CJK>
+0xC97B	0x5FC9	# <CJK>
+0xC97C	0x6209	# <CJK>
+0xC97D	0x6250	# <CJK>
+0xC97E	0x6C15	# <CJK>
+0xC9A1	0x6C36	# <CJK>
+0xC9A2	0x6C43	# <CJK>
+0xC9A3	0x6C3F	# <CJK>
+0xC9A4	0x6C3B	# <CJK>
+0xC9A5	0x72AE	# <CJK>
+0xC9A6	0x72B0	# <CJK>
+0xC9A7	0x738A	# <CJK>
+0xC9A8	0x79B8	# <CJK>
+0xC9A9	0x808A	# <CJK>
+0xC9AA	0x961E	# <CJK>
+0xC9AB	0x4F0E	# <CJK>
+0xC9AC	0x4F18	# <CJK>
+0xC9AD	0x4F2C	# <CJK>
+0xC9AE	0x4EF5	# <CJK>
+0xC9AF	0x4F14	# <CJK>
+0xC9B0	0x4EF1	# <CJK>
+0xC9B1	0x4F00	# <CJK>
+0xC9B2	0x4EF7	# <CJK>
+0xC9B3	0x4F08	# <CJK>
+0xC9B4	0x4F1D	# <CJK>
+0xC9B5	0x4F02	# <CJK>
+0xC9B6	0x4F05	# <CJK>
+0xC9B7	0x4F22	# <CJK>
+0xC9B8	0x4F13	# <CJK>
+0xC9B9	0x4F04	# <CJK>
+0xC9BA	0x4EF4	# <CJK>
+0xC9BB	0x4F12	# <CJK>
+0xC9BC	0x51B1	# <CJK>
+0xC9BD	0x5213	# <CJK>
+0xC9BE	0x5209	# <CJK>
+0xC9BF	0x5210	# <CJK>
+0xC9C0	0x52A6	# <CJK>
+0xC9C1	0x5322	# <CJK>
+0xC9C2	0x531F	# <CJK>
+0xC9C3	0x534D	# <CJK>
+0xC9C4	0x538A	# <CJK>
+0xC9C5	0x5407	# <CJK>
+0xC9C6	0x56E1	# <CJK>
+0xC9C7	0x56DF	# <CJK>
+0xC9C8	0x572E	# <CJK>
+0xC9C9	0x572A	# <CJK>
+0xC9CA	0x5734	# <CJK>
+0xC9CB	0x593C	# <CJK>
+0xC9CC	0x5980	# <CJK>
+0xC9CD	0x597C	# <CJK>
+0xC9CE	0x5985	# <CJK>
+0xC9CF	0x597B	# <CJK>
+0xC9D0	0x597E	# <CJK>
+0xC9D1	0x5977	# <CJK>
+0xC9D2	0x597F	# <CJK>
+0xC9D3	0x5B56	# <CJK>
+0xC9D4	0x5C15	# <CJK>
+0xC9D5	0x5C25	# <CJK>
+0xC9D6	0x5C7C	# <CJK>
+0xC9D7	0x5C7A	# <CJK>
+0xC9D8	0x5C7B	# <CJK>
+0xC9D9	0x5C7E	# <CJK>
+0xC9DA	0x5DDF	# <CJK>
+0xC9DB	0x5E75	# <CJK>
+0xC9DC	0x5E84	# <CJK>
+0xC9DD	0x5F02	# <CJK>
+0xC9DE	0x5F1A	# <CJK>
+0xC9DF	0x5F74	# <CJK>
+0xC9E0	0x5FD5	# <CJK>
+0xC9E1	0x5FD4	# <CJK>
+0xC9E2	0x5FCF	# <CJK>
+0xC9E3	0x625C	# <CJK>
+0xC9E4	0x625E	# <CJK>
+0xC9E5	0x6264	# <CJK>
+0xC9E6	0x6261	# <CJK>
+0xC9E7	0x6266	# <CJK>
+0xC9E8	0x6262	# <CJK>
+0xC9E9	0x6259	# <CJK>
+0xC9EA	0x6260	# <CJK>
+0xC9EB	0x625A	# <CJK>
+0xC9EC	0x6265	# <CJK>
+0xC9ED	0x65EF	# <CJK>
+0xC9EE	0x65EE	# <CJK>
+0xC9EF	0x673E	# <CJK>
+0xC9F0	0x6739	# <CJK>
+0xC9F1	0x6738	# <CJK>
+0xC9F2	0x673B	# <CJK>
+0xC9F3	0x673A	# <CJK>
+0xC9F4	0x673F	# <CJK>
+0xC9F5	0x673C	# <CJK>
+0xC9F6	0x6733	# <CJK>
+0xC9F7	0x6C18	# <CJK>
+0xC9F8	0x6C46	# <CJK>
+0xC9F9	0x6C52	# <CJK>
+0xC9FA	0x6C5C	# <CJK>
+0xC9FB	0x6C4F	# <CJK>
+0xC9FC	0x6C4A	# <CJK>
+0xC9FD	0x6C54	# <CJK>
+0xC9FE	0x6C4B	# <CJK>
+0xCA40	0x6C4C	# <CJK>
+0xCA41	0x7071	# <CJK>
+0xCA42	0x725E	# <CJK>
+0xCA43	0x72B4	# <CJK>
+0xCA44	0x72B5	# <CJK>
+0xCA45	0x738E	# <CJK>
+0xCA46	0x752A	# <CJK>
+0xCA47	0x767F	# <CJK>
+0xCA48	0x7A75	# <CJK>
+0xCA49	0x7F51	# <CJK>
+0xCA4A	0x8278	# <CJK>
+0xCA4B	0x827C	# <CJK>
+0xCA4C	0x8280	# <CJK>
+0xCA4D	0x827D	# <CJK>
+0xCA4E	0x827F	# <CJK>
+0xCA4F	0x864D	# <CJK>
+0xCA50	0x897E	# <CJK>
+0xCA51	0x9099	# <CJK>
+0xCA52	0x9097	# <CJK>
+0xCA53	0x9098	# <CJK>
+0xCA54	0x909B	# <CJK>
+0xCA55	0x9094	# <CJK>
+0xCA56	0x9622	# <CJK>
+0xCA57	0x9624	# <CJK>
+0xCA58	0x9620	# <CJK>
+0xCA59	0x9623	# <CJK>
+0xCA5A	0x4F56	# <CJK>
+0xCA5B	0x4F3B	# <CJK>
+0xCA5C	0x4F62	# <CJK>
+0xCA5D	0x4F49	# <CJK>
+0xCA5E	0x4F53	# <CJK>
+0xCA5F	0x4F64	# <CJK>
+0xCA60	0x4F3E	# <CJK>
+0xCA61	0x4F67	# <CJK>
+0xCA62	0x4F52	# <CJK>
+0xCA63	0x4F5F	# <CJK>
+0xCA64	0x4F41	# <CJK>
+0xCA65	0x4F58	# <CJK>
+0xCA66	0x4F2D	# <CJK>
+0xCA67	0x4F33	# <CJK>
+0xCA68	0x4F3F	# <CJK>
+0xCA69	0x4F61	# <CJK>
+0xCA6A	0x518F	# <CJK>
+0xCA6B	0x51B9	# <CJK>
+0xCA6C	0x521C	# <CJK>
+0xCA6D	0x521E	# <CJK>
+0xCA6E	0x5221	# <CJK>
+0xCA6F	0x52AD	# <CJK>
+0xCA70	0x52AE	# <CJK>
+0xCA71	0x5309	# <CJK>
+0xCA72	0x5363	# <CJK>
+0xCA73	0x5372	# <CJK>
+0xCA74	0x538E	# <CJK>
+0xCA75	0x538F	# <CJK>
+0xCA76	0x5430	# <CJK>
+0xCA77	0x5437	# <CJK>
+0xCA78	0x542A	# <CJK>
+0xCA79	0x5454	# <CJK>
+0xCA7A	0x5445	# <CJK>
+0xCA7B	0x5419	# <CJK>
+0xCA7C	0x541C	# <CJK>
+0xCA7D	0x5425	# <CJK>
+0xCA7E	0x5418	# <CJK>
+0xCAA1	0x543D	# <CJK>
+0xCAA2	0x544F	# <CJK>
+0xCAA3	0x5441	# <CJK>
+0xCAA4	0x5428	# <CJK>
+0xCAA5	0x5424	# <CJK>
+0xCAA6	0x5447	# <CJK>
+0xCAA7	0x56EE	# <CJK>
+0xCAA8	0x56E7	# <CJK>
+0xCAA9	0x56E5	# <CJK>
+0xCAAA	0x5741	# <CJK>
+0xCAAB	0x5745	# <CJK>
+0xCAAC	0x574C	# <CJK>
+0xCAAD	0x5749	# <CJK>
+0xCAAE	0x574B	# <CJK>
+0xCAAF	0x5752	# <CJK>
+0xCAB0	0x5906	# <CJK>
+0xCAB1	0x5940	# <CJK>
+0xCAB2	0x59A6	# <CJK>
+0xCAB3	0x5998	# <CJK>
+0xCAB4	0x59A0	# <CJK>
+0xCAB5	0x5997	# <CJK>
+0xCAB6	0x598E	# <CJK>
+0xCAB7	0x59A2	# <CJK>
+0xCAB8	0x5990	# <CJK>
+0xCAB9	0x598F	# <CJK>
+0xCABA	0x59A7	# <CJK>
+0xCABB	0x59A1	# <CJK>
+0xCABC	0x5B8E	# <CJK>
+0xCABD	0x5B92	# <CJK>
+0xCABE	0x5C28	# <CJK>
+0xCABF	0x5C2A	# <CJK>
+0xCAC0	0x5C8D	# <CJK>
+0xCAC1	0x5C8F	# <CJK>
+0xCAC2	0x5C88	# <CJK>
+0xCAC3	0x5C8B	# <CJK>
+0xCAC4	0x5C89	# <CJK>
+0xCAC5	0x5C92	# <CJK>
+0xCAC6	0x5C8A	# <CJK>
+0xCAC7	0x5C86	# <CJK>
+0xCAC8	0x5C93	# <CJK>
+0xCAC9	0x5C95	# <CJK>
+0xCACA	0x5DE0	# <CJK>
+0xCACB	0x5E0A	# <CJK>
+0xCACC	0x5E0E	# <CJK>
+0xCACD	0x5E8B	# <CJK>
+0xCACE	0x5E89	# <CJK>
+0xCACF	0x5E8C	# <CJK>
+0xCAD0	0x5E88	# <CJK>
+0xCAD1	0x5E8D	# <CJK>
+0xCAD2	0x5F05	# <CJK>
+0xCAD3	0x5F1D	# <CJK>
+0xCAD4	0x5F78	# <CJK>
+0xCAD5	0x5F76	# <CJK>
+0xCAD6	0x5FD2	# <CJK>
+0xCAD7	0x5FD1	# <CJK>
+0xCAD8	0x5FD0	# <CJK>
+0xCAD9	0x5FED	# <CJK>
+0xCADA	0x5FE8	# <CJK>
+0xCADB	0x5FEE	# <CJK>
+0xCADC	0x5FF3	# <CJK>
+0xCADD	0x5FE1	# <CJK>
+0xCADE	0x5FE4	# <CJK>
+0xCADF	0x5FE3	# <CJK>
+0xCAE0	0x5FFA	# <CJK>
+0xCAE1	0x5FEF	# <CJK>
+0xCAE2	0x5FF7	# <CJK>
+0xCAE3	0x5FFB	# <CJK>
+0xCAE4	0x6000	# <CJK>
+0xCAE5	0x5FF4	# <CJK>
+0xCAE6	0x623A	# <CJK>
+0xCAE7	0x6283	# <CJK>
+0xCAE8	0x628C	# <CJK>
+0xCAE9	0x628E	# <CJK>
+0xCAEA	0x628F	# <CJK>
+0xCAEB	0x6294	# <CJK>
+0xCAEC	0x6287	# <CJK>
+0xCAED	0x6271	# <CJK>
+0xCAEE	0x627B	# <CJK>
+0xCAEF	0x627A	# <CJK>
+0xCAF0	0x6270	# <CJK>
+0xCAF1	0x6281	# <CJK>
+0xCAF2	0x6288	# <CJK>
+0xCAF3	0x6277	# <CJK>
+0xCAF4	0x627D	# <CJK>
+0xCAF5	0x6272	# <CJK>
+0xCAF6	0x6274	# <CJK>
+0xCAF7	0x6537	# <CJK>
+0xCAF8	0x65F0	# <CJK>
+0xCAF9	0x65F4	# <CJK>
+0xCAFA	0x65F3	# <CJK>
+0xCAFB	0x65F2	# <CJK>
+0xCAFC	0x65F5	# <CJK>
+0xCAFD	0x6745	# <CJK>
+0xCAFE	0x6747	# <CJK>
+0xCB40	0x6759	# <CJK>
+0xCB41	0x6755	# <CJK>
+0xCB42	0x674C	# <CJK>
+0xCB43	0x6748	# <CJK>
+0xCB44	0x675D	# <CJK>
+0xCB45	0x674D	# <CJK>
+0xCB46	0x675A	# <CJK>
+0xCB47	0x674B	# <CJK>
+0xCB48	0x6BD0	# <CJK>
+0xCB49	0x6C19	# <CJK>
+0xCB4A	0x6C1A	# <CJK>
+0xCB4B	0x6C78	# <CJK>
+0xCB4C	0x6C67	# <CJK>
+0xCB4D	0x6C6B	# <CJK>
+0xCB4E	0x6C84	# <CJK>
+0xCB4F	0x6C8B	# <CJK>
+0xCB50	0x6C8F	# <CJK>
+0xCB51	0x6C71	# <CJK>
+0xCB52	0x6C6F	# <CJK>
+0xCB53	0x6C69	# <CJK>
+0xCB54	0x6C9A	# <CJK>
+0xCB55	0x6C6D	# <CJK>
+0xCB56	0x6C87	# <CJK>
+0xCB57	0x6C95	# <CJK>
+0xCB58	0x6C9C	# <CJK>
+0xCB59	0x6C66	# <CJK>
+0xCB5A	0x6C73	# <CJK>
+0xCB5B	0x6C65	# <CJK>
+0xCB5C	0x6C7B	# <CJK>
+0xCB5D	0x6C8E	# <CJK>
+0xCB5E	0x7074	# <CJK>
+0xCB5F	0x707A	# <CJK>
+0xCB60	0x7263	# <CJK>
+0xCB61	0x72BF	# <CJK>
+0xCB62	0x72BD	# <CJK>
+0xCB63	0x72C3	# <CJK>
+0xCB64	0x72C6	# <CJK>
+0xCB65	0x72C1	# <CJK>
+0xCB66	0x72BA	# <CJK>
+0xCB67	0x72C5	# <CJK>
+0xCB68	0x7395	# <CJK>
+0xCB69	0x7397	# <CJK>
+0xCB6A	0x7393	# <CJK>
+0xCB6B	0x7394	# <CJK>
+0xCB6C	0x7392	# <CJK>
+0xCB6D	0x753A	# <CJK>
+0xCB6E	0x7539	# <CJK>
+0xCB6F	0x7594	# <CJK>
+0xCB70	0x7595	# <CJK>
+0xCB71	0x7681	# <CJK>
+0xCB72	0x793D	# <CJK>
+0xCB73	0x8034	# <CJK>
+0xCB74	0x8095	# <CJK>
+0xCB75	0x8099	# <CJK>
+0xCB76	0x8090	# <CJK>
+0xCB77	0x8092	# <CJK>
+0xCB78	0x809C	# <CJK>
+0xCB79	0x8290	# <CJK>
+0xCB7A	0x828F	# <CJK>
+0xCB7B	0x8285	# <CJK>
+0xCB7C	0x828E	# <CJK>
+0xCB7D	0x8291	# <CJK>
+0xCB7E	0x8293	# <CJK>
+0xCBA1	0x828A	# <CJK>
+0xCBA2	0x8283	# <CJK>
+0xCBA3	0x8284	# <CJK>
+0xCBA4	0x8C78	# <CJK>
+0xCBA5	0x8FC9	# <CJK>
+0xCBA6	0x8FBF	# <CJK>
+0xCBA7	0x909F	# <CJK>
+0xCBA8	0x90A1	# <CJK>
+0xCBA9	0x90A5	# <CJK>
+0xCBAA	0x909E	# <CJK>
+0xCBAB	0x90A7	# <CJK>
+0xCBAC	0x90A0	# <CJK>
+0xCBAD	0x9630	# <CJK>
+0xCBAE	0x9628	# <CJK>
+0xCBAF	0x962F	# <CJK>
+0xCBB0	0x962D	# <CJK>
+0xCBB1	0x4E33	# <CJK>
+0xCBB2	0x4F98	# <CJK>
+0xCBB3	0x4F7C	# <CJK>
+0xCBB4	0x4F85	# <CJK>
+0xCBB5	0x4F7D	# <CJK>
+0xCBB6	0x4F80	# <CJK>
+0xCBB7	0x4F87	# <CJK>
+0xCBB8	0x4F76	# <CJK>
+0xCBB9	0x4F74	# <CJK>
+0xCBBA	0x4F89	# <CJK>
+0xCBBB	0x4F84	# <CJK>
+0xCBBC	0x4F77	# <CJK>
+0xCBBD	0x4F4C	# <CJK>
+0xCBBE	0x4F97	# <CJK>
+0xCBBF	0x4F6A	# <CJK>
+0xCBC0	0x4F9A	# <CJK>
+0xCBC1	0x4F79	# <CJK>
+0xCBC2	0x4F81	# <CJK>
+0xCBC3	0x4F78	# <CJK>
+0xCBC4	0x4F90	# <CJK>
+0xCBC5	0x4F9C	# <CJK>
+0xCBC6	0x4F94	# <CJK>
+0xCBC7	0x4F9E	# <CJK>
+0xCBC8	0x4F92	# <CJK>
+0xCBC9	0x4F82	# <CJK>
+0xCBCA	0x4F95	# <CJK>
+0xCBCB	0x4F6B	# <CJK>
+0xCBCC	0x4F6E	# <CJK>
+0xCBCD	0x519E	# <CJK>
+0xCBCE	0x51BC	# <CJK>
+0xCBCF	0x51BE	# <CJK>
+0xCBD0	0x5235	# <CJK>
+0xCBD1	0x5232	# <CJK>
+0xCBD2	0x5233	# <CJK>
+0xCBD3	0x5246	# <CJK>
+0xCBD4	0x5231	# <CJK>
+0xCBD5	0x52BC	# <CJK>
+0xCBD6	0x530A	# <CJK>
+0xCBD7	0x530B	# <CJK>
+0xCBD8	0x533C	# <CJK>
+0xCBD9	0x5392	# <CJK>
+0xCBDA	0x5394	# <CJK>
+0xCBDB	0x5487	# <CJK>
+0xCBDC	0x547F	# <CJK>
+0xCBDD	0x5481	# <CJK>
+0xCBDE	0x5491	# <CJK>
+0xCBDF	0x5482	# <CJK>
+0xCBE0	0x5488	# <CJK>
+0xCBE1	0x546B	# <CJK>
+0xCBE2	0x547A	# <CJK>
+0xCBE3	0x547E	# <CJK>
+0xCBE4	0x5465	# <CJK>
+0xCBE5	0x546C	# <CJK>
+0xCBE6	0x5474	# <CJK>
+0xCBE7	0x5466	# <CJK>
+0xCBE8	0x548D	# <CJK>
+0xCBE9	0x546F	# <CJK>
+0xCBEA	0x5461	# <CJK>
+0xCBEB	0x5460	# <CJK>
+0xCBEC	0x5498	# <CJK>
+0xCBED	0x5463	# <CJK>
+0xCBEE	0x5467	# <CJK>
+0xCBEF	0x5464	# <CJK>
+0xCBF0	0x56F7	# <CJK>
+0xCBF1	0x56F9	# <CJK>
+0xCBF2	0x576F	# <CJK>
+0xCBF3	0x5772	# <CJK>
+0xCBF4	0x576D	# <CJK>
+0xCBF5	0x576B	# <CJK>
+0xCBF6	0x5771	# <CJK>
+0xCBF7	0x5770	# <CJK>
+0xCBF8	0x5776	# <CJK>
+0xCBF9	0x5780	# <CJK>
+0xCBFA	0x5775	# <CJK>
+0xCBFB	0x577B	# <CJK>
+0xCBFC	0x5773	# <CJK>
+0xCBFD	0x5774	# <CJK>
+0xCBFE	0x5762	# <CJK>
+0xCC40	0x5768	# <CJK>
+0xCC41	0x577D	# <CJK>
+0xCC42	0x590C	# <CJK>
+0xCC43	0x5945	# <CJK>
+0xCC44	0x59B5	# <CJK>
+0xCC45	0x59BA	# <CJK>
+0xCC46	0x59CF	# <CJK>
+0xCC47	0x59CE	# <CJK>
+0xCC48	0x59B2	# <CJK>
+0xCC49	0x59CC	# <CJK>
+0xCC4A	0x59C1	# <CJK>
+0xCC4B	0x59B6	# <CJK>
+0xCC4C	0x59BC	# <CJK>
+0xCC4D	0x59C3	# <CJK>
+0xCC4E	0x59D6	# <CJK>
+0xCC4F	0x59B1	# <CJK>
+0xCC50	0x59BD	# <CJK>
+0xCC51	0x59C0	# <CJK>
+0xCC52	0x59C8	# <CJK>
+0xCC53	0x59B4	# <CJK>
+0xCC54	0x59C7	# <CJK>
+0xCC55	0x5B62	# <CJK>
+0xCC56	0x5B65	# <CJK>
+0xCC57	0x5B93	# <CJK>
+0xCC58	0x5B95	# <CJK>
+0xCC59	0x5C44	# <CJK>
+0xCC5A	0x5C47	# <CJK>
+0xCC5B	0x5CAE	# <CJK>
+0xCC5C	0x5CA4	# <CJK>
+0xCC5D	0x5CA0	# <CJK>
+0xCC5E	0x5CB5	# <CJK>
+0xCC5F	0x5CAF	# <CJK>
+0xCC60	0x5CA8	# <CJK>
+0xCC61	0x5CAC	# <CJK>
+0xCC62	0x5C9F	# <CJK>
+0xCC63	0x5CA3	# <CJK>
+0xCC64	0x5CAD	# <CJK>
+0xCC65	0x5CA2	# <CJK>
+0xCC66	0x5CAA	# <CJK>
+0xCC67	0x5CA7	# <CJK>
+0xCC68	0x5C9D	# <CJK>
+0xCC69	0x5CA5	# <CJK>
+0xCC6A	0x5CB6	# <CJK>
+0xCC6B	0x5CB0	# <CJK>
+0xCC6C	0x5CA6	# <CJK>
+0xCC6D	0x5E17	# <CJK>
+0xCC6E	0x5E14	# <CJK>
+0xCC6F	0x5E19	# <CJK>
+0xCC70	0x5F28	# <CJK>
+0xCC71	0x5F22	# <CJK>
+0xCC72	0x5F23	# <CJK>
+0xCC73	0x5F24	# <CJK>
+0xCC74	0x5F54	# <CJK>
+0xCC75	0x5F82	# <CJK>
+0xCC76	0x5F7E	# <CJK>
+0xCC77	0x5F7D	# <CJK>
+0xCC78	0x5FDE	# <CJK>
+0xCC79	0x5FE5	# <CJK>
+0xCC7A	0x602D	# <CJK>
+0xCC7B	0x6026	# <CJK>
+0xCC7C	0x6019	# <CJK>
+0xCC7D	0x6032	# <CJK>
+0xCC7E	0x600B	# <CJK>
+0xCCA1	0x6034	# <CJK>
+0xCCA2	0x600A	# <CJK>
+0xCCA3	0x6017	# <CJK>
+0xCCA4	0x6033	# <CJK>
+0xCCA5	0x601A	# <CJK>
+0xCCA6	0x601E	# <CJK>
+0xCCA7	0x602C	# <CJK>
+0xCCA8	0x6022	# <CJK>
+0xCCA9	0x600D	# <CJK>
+0xCCAA	0x6010	# <CJK>
+0xCCAB	0x602E	# <CJK>
+0xCCAC	0x6013	# <CJK>
+0xCCAD	0x6011	# <CJK>
+0xCCAE	0x600C	# <CJK>
+0xCCAF	0x6009	# <CJK>
+0xCCB0	0x601C	# <CJK>
+0xCCB1	0x6214	# <CJK>
+0xCCB2	0x623D	# <CJK>
+0xCCB3	0x62AD	# <CJK>
+0xCCB4	0x62B4	# <CJK>
+0xCCB5	0x62D1	# <CJK>
+0xCCB6	0x62BE	# <CJK>
+0xCCB7	0x62AA	# <CJK>
+0xCCB8	0x62B6	# <CJK>
+0xCCB9	0x62CA	# <CJK>
+0xCCBA	0x62AE	# <CJK>
+0xCCBB	0x62B3	# <CJK>
+0xCCBC	0x62AF	# <CJK>
+0xCCBD	0x62BB	# <CJK>
+0xCCBE	0x62A9	# <CJK>
+0xCCBF	0x62B0	# <CJK>
+0xCCC0	0x62B8	# <CJK>
+0xCCC1	0x653D	# <CJK>
+0xCCC2	0x65A8	# <CJK>
+0xCCC3	0x65BB	# <CJK>
+0xCCC4	0x6609	# <CJK>
+0xCCC5	0x65FC	# <CJK>
+0xCCC6	0x6604	# <CJK>
+0xCCC7	0x6612	# <CJK>
+0xCCC8	0x6608	# <CJK>
+0xCCC9	0x65FB	# <CJK>
+0xCCCA	0x6603	# <CJK>
+0xCCCB	0x660B	# <CJK>
+0xCCCC	0x660D	# <CJK>
+0xCCCD	0x6605	# <CJK>
+0xCCCE	0x65FD	# <CJK>
+0xCCCF	0x6611	# <CJK>
+0xCCD0	0x6610	# <CJK>
+0xCCD1	0x66F6	# <CJK>
+0xCCD2	0x670A	# <CJK>
+0xCCD3	0x6785	# <CJK>
+0xCCD4	0x676C	# <CJK>
+0xCCD5	0x678E	# <CJK>
+0xCCD6	0x6792	# <CJK>
+0xCCD7	0x6776	# <CJK>
+0xCCD8	0x677B	# <CJK>
+0xCCD9	0x6798	# <CJK>
+0xCCDA	0x6786	# <CJK>
+0xCCDB	0x6784	# <CJK>
+0xCCDC	0x6774	# <CJK>
+0xCCDD	0x678D	# <CJK>
+0xCCDE	0x678C	# <CJK>
+0xCCDF	0x677A	# <CJK>
+0xCCE0	0x679F	# <CJK>
+0xCCE1	0x6791	# <CJK>
+0xCCE2	0x6799	# <CJK>
+0xCCE3	0x6783	# <CJK>
+0xCCE4	0x677D	# <CJK>
+0xCCE5	0x6781	# <CJK>
+0xCCE6	0x6778	# <CJK>
+0xCCE7	0x6779	# <CJK>
+0xCCE8	0x6794	# <CJK>
+0xCCE9	0x6B25	# <CJK>
+0xCCEA	0x6B80	# <CJK>
+0xCCEB	0x6B7E	# <CJK>
+0xCCEC	0x6BDE	# <CJK>
+0xCCED	0x6C1D	# <CJK>
+0xCCEE	0x6C93	# <CJK>
+0xCCEF	0x6CEC	# <CJK>
+0xCCF0	0x6CEB	# <CJK>
+0xCCF1	0x6CEE	# <CJK>
+0xCCF2	0x6CD9	# <CJK>
+0xCCF3	0x6CB6	# <CJK>
+0xCCF4	0x6CD4	# <CJK>
+0xCCF5	0x6CAD	# <CJK>
+0xCCF6	0x6CE7	# <CJK>
+0xCCF7	0x6CB7	# <CJK>
+0xCCF8	0x6CD0	# <CJK>
+0xCCF9	0x6CC2	# <CJK>
+0xCCFA	0x6CBA	# <CJK>
+0xCCFB	0x6CC3	# <CJK>
+0xCCFC	0x6CC6	# <CJK>
+0xCCFD	0x6CED	# <CJK>
+0xCCFE	0x6CF2	# <CJK>
+0xCD40	0x6CD2	# <CJK>
+0xCD41	0x6CDD	# <CJK>
+0xCD42	0x6CB4	# <CJK>
+0xCD43	0x6C8A	# <CJK>
+0xCD44	0x6C9D	# <CJK>
+0xCD45	0x6C80	# <CJK>
+0xCD46	0x6CDE	# <CJK>
+0xCD47	0x6CC0	# <CJK>
+0xCD48	0x6D30	# <CJK>
+0xCD49	0x6CCD	# <CJK>
+0xCD4A	0x6CC7	# <CJK>
+0xCD4B	0x6CB0	# <CJK>
+0xCD4C	0x6CF9	# <CJK>
+0xCD4D	0x6CCF	# <CJK>
+0xCD4E	0x6CE9	# <CJK>
+0xCD4F	0x6CD1	# <CJK>
+0xCD50	0x7094	# <CJK>
+0xCD51	0x7098	# <CJK>
+0xCD52	0x7085	# <CJK>
+0xCD53	0x7093	# <CJK>
+0xCD54	0x7086	# <CJK>
+0xCD55	0x7084	# <CJK>
+0xCD56	0x7091	# <CJK>
+0xCD57	0x7096	# <CJK>
+0xCD58	0x7082	# <CJK>
+0xCD59	0x709A	# <CJK>
+0xCD5A	0x7083	# <CJK>
+0xCD5B	0x726A	# <CJK>
+0xCD5C	0x72D6	# <CJK>
+0xCD5D	0x72CB	# <CJK>
+0xCD5E	0x72D8	# <CJK>
+0xCD5F	0x72C9	# <CJK>
+0xCD60	0x72DC	# <CJK>
+0xCD61	0x72D2	# <CJK>
+0xCD62	0x72D4	# <CJK>
+0xCD63	0x72DA	# <CJK>
+0xCD64	0x72CC	# <CJK>
+0xCD65	0x72D1	# <CJK>
+0xCD66	0x73A4	# <CJK>
+0xCD67	0x73A1	# <CJK>
+0xCD68	0x73AD	# <CJK>
+0xCD69	0x73A6	# <CJK>
+0xCD6A	0x73A2	# <CJK>
+0xCD6B	0x73A0	# <CJK>
+0xCD6C	0x73AC	# <CJK>
+0xCD6D	0x739D	# <CJK>
+0xCD6E	0x74DD	# <CJK>
+0xCD6F	0x74E8	# <CJK>
+0xCD70	0x753F	# <CJK>
+0xCD71	0x7540	# <CJK>
+0xCD72	0x753E	# <CJK>
+0xCD73	0x758C	# <CJK>
+0xCD74	0x7598	# <CJK>
+0xCD75	0x76AF	# <CJK>
+0xCD76	0x76F3	# <CJK>
+0xCD77	0x76F1	# <CJK>
+0xCD78	0x76F0	# <CJK>
+0xCD79	0x76F5	# <CJK>
+0xCD7A	0x77F8	# <CJK>
+0xCD7B	0x77FC	# <CJK>
+0xCD7C	0x77F9	# <CJK>
+0xCD7D	0x77FB	# <CJK>
+0xCD7E	0x77FA	# <CJK>
+0xCDA1	0x77F7	# <CJK>
+0xCDA2	0x7942	# <CJK>
+0xCDA3	0x793F	# <CJK>
+0xCDA4	0x79C5	# <CJK>
+0xCDA5	0x7A78	# <CJK>
+0xCDA6	0x7A7B	# <CJK>
+0xCDA7	0x7AFB	# <CJK>
+0xCDA8	0x7C75	# <CJK>
+0xCDA9	0x7CFD	# <CJK>
+0xCDAA	0x8035	# <CJK>
+0xCDAB	0x808F	# <CJK>
+0xCDAC	0x80AE	# <CJK>
+0xCDAD	0x80A3	# <CJK>
+0xCDAE	0x80B8	# <CJK>
+0xCDAF	0x80B5	# <CJK>
+0xCDB0	0x80AD	# <CJK>
+0xCDB1	0x8220	# <CJK>
+0xCDB2	0x82A0	# <CJK>
+0xCDB3	0x82C0	# <CJK>
+0xCDB4	0x82AB	# <CJK>
+0xCDB5	0x829A	# <CJK>
+0xCDB6	0x8298	# <CJK>
+0xCDB7	0x829B	# <CJK>
+0xCDB8	0x82B5	# <CJK>
+0xCDB9	0x82A7	# <CJK>
+0xCDBA	0x82AE	# <CJK>
+0xCDBB	0x82BC	# <CJK>
+0xCDBC	0x829E	# <CJK>
+0xCDBD	0x82BA	# <CJK>
+0xCDBE	0x82B4	# <CJK>
+0xCDBF	0x82A8	# <CJK>
+0xCDC0	0x82A1	# <CJK>
+0xCDC1	0x82A9	# <CJK>
+0xCDC2	0x82C2	# <CJK>
+0xCDC3	0x82A4	# <CJK>
+0xCDC4	0x82C3	# <CJK>
+0xCDC5	0x82B6	# <CJK>
+0xCDC6	0x82A2	# <CJK>
+0xCDC7	0x8670	# <CJK>
+0xCDC8	0x866F	# <CJK>
+0xCDC9	0x866D	# <CJK>
+0xCDCA	0x866E	# <CJK>
+0xCDCB	0x8C56	# <CJK>
+0xCDCC	0x8FD2	# <CJK>
+0xCDCD	0x8FCB	# <CJK>
+0xCDCE	0x8FD3	# <CJK>
+0xCDCF	0x8FCD	# <CJK>
+0xCDD0	0x8FD6	# <CJK>
+0xCDD1	0x8FD5	# <CJK>
+0xCDD2	0x8FD7	# <CJK>
+0xCDD3	0x90B2	# <CJK>
+0xCDD4	0x90B4	# <CJK>
+0xCDD5	0x90AF	# <CJK>
+0xCDD6	0x90B3	# <CJK>
+0xCDD7	0x90B0	# <CJK>
+0xCDD8	0x9639	# <CJK>
+0xCDD9	0x963D	# <CJK>
+0xCDDA	0x963C	# <CJK>
+0xCDDB	0x963A	# <CJK>
+0xCDDC	0x9643	# <CJK>
+0xCDDD	0x4FCD	# <CJK>
+0xCDDE	0x4FC5	# <CJK>
+0xCDDF	0x4FD3	# <CJK>
+0xCDE0	0x4FB2	# <CJK>
+0xCDE1	0x4FC9	# <CJK>
+0xCDE2	0x4FCB	# <CJK>
+0xCDE3	0x4FC1	# <CJK>
+0xCDE4	0x4FD4	# <CJK>
+0xCDE5	0x4FDC	# <CJK>
+0xCDE6	0x4FD9	# <CJK>
+0xCDE7	0x4FBB	# <CJK>
+0xCDE8	0x4FB3	# <CJK>
+0xCDE9	0x4FDB	# <CJK>
+0xCDEA	0x4FC7	# <CJK>
+0xCDEB	0x4FD6	# <CJK>
+0xCDEC	0x4FBA	# <CJK>
+0xCDED	0x4FC0	# <CJK>
+0xCDEE	0x4FB9	# <CJK>
+0xCDEF	0x4FEC	# <CJK>
+0xCDF0	0x5244	# <CJK>
+0xCDF1	0x5249	# <CJK>
+0xCDF2	0x52C0	# <CJK>
+0xCDF3	0x52C2	# <CJK>
+0xCDF4	0x533D	# <CJK>
+0xCDF5	0x537C	# <CJK>
+0xCDF6	0x5397	# <CJK>
+0xCDF7	0x5396	# <CJK>
+0xCDF8	0x5399	# <CJK>
+0xCDF9	0x5398	# <CJK>
+0xCDFA	0x54BA	# <CJK>
+0xCDFB	0x54A1	# <CJK>
+0xCDFC	0x54AD	# <CJK>
+0xCDFD	0x54A5	# <CJK>
+0xCDFE	0x54CF	# <CJK>
+0xCE40	0x54C3	# <CJK>
+0xCE41	0x830D	# <CJK>
+0xCE42	0x54B7	# <CJK>
+0xCE43	0x54AE	# <CJK>
+0xCE44	0x54D6	# <CJK>
+0xCE45	0x54B6	# <CJK>
+0xCE46	0x54C5	# <CJK>
+0xCE47	0x54C6	# <CJK>
+0xCE48	0x54A0	# <CJK>
+0xCE49	0x5470	# <CJK>
+0xCE4A	0x54BC	# <CJK>
+0xCE4B	0x54A2	# <CJK>
+0xCE4C	0x54BE	# <CJK>
+0xCE4D	0x5472	# <CJK>
+0xCE4E	0x54DE	# <CJK>
+0xCE4F	0x54B0	# <CJK>
+0xCE50	0x57B5	# <CJK>
+0xCE51	0x579E	# <CJK>
+0xCE52	0x579F	# <CJK>
+0xCE53	0x57A4	# <CJK>
+0xCE54	0x578C	# <CJK>
+0xCE55	0x5797	# <CJK>
+0xCE56	0x579D	# <CJK>
+0xCE57	0x579B	# <CJK>
+0xCE58	0x5794	# <CJK>
+0xCE59	0x5798	# <CJK>
+0xCE5A	0x578F	# <CJK>
+0xCE5B	0x5799	# <CJK>
+0xCE5C	0x57A5	# <CJK>
+0xCE5D	0x579A	# <CJK>
+0xCE5E	0x5795	# <CJK>
+0xCE5F	0x58F4	# <CJK>
+0xCE60	0x590D	# <CJK>
+0xCE61	0x5953	# <CJK>
+0xCE62	0x59E1	# <CJK>
+0xCE63	0x59DE	# <CJK>
+0xCE64	0x59EE	# <CJK>
+0xCE65	0x5A00	# <CJK>
+0xCE66	0x59F1	# <CJK>
+0xCE67	0x59DD	# <CJK>
+0xCE68	0x59FA	# <CJK>
+0xCE69	0x59FD	# <CJK>
+0xCE6A	0x59FC	# <CJK>
+0xCE6B	0x59F6	# <CJK>
+0xCE6C	0x59E4	# <CJK>
+0xCE6D	0x59F2	# <CJK>
+0xCE6E	0x59F7	# <CJK>
+0xCE6F	0x59DB	# <CJK>
+0xCE70	0x59E9	# <CJK>
+0xCE71	0x59F3	# <CJK>
+0xCE72	0x59F5	# <CJK>
+0xCE73	0x59E0	# <CJK>
+0xCE74	0x59FE	# <CJK>
+0xCE75	0x59F4	# <CJK>
+0xCE76	0x59ED	# <CJK>
+0xCE77	0x5BA8	# <CJK>
+0xCE78	0x5C4C	# <CJK>
+0xCE79	0x5CD0	# <CJK>
+0xCE7A	0x5CD8	# <CJK>
+0xCE7B	0x5CCC	# <CJK>
+0xCE7C	0x5CD7	# <CJK>
+0xCE7D	0x5CCB	# <CJK>
+0xCE7E	0x5CDB	# <CJK>
+0xCEA1	0x5CDE	# <CJK>
+0xCEA2	0x5CDA	# <CJK>
+0xCEA3	0x5CC9	# <CJK>
+0xCEA4	0x5CC7	# <CJK>
+0xCEA5	0x5CCA	# <CJK>
+0xCEA6	0x5CD6	# <CJK>
+0xCEA7	0x5CD3	# <CJK>
+0xCEA8	0x5CD4	# <CJK>
+0xCEA9	0x5CCF	# <CJK>
+0xCEAA	0x5CC8	# <CJK>
+0xCEAB	0x5CC6	# <CJK>
+0xCEAC	0x5CCE	# <CJK>
+0xCEAD	0x5CDF	# <CJK>
+0xCEAE	0x5CF8	# <CJK>
+0xCEAF	0x5DF9	# <CJK>
+0xCEB0	0x5E21	# <CJK>
+0xCEB1	0x5E22	# <CJK>
+0xCEB2	0x5E23	# <CJK>
+0xCEB3	0x5E20	# <CJK>
+0xCEB4	0x5E24	# <CJK>
+0xCEB5	0x5EB0	# <CJK>
+0xCEB6	0x5EA4	# <CJK>
+0xCEB7	0x5EA2	# <CJK>
+0xCEB8	0x5E9B	# <CJK>
+0xCEB9	0x5EA3	# <CJK>
+0xCEBA	0x5EA5	# <CJK>
+0xCEBB	0x5F07	# <CJK>
+0xCEBC	0x5F2E	# <CJK>
+0xCEBD	0x5F56	# <CJK>
+0xCEBE	0x5F86	# <CJK>
+0xCEBF	0x6037	# <CJK>
+0xCEC0	0x6039	# <CJK>
+0xCEC1	0x6054	# <CJK>
+0xCEC2	0x6072	# <CJK>
+0xCEC3	0x605E	# <CJK>
+0xCEC4	0x6045	# <CJK>
+0xCEC5	0x6053	# <CJK>
+0xCEC6	0x6047	# <CJK>
+0xCEC7	0x6049	# <CJK>
+0xCEC8	0x605B	# <CJK>
+0xCEC9	0x604C	# <CJK>
+0xCECA	0x6040	# <CJK>
+0xCECB	0x6042	# <CJK>
+0xCECC	0x605F	# <CJK>
+0xCECD	0x6024	# <CJK>
+0xCECE	0x6044	# <CJK>
+0xCECF	0x6058	# <CJK>
+0xCED0	0x6066	# <CJK>
+0xCED1	0x606E	# <CJK>
+0xCED2	0x6242	# <CJK>
+0xCED3	0x6243	# <CJK>
+0xCED4	0x62CF	# <CJK>
+0xCED5	0x630D	# <CJK>
+0xCED6	0x630B	# <CJK>
+0xCED7	0x62F5	# <CJK>
+0xCED8	0x630E	# <CJK>
+0xCED9	0x6303	# <CJK>
+0xCEDA	0x62EB	# <CJK>
+0xCEDB	0x62F9	# <CJK>
+0xCEDC	0x630F	# <CJK>
+0xCEDD	0x630C	# <CJK>
+0xCEDE	0x62F8	# <CJK>
+0xCEDF	0x62F6	# <CJK>
+0xCEE0	0x6300	# <CJK>
+0xCEE1	0x6313	# <CJK>
+0xCEE2	0x6314	# <CJK>
+0xCEE3	0x62FA	# <CJK>
+0xCEE4	0x6315	# <CJK>
+0xCEE5	0x62FB	# <CJK>
+0xCEE6	0x62F0	# <CJK>
+0xCEE7	0x6541	# <CJK>
+0xCEE8	0x6543	# <CJK>
+0xCEE9	0x65AA	# <CJK>
+0xCEEA	0x65BF	# <CJK>
+0xCEEB	0x6636	# <CJK>
+0xCEEC	0x6621	# <CJK>
+0xCEED	0x6632	# <CJK>
+0xCEEE	0x6635	# <CJK>
+0xCEEF	0x661C	# <CJK>
+0xCEF0	0x6626	# <CJK>
+0xCEF1	0x6622	# <CJK>
+0xCEF2	0x6633	# <CJK>
+0xCEF3	0x662B	# <CJK>
+0xCEF4	0x663A	# <CJK>
+0xCEF5	0x661D	# <CJK>
+0xCEF6	0x6634	# <CJK>
+0xCEF7	0x6639	# <CJK>
+0xCEF8	0x662E	# <CJK>
+0xCEF9	0x670F	# <CJK>
+0xCEFA	0x6710	# <CJK>
+0xCEFB	0x67C1	# <CJK>
+0xCEFC	0x67F2	# <CJK>
+0xCEFD	0x67C8	# <CJK>
+0xCEFE	0x67BA	# <CJK>
+0xCF40	0x67DC	# <CJK>
+0xCF41	0x67BB	# <CJK>
+0xCF42	0x67F8	# <CJK>
+0xCF43	0x67D8	# <CJK>
+0xCF44	0x67C0	# <CJK>
+0xCF45	0x67B7	# <CJK>
+0xCF46	0x67C5	# <CJK>
+0xCF47	0x67EB	# <CJK>
+0xCF48	0x67E4	# <CJK>
+0xCF49	0x67DF	# <CJK>
+0xCF4A	0x67B5	# <CJK>
+0xCF4B	0x67CD	# <CJK>
+0xCF4C	0x67B3	# <CJK>
+0xCF4D	0x67F7	# <CJK>
+0xCF4E	0x67F6	# <CJK>
+0xCF4F	0x67EE	# <CJK>
+0xCF50	0x67E3	# <CJK>
+0xCF51	0x67C2	# <CJK>
+0xCF52	0x67B9	# <CJK>
+0xCF53	0x67CE	# <CJK>
+0xCF54	0x67E7	# <CJK>
+0xCF55	0x67F0	# <CJK>
+0xCF56	0x67B2	# <CJK>
+0xCF57	0x67FC	# <CJK>
+0xCF58	0x67C6	# <CJK>
+0xCF59	0x67ED	# <CJK>
+0xCF5A	0x67CC	# <CJK>
+0xCF5B	0x67AE	# <CJK>
+0xCF5C	0x67E6	# <CJK>
+0xCF5D	0x67DB	# <CJK>
+0xCF5E	0x67FA	# <CJK>
+0xCF5F	0x67C9	# <CJK>
+0xCF60	0x67CA	# <CJK>
+0xCF61	0x67C3	# <CJK>
+0xCF62	0x67EA	# <CJK>
+0xCF63	0x67CB	# <CJK>
+0xCF64	0x6B28	# <CJK>
+0xCF65	0x6B82	# <CJK>
+0xCF66	0x6B84	# <CJK>
+0xCF67	0x6BB6	# <CJK>
+0xCF68	0x6BD6	# <CJK>
+0xCF69	0x6BD8	# <CJK>
+0xCF6A	0x6BE0	# <CJK>
+0xCF6B	0x6C20	# <CJK>
+0xCF6C	0x6C21	# <CJK>
+0xCF6D	0x6D28	# <CJK>
+0xCF6E	0x6D34	# <CJK>
+0xCF6F	0x6D2D	# <CJK>
+0xCF70	0x6D1F	# <CJK>
+0xCF71	0x6D3C	# <CJK>
+0xCF72	0x6D3F	# <CJK>
+0xCF73	0x6D12	# <CJK>
+0xCF74	0x6D0A	# <CJK>
+0xCF75	0x6CDA	# <CJK>
+0xCF76	0x6D33	# <CJK>
+0xCF77	0x6D04	# <CJK>
+0xCF78	0x6D19	# <CJK>
+0xCF79	0x6D3A	# <CJK>
+0xCF7A	0x6D1A	# <CJK>
+0xCF7B	0x6D11	# <CJK>
+0xCF7C	0x6D00	# <CJK>
+0xCF7D	0x6D1D	# <CJK>
+0xCF7E	0x6D42	# <CJK>
+0xCFA1	0x6D01	# <CJK>
+0xCFA2	0x6D18	# <CJK>
+0xCFA3	0x6D37	# <CJK>
+0xCFA4	0x6D03	# <CJK>
+0xCFA5	0x6D0F	# <CJK>
+0xCFA6	0x6D40	# <CJK>
+0xCFA7	0x6D07	# <CJK>
+0xCFA8	0x6D20	# <CJK>
+0xCFA9	0x6D2C	# <CJK>
+0xCFAA	0x6D08	# <CJK>
+0xCFAB	0x6D22	# <CJK>
+0xCFAC	0x6D09	# <CJK>
+0xCFAD	0x6D10	# <CJK>
+0xCFAE	0x70B7	# <CJK>
+0xCFAF	0x709F	# <CJK>
+0xCFB0	0x70BE	# <CJK>
+0xCFB1	0x70B1	# <CJK>
+0xCFB2	0x70B0	# <CJK>
+0xCFB3	0x70A1	# <CJK>
+0xCFB4	0x70B4	# <CJK>
+0xCFB5	0x70B5	# <CJK>
+0xCFB6	0x70A9	# <CJK>
+0xCFB7	0x7241	# <CJK>
+0xCFB8	0x7249	# <CJK>
+0xCFB9	0x724A	# <CJK>
+0xCFBA	0x726C	# <CJK>
+0xCFBB	0x7270	# <CJK>
+0xCFBC	0x7273	# <CJK>
+0xCFBD	0x726E	# <CJK>
+0xCFBE	0x72CA	# <CJK>
+0xCFBF	0x72E4	# <CJK>
+0xCFC0	0x72E8	# <CJK>
+0xCFC1	0x72EB	# <CJK>
+0xCFC2	0x72DF	# <CJK>
+0xCFC3	0x72EA	# <CJK>
+0xCFC4	0x72E6	# <CJK>
+0xCFC5	0x72E3	# <CJK>
+0xCFC6	0x7385	# <CJK>
+0xCFC7	0x73CC	# <CJK>
+0xCFC8	0x73C2	# <CJK>
+0xCFC9	0x73C8	# <CJK>
+0xCFCA	0x73C5	# <CJK>
+0xCFCB	0x73B9	# <CJK>
+0xCFCC	0x73B6	# <CJK>
+0xCFCD	0x73B5	# <CJK>
+0xCFCE	0x73B4	# <CJK>
+0xCFCF	0x73EB	# <CJK>
+0xCFD0	0x73BF	# <CJK>
+0xCFD1	0x73C7	# <CJK>
+0xCFD2	0x73BE	# <CJK>
+0xCFD3	0x73C3	# <CJK>
+0xCFD4	0x73C6	# <CJK>
+0xCFD5	0x73B8	# <CJK>
+0xCFD6	0x73CB	# <CJK>
+0xCFD7	0x74EC	# <CJK>
+0xCFD8	0x74EE	# <CJK>
+0xCFD9	0x752E	# <CJK>
+0xCFDA	0x7547	# <CJK>
+0xCFDB	0x7548	# <CJK>
+0xCFDC	0x75A7	# <CJK>
+0xCFDD	0x75AA	# <CJK>
+0xCFDE	0x7679	# <CJK>
+0xCFDF	0x76C4	# <CJK>
+0xCFE0	0x7708	# <CJK>
+0xCFE1	0x7703	# <CJK>
+0xCFE2	0x7704	# <CJK>
+0xCFE3	0x7705	# <CJK>
+0xCFE4	0x770A	# <CJK>
+0xCFE5	0x76F7	# <CJK>
+0xCFE6	0x76FB	# <CJK>
+0xCFE7	0x76FA	# <CJK>
+0xCFE8	0x77E7	# <CJK>
+0xCFE9	0x77E8	# <CJK>
+0xCFEA	0x7806	# <CJK>
+0xCFEB	0x7811	# <CJK>
+0xCFEC	0x7812	# <CJK>
+0xCFED	0x7805	# <CJK>
+0xCFEE	0x7810	# <CJK>
+0xCFEF	0x780F	# <CJK>
+0xCFF0	0x780E	# <CJK>
+0xCFF1	0x7809	# <CJK>
+0xCFF2	0x7803	# <CJK>
+0xCFF3	0x7813	# <CJK>
+0xCFF4	0x794A	# <CJK>
+0xCFF5	0x794C	# <CJK>
+0xCFF6	0x794B	# <CJK>
+0xCFF7	0x7945	# <CJK>
+0xCFF8	0x7944	# <CJK>
+0xCFF9	0x79D5	# <CJK>
+0xCFFA	0x79CD	# <CJK>
+0xCFFB	0x79CF	# <CJK>
+0xCFFC	0x79D6	# <CJK>
+0xCFFD	0x79CE	# <CJK>
+0xCFFE	0x7A80	# <CJK>
+0xD040	0x7A7E	# <CJK>
+0xD041	0x7AD1	# <CJK>
+0xD042	0x7B00	# <CJK>
+0xD043	0x7B01	# <CJK>
+0xD044	0x7C7A	# <CJK>
+0xD045	0x7C78	# <CJK>
+0xD046	0x7C79	# <CJK>
+0xD047	0x7C7F	# <CJK>
+0xD048	0x7C80	# <CJK>
+0xD049	0x7C81	# <CJK>
+0xD04A	0x7D03	# <CJK>
+0xD04B	0x7D08	# <CJK>
+0xD04C	0x7D01	# <CJK>
+0xD04D	0x7F58	# <CJK>
+0xD04E	0x7F91	# <CJK>
+0xD04F	0x7F8D	# <CJK>
+0xD050	0x7FBE	# <CJK>
+0xD051	0x8007	# <CJK>
+0xD052	0x800E	# <CJK>
+0xD053	0x800F	# <CJK>
+0xD054	0x8014	# <CJK>
+0xD055	0x8037	# <CJK>
+0xD056	0x80D8	# <CJK>
+0xD057	0x80C7	# <CJK>
+0xD058	0x80E0	# <CJK>
+0xD059	0x80D1	# <CJK>
+0xD05A	0x80C8	# <CJK>
+0xD05B	0x80C2	# <CJK>
+0xD05C	0x80D0	# <CJK>
+0xD05D	0x80C5	# <CJK>
+0xD05E	0x80E3	# <CJK>
+0xD05F	0x80D9	# <CJK>
+0xD060	0x80DC	# <CJK>
+0xD061	0x80CA	# <CJK>
+0xD062	0x80D5	# <CJK>
+0xD063	0x80C9	# <CJK>
+0xD064	0x80CF	# <CJK>
+0xD065	0x80D7	# <CJK>
+0xD066	0x80E6	# <CJK>
+0xD067	0x80CD	# <CJK>
+0xD068	0x81FF	# <CJK>
+0xD069	0x8221	# <CJK>
+0xD06A	0x8294	# <CJK>
+0xD06B	0x82D9	# <CJK>
+0xD06C	0x82FE	# <CJK>
+0xD06D	0x82F9	# <CJK>
+0xD06E	0x8307	# <CJK>
+0xD06F	0x82E8	# <CJK>
+0xD070	0x8300	# <CJK>
+0xD071	0x82D5	# <CJK>
+0xD072	0x833A	# <CJK>
+0xD073	0x82EB	# <CJK>
+0xD074	0x82D6	# <CJK>
+0xD075	0x82F4	# <CJK>
+0xD076	0x82EC	# <CJK>
+0xD077	0x82E1	# <CJK>
+0xD078	0x82F2	# <CJK>
+0xD079	0x82F5	# <CJK>
+0xD07A	0x830C	# <CJK>
+0xD07B	0x82FB	# <CJK>
+0xD07C	0x82F6	# <CJK>
+0xD07D	0x82F0	# <CJK>
+0xD07E	0x82EA	# <CJK>
+0xD0A1	0x82E4	# <CJK>
+0xD0A2	0x82E0	# <CJK>
+0xD0A3	0x82FA	# <CJK>
+0xD0A4	0x82F3	# <CJK>
+0xD0A5	0x82ED	# <CJK>
+0xD0A6	0x8677	# <CJK>
+0xD0A7	0x8674	# <CJK>
+0xD0A8	0x867C	# <CJK>
+0xD0A9	0x8673	# <CJK>
+0xD0AA	0x8841	# <CJK>
+0xD0AB	0x884E	# <CJK>
+0xD0AC	0x8867	# <CJK>
+0xD0AD	0x886A	# <CJK>
+0xD0AE	0x8869	# <CJK>
+0xD0AF	0x89D3	# <CJK>
+0xD0B0	0x8A04	# <CJK>
+0xD0B1	0x8A07	# <CJK>
+0xD0B2	0x8D72	# <CJK>
+0xD0B3	0x8FE3	# <CJK>
+0xD0B4	0x8FE1	# <CJK>
+0xD0B5	0x8FEE	# <CJK>
+0xD0B6	0x8FE0	# <CJK>
+0xD0B7	0x90F1	# <CJK>
+0xD0B8	0x90BD	# <CJK>
+0xD0B9	0x90BF	# <CJK>
+0xD0BA	0x90D5	# <CJK>
+0xD0BB	0x90C5	# <CJK>
+0xD0BC	0x90BE	# <CJK>
+0xD0BD	0x90C7	# <CJK>
+0xD0BE	0x90CB	# <CJK>
+0xD0BF	0x90C8	# <CJK>
+0xD0C0	0x91D4	# <CJK>
+0xD0C1	0x91D3	# <CJK>
+0xD0C2	0x9654	# <CJK>
+0xD0C3	0x964F	# <CJK>
+0xD0C4	0x9651	# <CJK>
+0xD0C5	0x9653	# <CJK>
+0xD0C6	0x964A	# <CJK>
+0xD0C7	0x964E	# <CJK>
+0xD0C8	0x501E	# <CJK>
+0xD0C9	0x5005	# <CJK>
+0xD0CA	0x5007	# <CJK>
+0xD0CB	0x5013	# <CJK>
+0xD0CC	0x5022	# <CJK>
+0xD0CD	0x5030	# <CJK>
+0xD0CE	0x501B	# <CJK>
+0xD0CF	0x4FF5	# <CJK>
+0xD0D0	0x4FF4	# <CJK>
+0xD0D1	0x5033	# <CJK>
+0xD0D2	0x5037	# <CJK>
+0xD0D3	0x502C	# <CJK>
+0xD0D4	0x4FF6	# <CJK>
+0xD0D5	0x4FF7	# <CJK>
+0xD0D6	0x5017	# <CJK>
+0xD0D7	0x501C	# <CJK>
+0xD0D8	0x5020	# <CJK>
+0xD0D9	0x5027	# <CJK>
+0xD0DA	0x5035	# <CJK>
+0xD0DB	0x502F	# <CJK>
+0xD0DC	0x5031	# <CJK>
+0xD0DD	0x500E	# <CJK>
+0xD0DE	0x515A	# <CJK>
+0xD0DF	0x5194	# <CJK>
+0xD0E0	0x5193	# <CJK>
+0xD0E1	0x51CA	# <CJK>
+0xD0E2	0x51C4	# <CJK>
+0xD0E3	0x51C5	# <CJK>
+0xD0E4	0x51C8	# <CJK>
+0xD0E5	0x51CE	# <CJK>
+0xD0E6	0x5261	# <CJK>
+0xD0E7	0x525A	# <CJK>
+0xD0E8	0x5252	# <CJK>
+0xD0E9	0x525E	# <CJK>
+0xD0EA	0x525F	# <CJK>
+0xD0EB	0x5255	# <CJK>
+0xD0EC	0x5262	# <CJK>
+0xD0ED	0x52CD	# <CJK>
+0xD0EE	0x530E	# <CJK>
+0xD0EF	0x539E	# <CJK>
+0xD0F0	0x5526	# <CJK>
+0xD0F1	0x54E2	# <CJK>
+0xD0F2	0x5517	# <CJK>
+0xD0F3	0x5512	# <CJK>
+0xD0F4	0x54E7	# <CJK>
+0xD0F5	0x54F3	# <CJK>
+0xD0F6	0x54E4	# <CJK>
+0xD0F7	0x551A	# <CJK>
+0xD0F8	0x54FF	# <CJK>
+0xD0F9	0x5504	# <CJK>
+0xD0FA	0x5508	# <CJK>
+0xD0FB	0x54EB	# <CJK>
+0xD0FC	0x5511	# <CJK>
+0xD0FD	0x5505	# <CJK>
+0xD0FE	0x54F1	# <CJK>
+0xD140	0x550A	# <CJK>
+0xD141	0x54FB	# <CJK>
+0xD142	0x54F7	# <CJK>
+0xD143	0x54F8	# <CJK>
+0xD144	0x54E0	# <CJK>
+0xD145	0x550E	# <CJK>
+0xD146	0x5503	# <CJK>
+0xD147	0x550B	# <CJK>
+0xD148	0x5701	# <CJK>
+0xD149	0x5702	# <CJK>
+0xD14A	0x57CC	# <CJK>
+0xD14B	0x5832	# <CJK>
+0xD14C	0x57D5	# <CJK>
+0xD14D	0x57D2	# <CJK>
+0xD14E	0x57BA	# <CJK>
+0xD14F	0x57C6	# <CJK>
+0xD150	0x57BD	# <CJK>
+0xD151	0x57BC	# <CJK>
+0xD152	0x57B8	# <CJK>
+0xD153	0x57B6	# <CJK>
+0xD154	0x57BF	# <CJK>
+0xD155	0x57C7	# <CJK>
+0xD156	0x57D0	# <CJK>
+0xD157	0x57B9	# <CJK>
+0xD158	0x57C1	# <CJK>
+0xD159	0x590E	# <CJK>
+0xD15A	0x594A	# <CJK>
+0xD15B	0x5A19	# <CJK>
+0xD15C	0x5A16	# <CJK>
+0xD15D	0x5A2D	# <CJK>
+0xD15E	0x5A2E	# <CJK>
+0xD15F	0x5A15	# <CJK>
+0xD160	0x5A0F	# <CJK>
+0xD161	0x5A17	# <CJK>
+0xD162	0x5A0A	# <CJK>
+0xD163	0x5A1E	# <CJK>
+0xD164	0x5A33	# <CJK>
+0xD165	0x5B6C	# <CJK>
+0xD166	0x5BA7	# <CJK>
+0xD167	0x5BAD	# <CJK>
+0xD168	0x5BAC	# <CJK>
+0xD169	0x5C03	# <CJK>
+0xD16A	0x5C56	# <CJK>
+0xD16B	0x5C54	# <CJK>
+0xD16C	0x5CEC	# <CJK>
+0xD16D	0x5CFF	# <CJK>
+0xD16E	0x5CEE	# <CJK>
+0xD16F	0x5CF1	# <CJK>
+0xD170	0x5CF7	# <CJK>
+0xD171	0x5D00	# <CJK>
+0xD172	0x5CF9	# <CJK>
+0xD173	0x5E29	# <CJK>
+0xD174	0x5E28	# <CJK>
+0xD175	0x5EA8	# <CJK>
+0xD176	0x5EAE	# <CJK>
+0xD177	0x5EAA	# <CJK>
+0xD178	0x5EAC	# <CJK>
+0xD179	0x5F33	# <CJK>
+0xD17A	0x5F30	# <CJK>
+0xD17B	0x5F67	# <CJK>
+0xD17C	0x605D	# <CJK>
+0xD17D	0x605A	# <CJK>
+0xD17E	0x6067	# <CJK>
+0xD1A1	0x6041	# <CJK>
+0xD1A2	0x60A2	# <CJK>
+0xD1A3	0x6088	# <CJK>
+0xD1A4	0x6080	# <CJK>
+0xD1A5	0x6092	# <CJK>
+0xD1A6	0x6081	# <CJK>
+0xD1A7	0x609D	# <CJK>
+0xD1A8	0x6083	# <CJK>
+0xD1A9	0x6095	# <CJK>
+0xD1AA	0x609B	# <CJK>
+0xD1AB	0x6097	# <CJK>
+0xD1AC	0x6087	# <CJK>
+0xD1AD	0x609C	# <CJK>
+0xD1AE	0x608E	# <CJK>
+0xD1AF	0x6219	# <CJK>
+0xD1B0	0x6246	# <CJK>
+0xD1B1	0x62F2	# <CJK>
+0xD1B2	0x6310	# <CJK>
+0xD1B3	0x6356	# <CJK>
+0xD1B4	0x632C	# <CJK>
+0xD1B5	0x6344	# <CJK>
+0xD1B6	0x6345	# <CJK>
+0xD1B7	0x6336	# <CJK>
+0xD1B8	0x6343	# <CJK>
+0xD1B9	0x63E4	# <CJK>
+0xD1BA	0x6339	# <CJK>
+0xD1BB	0x634B	# <CJK>
+0xD1BC	0x634A	# <CJK>
+0xD1BD	0x633C	# <CJK>
+0xD1BE	0x6329	# <CJK>
+0xD1BF	0x6341	# <CJK>
+0xD1C0	0x6334	# <CJK>
+0xD1C1	0x6358	# <CJK>
+0xD1C2	0x6354	# <CJK>
+0xD1C3	0x6359	# <CJK>
+0xD1C4	0x632D	# <CJK>
+0xD1C5	0x6347	# <CJK>
+0xD1C6	0x6333	# <CJK>
+0xD1C7	0x635A	# <CJK>
+0xD1C8	0x6351	# <CJK>
+0xD1C9	0x6338	# <CJK>
+0xD1CA	0x6357	# <CJK>
+0xD1CB	0x6340	# <CJK>
+0xD1CC	0x6348	# <CJK>
+0xD1CD	0x654A	# <CJK>
+0xD1CE	0x6546	# <CJK>
+0xD1CF	0x65C6	# <CJK>
+0xD1D0	0x65C3	# <CJK>
+0xD1D1	0x65C4	# <CJK>
+0xD1D2	0x65C2	# <CJK>
+0xD1D3	0x664A	# <CJK>
+0xD1D4	0x665F	# <CJK>
+0xD1D5	0x6647	# <CJK>
+0xD1D6	0x6651	# <CJK>
+0xD1D7	0x6712	# <CJK>
+0xD1D8	0x6713	# <CJK>
+0xD1D9	0x681F	# <CJK>
+0xD1DA	0x681A	# <CJK>
+0xD1DB	0x6849	# <CJK>
+0xD1DC	0x6832	# <CJK>
+0xD1DD	0x6833	# <CJK>
+0xD1DE	0x683B	# <CJK>
+0xD1DF	0x684B	# <CJK>
+0xD1E0	0x684F	# <CJK>
+0xD1E1	0x6816	# <CJK>
+0xD1E2	0x6831	# <CJK>
+0xD1E3	0x681C	# <CJK>
+0xD1E4	0x6835	# <CJK>
+0xD1E5	0x682B	# <CJK>
+0xD1E6	0x682D	# <CJK>
+0xD1E7	0x682F	# <CJK>
+0xD1E8	0x684E	# <CJK>
+0xD1E9	0x6844	# <CJK>
+0xD1EA	0x6834	# <CJK>
+0xD1EB	0x681D	# <CJK>
+0xD1EC	0x6812	# <CJK>
+0xD1ED	0x6814	# <CJK>
+0xD1EE	0x6826	# <CJK>
+0xD1EF	0x6828	# <CJK>
+0xD1F0	0x682E	# <CJK>
+0xD1F1	0x684D	# <CJK>
+0xD1F2	0x683A	# <CJK>
+0xD1F3	0x6825	# <CJK>
+0xD1F4	0x6820	# <CJK>
+0xD1F5	0x6B2C	# <CJK>
+0xD1F6	0x6B2F	# <CJK>
+0xD1F7	0x6B2D	# <CJK>
+0xD1F8	0x6B31	# <CJK>
+0xD1F9	0x6B34	# <CJK>
+0xD1FA	0x6B6D	# <CJK>
+0xD1FB	0x8082	# <CJK>
+0xD1FC	0x6B88	# <CJK>
+0xD1FD	0x6BE6	# <CJK>
+0xD1FE	0x6BE4	# <CJK>
+0xD240	0x6BE8	# <CJK>
+0xD241	0x6BE3	# <CJK>
+0xD242	0x6BE2	# <CJK>
+0xD243	0x6BE7	# <CJK>
+0xD244	0x6C25	# <CJK>
+0xD245	0x6D7A	# <CJK>
+0xD246	0x6D63	# <CJK>
+0xD247	0x6D64	# <CJK>
+0xD248	0x6D76	# <CJK>
+0xD249	0x6D0D	# <CJK>
+0xD24A	0x6D61	# <CJK>
+0xD24B	0x6D92	# <CJK>
+0xD24C	0x6D58	# <CJK>
+0xD24D	0x6D62	# <CJK>
+0xD24E	0x6D6D	# <CJK>
+0xD24F	0x6D6F	# <CJK>
+0xD250	0x6D91	# <CJK>
+0xD251	0x6D8D	# <CJK>
+0xD252	0x6DEF	# <CJK>
+0xD253	0x6D7F	# <CJK>
+0xD254	0x6D86	# <CJK>
+0xD255	0x6D5E	# <CJK>
+0xD256	0x6D67	# <CJK>
+0xD257	0x6D60	# <CJK>
+0xD258	0x6D97	# <CJK>
+0xD259	0x6D70	# <CJK>
+0xD25A	0x6D7C	# <CJK>
+0xD25B	0x6D5F	# <CJK>
+0xD25C	0x6D82	# <CJK>
+0xD25D	0x6D98	# <CJK>
+0xD25E	0x6D2F	# <CJK>
+0xD25F	0x6D68	# <CJK>
+0xD260	0x6D8B	# <CJK>
+0xD261	0x6D7E	# <CJK>
+0xD262	0x6D80	# <CJK>
+0xD263	0x6D84	# <CJK>
+0xD264	0x6D16	# <CJK>
+0xD265	0x6D83	# <CJK>
+0xD266	0x6D7B	# <CJK>
+0xD267	0x6D7D	# <CJK>
+0xD268	0x6D75	# <CJK>
+0xD269	0x6D90	# <CJK>
+0xD26A	0x70DC	# <CJK>
+0xD26B	0x70D3	# <CJK>
+0xD26C	0x70D1	# <CJK>
+0xD26D	0x70DD	# <CJK>
+0xD26E	0x70CB	# <CJK>
+0xD26F	0x7F39	# <CJK>
+0xD270	0x70E2	# <CJK>
+0xD271	0x70D7	# <CJK>
+0xD272	0x70D2	# <CJK>
+0xD273	0x70DE	# <CJK>
+0xD274	0x70E0	# <CJK>
+0xD275	0x70D4	# <CJK>
+0xD276	0x70CD	# <CJK>
+0xD277	0x70C5	# <CJK>
+0xD278	0x70C6	# <CJK>
+0xD279	0x70C7	# <CJK>
+0xD27A	0x70DA	# <CJK>
+0xD27B	0x70CE	# <CJK>
+0xD27C	0x70E1	# <CJK>
+0xD27D	0x7242	# <CJK>
+0xD27E	0x7278	# <CJK>
+0xD2A1	0x7277	# <CJK>
+0xD2A2	0x7276	# <CJK>
+0xD2A3	0x7300	# <CJK>
+0xD2A4	0x72FA	# <CJK>
+0xD2A5	0x72F4	# <CJK>
+0xD2A6	0x72FE	# <CJK>
+0xD2A7	0x72F6	# <CJK>
+0xD2A8	0x72F3	# <CJK>
+0xD2A9	0x72FB	# <CJK>
+0xD2AA	0x7301	# <CJK>
+0xD2AB	0x73D3	# <CJK>
+0xD2AC	0x73D9	# <CJK>
+0xD2AD	0x73E5	# <CJK>
+0xD2AE	0x73D6	# <CJK>
+0xD2AF	0x73BC	# <CJK>
+0xD2B0	0x73E7	# <CJK>
+0xD2B1	0x73E3	# <CJK>
+0xD2B2	0x73E9	# <CJK>
+0xD2B3	0x73DC	# <CJK>
+0xD2B4	0x73D2	# <CJK>
+0xD2B5	0x73DB	# <CJK>
+0xD2B6	0x73D4	# <CJK>
+0xD2B7	0x73DD	# <CJK>
+0xD2B8	0x73DA	# <CJK>
+0xD2B9	0x73D7	# <CJK>
+0xD2BA	0x73D8	# <CJK>
+0xD2BB	0x73E8	# <CJK>
+0xD2BC	0x74DE	# <CJK>
+0xD2BD	0x74DF	# <CJK>
+0xD2BE	0x74F4	# <CJK>
+0xD2BF	0x74F5	# <CJK>
+0xD2C0	0x7521	# <CJK>
+0xD2C1	0x755B	# <CJK>
+0xD2C2	0x755F	# <CJK>
+0xD2C3	0x75B0	# <CJK>
+0xD2C4	0x75C1	# <CJK>
+0xD2C5	0x75BB	# <CJK>
+0xD2C6	0x75C4	# <CJK>
+0xD2C7	0x75C0	# <CJK>
+0xD2C8	0x75BF	# <CJK>
+0xD2C9	0x75B6	# <CJK>
+0xD2CA	0x75BA	# <CJK>
+0xD2CB	0x768A	# <CJK>
+0xD2CC	0x76C9	# <CJK>
+0xD2CD	0x771D	# <CJK>
+0xD2CE	0x771B	# <CJK>
+0xD2CF	0x7710	# <CJK>
+0xD2D0	0x7713	# <CJK>
+0xD2D1	0x7712	# <CJK>
+0xD2D2	0x7723	# <CJK>
+0xD2D3	0x7711	# <CJK>
+0xD2D4	0x7715	# <CJK>
+0xD2D5	0x7719	# <CJK>
+0xD2D6	0x771A	# <CJK>
+0xD2D7	0x7722	# <CJK>
+0xD2D8	0x7727	# <CJK>
+0xD2D9	0x7823	# <CJK>
+0xD2DA	0x782C	# <CJK>
+0xD2DB	0x7822	# <CJK>
+0xD2DC	0x7835	# <CJK>
+0xD2DD	0x782F	# <CJK>
+0xD2DE	0x7828	# <CJK>
+0xD2DF	0x782E	# <CJK>
+0xD2E0	0x782B	# <CJK>
+0xD2E1	0x7821	# <CJK>
+0xD2E2	0x7829	# <CJK>
+0xD2E3	0x7833	# <CJK>
+0xD2E4	0x782A	# <CJK>
+0xD2E5	0x7831	# <CJK>
+0xD2E6	0x7954	# <CJK>
+0xD2E7	0x795B	# <CJK>
+0xD2E8	0x794F	# <CJK>
+0xD2E9	0x795C	# <CJK>
+0xD2EA	0x7953	# <CJK>
+0xD2EB	0x7952	# <CJK>
+0xD2EC	0x7951	# <CJK>
+0xD2ED	0x79EB	# <CJK>
+0xD2EE	0x79EC	# <CJK>
+0xD2EF	0x79E0	# <CJK>
+0xD2F0	0x79EE	# <CJK>
+0xD2F1	0x79ED	# <CJK>
+0xD2F2	0x79EA	# <CJK>
+0xD2F3	0x79DC	# <CJK>
+0xD2F4	0x79DE	# <CJK>
+0xD2F5	0x79DD	# <CJK>
+0xD2F6	0x7A86	# <CJK>
+0xD2F7	0x7A89	# <CJK>
+0xD2F8	0x7A85	# <CJK>
+0xD2F9	0x7A8B	# <CJK>
+0xD2FA	0x7A8C	# <CJK>
+0xD2FB	0x7A8A	# <CJK>
+0xD2FC	0x7A87	# <CJK>
+0xD2FD	0x7AD8	# <CJK>
+0xD2FE	0x7B10	# <CJK>
+0xD340	0x7B04	# <CJK>
+0xD341	0x7B13	# <CJK>
+0xD342	0x7B05	# <CJK>
+0xD343	0x7B0F	# <CJK>
+0xD344	0x7B08	# <CJK>
+0xD345	0x7B0A	# <CJK>
+0xD346	0x7B0E	# <CJK>
+0xD347	0x7B09	# <CJK>
+0xD348	0x7B12	# <CJK>
+0xD349	0x7C84	# <CJK>
+0xD34A	0x7C91	# <CJK>
+0xD34B	0x7C8A	# <CJK>
+0xD34C	0x7C8C	# <CJK>
+0xD34D	0x7C88	# <CJK>
+0xD34E	0x7C8D	# <CJK>
+0xD34F	0x7C85	# <CJK>
+0xD350	0x7D1E	# <CJK>
+0xD351	0x7D1D	# <CJK>
+0xD352	0x7D11	# <CJK>
+0xD353	0x7D0E	# <CJK>
+0xD354	0x7D18	# <CJK>
+0xD355	0x7D16	# <CJK>
+0xD356	0x7D13	# <CJK>
+0xD357	0x7D1F	# <CJK>
+0xD358	0x7D12	# <CJK>
+0xD359	0x7D0F	# <CJK>
+0xD35A	0x7D0C	# <CJK>
+0xD35B	0x7F5C	# <CJK>
+0xD35C	0x7F61	# <CJK>
+0xD35D	0x7F5E	# <CJK>
+0xD35E	0x7F60	# <CJK>
+0xD35F	0x7F5D	# <CJK>
+0xD360	0x7F5B	# <CJK>
+0xD361	0x7F96	# <CJK>
+0xD362	0x7F92	# <CJK>
+0xD363	0x7FC3	# <CJK>
+0xD364	0x7FC2	# <CJK>
+0xD365	0x7FC0	# <CJK>
+0xD366	0x8016	# <CJK>
+0xD367	0x803E	# <CJK>
+0xD368	0x8039	# <CJK>
+0xD369	0x80FA	# <CJK>
+0xD36A	0x80F2	# <CJK>
+0xD36B	0x80F9	# <CJK>
+0xD36C	0x80F5	# <CJK>
+0xD36D	0x8101	# <CJK>
+0xD36E	0x80FB	# <CJK>
+0xD36F	0x8100	# <CJK>
+0xD370	0x8201	# <CJK>
+0xD371	0x822F	# <CJK>
+0xD372	0x8225	# <CJK>
+0xD373	0x8333	# <CJK>
+0xD374	0x832D	# <CJK>
+0xD375	0x8344	# <CJK>
+0xD376	0x8319	# <CJK>
+0xD377	0x8351	# <CJK>
+0xD378	0x8325	# <CJK>
+0xD379	0x8356	# <CJK>
+0xD37A	0x833F	# <CJK>
+0xD37B	0x8341	# <CJK>
+0xD37C	0x8326	# <CJK>
+0xD37D	0x831C	# <CJK>
+0xD37E	0x8322	# <CJK>
+0xD3A1	0x8342	# <CJK>
+0xD3A2	0x834E	# <CJK>
+0xD3A3	0x831B	# <CJK>
+0xD3A4	0x832A	# <CJK>
+0xD3A5	0x8308	# <CJK>
+0xD3A6	0x833C	# <CJK>
+0xD3A7	0x834D	# <CJK>
+0xD3A8	0x8316	# <CJK>
+0xD3A9	0x8324	# <CJK>
+0xD3AA	0x8320	# <CJK>
+0xD3AB	0x8337	# <CJK>
+0xD3AC	0x832F	# <CJK>
+0xD3AD	0x8329	# <CJK>
+0xD3AE	0x8347	# <CJK>
+0xD3AF	0x8345	# <CJK>
+0xD3B0	0x834C	# <CJK>
+0xD3B1	0x8353	# <CJK>
+0xD3B2	0x831E	# <CJK>
+0xD3B3	0x832C	# <CJK>
+0xD3B4	0x834B	# <CJK>
+0xD3B5	0x8327	# <CJK>
+0xD3B6	0x8348	# <CJK>
+0xD3B7	0x8653	# <CJK>
+0xD3B8	0x8652	# <CJK>
+0xD3B9	0x86A2	# <CJK>
+0xD3BA	0x86A8	# <CJK>
+0xD3BB	0x8696	# <CJK>
+0xD3BC	0x868D	# <CJK>
+0xD3BD	0x8691	# <CJK>
+0xD3BE	0x869E	# <CJK>
+0xD3BF	0x8687	# <CJK>
+0xD3C0	0x8697	# <CJK>
+0xD3C1	0x8686	# <CJK>
+0xD3C2	0x868B	# <CJK>
+0xD3C3	0x869A	# <CJK>
+0xD3C4	0x8685	# <CJK>
+0xD3C5	0x86A5	# <CJK>
+0xD3C6	0x8699	# <CJK>
+0xD3C7	0x86A1	# <CJK>
+0xD3C8	0x86A7	# <CJK>
+0xD3C9	0x8695	# <CJK>
+0xD3CA	0x8698	# <CJK>
+0xD3CB	0x868E	# <CJK>
+0xD3CC	0x869D	# <CJK>
+0xD3CD	0x8690	# <CJK>
+0xD3CE	0x8694	# <CJK>
+0xD3CF	0x8843	# <CJK>
+0xD3D0	0x8844	# <CJK>
+0xD3D1	0x886D	# <CJK>
+0xD3D2	0x8875	# <CJK>
+0xD3D3	0x8876	# <CJK>
+0xD3D4	0x8872	# <CJK>
+0xD3D5	0x8880	# <CJK>
+0xD3D6	0x8871	# <CJK>
+0xD3D7	0x887F	# <CJK>
+0xD3D8	0x886F	# <CJK>
+0xD3D9	0x8883	# <CJK>
+0xD3DA	0x887E	# <CJK>
+0xD3DB	0x8874	# <CJK>
+0xD3DC	0x887C	# <CJK>
+0xD3DD	0x8A12	# <CJK>
+0xD3DE	0x8C47	# <CJK>
+0xD3DF	0x8C57	# <CJK>
+0xD3E0	0x8C7B	# <CJK>
+0xD3E1	0x8CA4	# <CJK>
+0xD3E2	0x8CA3	# <CJK>
+0xD3E3	0x8D76	# <CJK>
+0xD3E4	0x8D78	# <CJK>
+0xD3E5	0x8DB5	# <CJK>
+0xD3E6	0x8DB7	# <CJK>
+0xD3E7	0x8DB6	# <CJK>
+0xD3E8	0x8ED1	# <CJK>
+0xD3E9	0x8ED3	# <CJK>
+0xD3EA	0x8FFE	# <CJK>
+0xD3EB	0x8FF5	# <CJK>
+0xD3EC	0x9002	# <CJK>
+0xD3ED	0x8FFF	# <CJK>
+0xD3EE	0x8FFB	# <CJK>
+0xD3EF	0x9004	# <CJK>
+0xD3F0	0x8FFC	# <CJK>
+0xD3F1	0x8FF6	# <CJK>
+0xD3F2	0x90D6	# <CJK>
+0xD3F3	0x90E0	# <CJK>
+0xD3F4	0x90D9	# <CJK>
+0xD3F5	0x90DA	# <CJK>
+0xD3F6	0x90E3	# <CJK>
+0xD3F7	0x90DF	# <CJK>
+0xD3F8	0x90E5	# <CJK>
+0xD3F9	0x90D8	# <CJK>
+0xD3FA	0x90DB	# <CJK>
+0xD3FB	0x90D7	# <CJK>
+0xD3FC	0x90DC	# <CJK>
+0xD3FD	0x90E4	# <CJK>
+0xD3FE	0x9150	# <CJK>
+0xD440	0x914E	# <CJK>
+0xD441	0x914F	# <CJK>
+0xD442	0x91D5	# <CJK>
+0xD443	0x91E2	# <CJK>
+0xD444	0x91DA	# <CJK>
+0xD445	0x965C	# <CJK>
+0xD446	0x965F	# <CJK>
+0xD447	0x96BC	# <CJK>
+0xD448	0x98E3	# <CJK>
+0xD449	0x9ADF	# <CJK>
+0xD44A	0x9B2F	# <CJK>
+0xD44B	0x4E7F	# <CJK>
+0xD44C	0x5070	# <CJK>
+0xD44D	0x506A	# <CJK>
+0xD44E	0x5061	# <CJK>
+0xD44F	0x505E	# <CJK>
+0xD450	0x5060	# <CJK>
+0xD451	0x5053	# <CJK>
+0xD452	0x504B	# <CJK>
+0xD453	0x505D	# <CJK>
+0xD454	0x5072	# <CJK>
+0xD455	0x5048	# <CJK>
+0xD456	0x504D	# <CJK>
+0xD457	0x5041	# <CJK>
+0xD458	0x505B	# <CJK>
+0xD459	0x504A	# <CJK>
+0xD45A	0x5062	# <CJK>
+0xD45B	0x5015	# <CJK>
+0xD45C	0x5045	# <CJK>
+0xD45D	0x505F	# <CJK>
+0xD45E	0x5069	# <CJK>
+0xD45F	0x506B	# <CJK>
+0xD460	0x5063	# <CJK>
+0xD461	0x5064	# <CJK>
+0xD462	0x5046	# <CJK>
+0xD463	0x5040	# <CJK>
+0xD464	0x506E	# <CJK>
+0xD465	0x5073	# <CJK>
+0xD466	0x5057	# <CJK>
+0xD467	0x5051	# <CJK>
+0xD468	0x51D0	# <CJK>
+0xD469	0x526B	# <CJK>
+0xD46A	0x526D	# <CJK>
+0xD46B	0x526C	# <CJK>
+0xD46C	0x526E	# <CJK>
+0xD46D	0x52D6	# <CJK>
+0xD46E	0x52D3	# <CJK>
+0xD46F	0x532D	# <CJK>
+0xD470	0x539C	# <CJK>
+0xD471	0x5575	# <CJK>
+0xD472	0x5576	# <CJK>
+0xD473	0x553C	# <CJK>
+0xD474	0x554D	# <CJK>
+0xD475	0x5550	# <CJK>
+0xD476	0x5534	# <CJK>
+0xD477	0x552A	# <CJK>
+0xD478	0x5551	# <CJK>
+0xD479	0x5562	# <CJK>
+0xD47A	0x5536	# <CJK>
+0xD47B	0x5535	# <CJK>
+0xD47C	0x5530	# <CJK>
+0xD47D	0x5552	# <CJK>
+0xD47E	0x5545	# <CJK>
+0xD4A1	0x550C	# <CJK>
+0xD4A2	0x5532	# <CJK>
+0xD4A3	0x5565	# <CJK>
+0xD4A4	0x554E	# <CJK>
+0xD4A5	0x5539	# <CJK>
+0xD4A6	0x5548	# <CJK>
+0xD4A7	0x552D	# <CJK>
+0xD4A8	0x553B	# <CJK>
+0xD4A9	0x5540	# <CJK>
+0xD4AA	0x554B	# <CJK>
+0xD4AB	0x570A	# <CJK>
+0xD4AC	0x5707	# <CJK>
+0xD4AD	0x57FB	# <CJK>
+0xD4AE	0x5814	# <CJK>
+0xD4AF	0x57E2	# <CJK>
+0xD4B0	0x57F6	# <CJK>
+0xD4B1	0x57DC	# <CJK>
+0xD4B2	0x57F4	# <CJK>
+0xD4B3	0x5800	# <CJK>
+0xD4B4	0x57ED	# <CJK>
+0xD4B5	0x57FD	# <CJK>
+0xD4B6	0x5808	# <CJK>
+0xD4B7	0x57F8	# <CJK>
+0xD4B8	0x580B	# <CJK>
+0xD4B9	0x57F3	# <CJK>
+0xD4BA	0x57CF	# <CJK>
+0xD4BB	0x5807	# <CJK>
+0xD4BC	0x57EE	# <CJK>
+0xD4BD	0x57E3	# <CJK>
+0xD4BE	0x57F2	# <CJK>
+0xD4BF	0x57E5	# <CJK>
+0xD4C0	0x57EC	# <CJK>
+0xD4C1	0x57E1	# <CJK>
+0xD4C2	0x580E	# <CJK>
+0xD4C3	0x57FC	# <CJK>
+0xD4C4	0x5810	# <CJK>
+0xD4C5	0x57E7	# <CJK>
+0xD4C6	0x5801	# <CJK>
+0xD4C7	0x580C	# <CJK>
+0xD4C8	0x57F1	# <CJK>
+0xD4C9	0x57E9	# <CJK>
+0xD4CA	0x57F0	# <CJK>
+0xD4CB	0x580D	# <CJK>
+0xD4CC	0x5804	# <CJK>
+0xD4CD	0x595C	# <CJK>
+0xD4CE	0x5A60	# <CJK>
+0xD4CF	0x5A58	# <CJK>
+0xD4D0	0x5A55	# <CJK>
+0xD4D1	0x5A67	# <CJK>
+0xD4D2	0x5A5E	# <CJK>
+0xD4D3	0x5A38	# <CJK>
+0xD4D4	0x5A35	# <CJK>
+0xD4D5	0x5A6D	# <CJK>
+0xD4D6	0x5A50	# <CJK>
+0xD4D7	0x5A5F	# <CJK>
+0xD4D8	0x5A65	# <CJK>
+0xD4D9	0x5A6C	# <CJK>
+0xD4DA	0x5A53	# <CJK>
+0xD4DB	0x5A64	# <CJK>
+0xD4DC	0x5A57	# <CJK>
+0xD4DD	0x5A43	# <CJK>
+0xD4DE	0x5A5D	# <CJK>
+0xD4DF	0x5A52	# <CJK>
+0xD4E0	0x5A44	# <CJK>
+0xD4E1	0x5A5B	# <CJK>
+0xD4E2	0x5A48	# <CJK>
+0xD4E3	0x5A8E	# <CJK>
+0xD4E4	0x5A3E	# <CJK>
+0xD4E5	0x5A4D	# <CJK>
+0xD4E6	0x5A39	# <CJK>
+0xD4E7	0x5A4C	# <CJK>
+0xD4E8	0x5A70	# <CJK>
+0xD4E9	0x5A69	# <CJK>
+0xD4EA	0x5A47	# <CJK>
+0xD4EB	0x5A51	# <CJK>
+0xD4EC	0x5A56	# <CJK>
+0xD4ED	0x5A42	# <CJK>
+0xD4EE	0x5A5C	# <CJK>
+0xD4EF	0x5B72	# <CJK>
+0xD4F0	0x5B6E	# <CJK>
+0xD4F1	0x5BC1	# <CJK>
+0xD4F2	0x5BC0	# <CJK>
+0xD4F3	0x5C59	# <CJK>
+0xD4F4	0x5D1E	# <CJK>
+0xD4F5	0x5D0B	# <CJK>
+0xD4F6	0x5D1D	# <CJK>
+0xD4F7	0x5D1A	# <CJK>
+0xD4F8	0x5D20	# <CJK>
+0xD4F9	0x5D0C	# <CJK>
+0xD4FA	0x5D28	# <CJK>
+0xD4FB	0x5D0D	# <CJK>
+0xD4FC	0x5D26	# <CJK>
+0xD4FD	0x5D25	# <CJK>
+0xD4FE	0x5D0F	# <CJK>
+0xD540	0x5D30	# <CJK>
+0xD541	0x5D12	# <CJK>
+0xD542	0x5D23	# <CJK>
+0xD543	0x5D1F	# <CJK>
+0xD544	0x5D2E	# <CJK>
+0xD545	0x5E3E	# <CJK>
+0xD546	0x5E34	# <CJK>
+0xD547	0x5EB1	# <CJK>
+0xD548	0x5EB4	# <CJK>
+0xD549	0x5EB9	# <CJK>
+0xD54A	0x5EB2	# <CJK>
+0xD54B	0x5EB3	# <CJK>
+0xD54C	0x5F36	# <CJK>
+0xD54D	0x5F38	# <CJK>
+0xD54E	0x5F9B	# <CJK>
+0xD54F	0x5F96	# <CJK>
+0xD550	0x5F9F	# <CJK>
+0xD551	0x608A	# <CJK>
+0xD552	0x6090	# <CJK>
+0xD553	0x6086	# <CJK>
+0xD554	0x60BE	# <CJK>
+0xD555	0x60B0	# <CJK>
+0xD556	0x60BA	# <CJK>
+0xD557	0x60D3	# <CJK>
+0xD558	0x60D4	# <CJK>
+0xD559	0x60CF	# <CJK>
+0xD55A	0x60E4	# <CJK>
+0xD55B	0x60D9	# <CJK>
+0xD55C	0x60DD	# <CJK>
+0xD55D	0x60C8	# <CJK>
+0xD55E	0x60B1	# <CJK>
+0xD55F	0x60DB	# <CJK>
+0xD560	0x60B7	# <CJK>
+0xD561	0x60CA	# <CJK>
+0xD562	0x60BF	# <CJK>
+0xD563	0x60C3	# <CJK>
+0xD564	0x60CD	# <CJK>
+0xD565	0x60C0	# <CJK>
+0xD566	0x6332	# <CJK>
+0xD567	0x6365	# <CJK>
+0xD568	0x638A	# <CJK>
+0xD569	0x6382	# <CJK>
+0xD56A	0x637D	# <CJK>
+0xD56B	0x63BD	# <CJK>
+0xD56C	0x639E	# <CJK>
+0xD56D	0x63AD	# <CJK>
+0xD56E	0x639D	# <CJK>
+0xD56F	0x6397	# <CJK>
+0xD570	0x63AB	# <CJK>
+0xD571	0x638E	# <CJK>
+0xD572	0x636F	# <CJK>
+0xD573	0x6387	# <CJK>
+0xD574	0x6390	# <CJK>
+0xD575	0x636E	# <CJK>
+0xD576	0x63AF	# <CJK>
+0xD577	0x6375	# <CJK>
+0xD578	0x639C	# <CJK>
+0xD579	0x636D	# <CJK>
+0xD57A	0x63AE	# <CJK>
+0xD57B	0x637C	# <CJK>
+0xD57C	0x63A4	# <CJK>
+0xD57D	0x633B	# <CJK>
+0xD57E	0x639F	# <CJK>
+0xD5A1	0x6378	# <CJK>
+0xD5A2	0x6385	# <CJK>
+0xD5A3	0x6381	# <CJK>
+0xD5A4	0x6391	# <CJK>
+0xD5A5	0x638D	# <CJK>
+0xD5A6	0x6370	# <CJK>
+0xD5A7	0x6553	# <CJK>
+0xD5A8	0x65CD	# <CJK>
+0xD5A9	0x6665	# <CJK>
+0xD5AA	0x6661	# <CJK>
+0xD5AB	0x665B	# <CJK>
+0xD5AC	0x6659	# <CJK>
+0xD5AD	0x665C	# <CJK>
+0xD5AE	0x6662	# <CJK>
+0xD5AF	0x6718	# <CJK>
+0xD5B0	0x6879	# <CJK>
+0xD5B1	0x6887	# <CJK>
+0xD5B2	0x6890	# <CJK>
+0xD5B3	0x689C	# <CJK>
+0xD5B4	0x686D	# <CJK>
+0xD5B5	0x686E	# <CJK>
+0xD5B6	0x68AE	# <CJK>
+0xD5B7	0x68AB	# <CJK>
+0xD5B8	0x6956	# <CJK>
+0xD5B9	0x686F	# <CJK>
+0xD5BA	0x68A3	# <CJK>
+0xD5BB	0x68AC	# <CJK>
+0xD5BC	0x68A9	# <CJK>
+0xD5BD	0x6875	# <CJK>
+0xD5BE	0x6874	# <CJK>
+0xD5BF	0x68B2	# <CJK>
+0xD5C0	0x688F	# <CJK>
+0xD5C1	0x6877	# <CJK>
+0xD5C2	0x6892	# <CJK>
+0xD5C3	0x687C	# <CJK>
+0xD5C4	0x686B	# <CJK>
+0xD5C5	0x6872	# <CJK>
+0xD5C6	0x68AA	# <CJK>
+0xD5C7	0x6880	# <CJK>
+0xD5C8	0x6871	# <CJK>
+0xD5C9	0x687E	# <CJK>
+0xD5CA	0x689B	# <CJK>
+0xD5CB	0x6896	# <CJK>
+0xD5CC	0x688B	# <CJK>
+0xD5CD	0x68A0	# <CJK>
+0xD5CE	0x6889	# <CJK>
+0xD5CF	0x68A4	# <CJK>
+0xD5D0	0x6878	# <CJK>
+0xD5D1	0x687B	# <CJK>
+0xD5D2	0x6891	# <CJK>
+0xD5D3	0x688C	# <CJK>
+0xD5D4	0x688A	# <CJK>
+0xD5D5	0x687D	# <CJK>
+0xD5D6	0x6B36	# <CJK>
+0xD5D7	0x6B33	# <CJK>
+0xD5D8	0x6B37	# <CJK>
+0xD5D9	0x6B38	# <CJK>
+0xD5DA	0x6B91	# <CJK>
+0xD5DB	0x6B8F	# <CJK>
+0xD5DC	0x6B8D	# <CJK>
+0xD5DD	0x6B8E	# <CJK>
+0xD5DE	0x6B8C	# <CJK>
+0xD5DF	0x6C2A	# <CJK>
+0xD5E0	0x6DC0	# <CJK>
+0xD5E1	0x6DAB	# <CJK>
+0xD5E2	0x6DB4	# <CJK>
+0xD5E3	0x6DB3	# <CJK>
+0xD5E4	0x6E74	# <CJK>
+0xD5E5	0x6DAC	# <CJK>
+0xD5E6	0x6DE9	# <CJK>
+0xD5E7	0x6DE2	# <CJK>
+0xD5E8	0x6DB7	# <CJK>
+0xD5E9	0x6DF6	# <CJK>
+0xD5EA	0x6DD4	# <CJK>
+0xD5EB	0x6E00	# <CJK>
+0xD5EC	0x6DC8	# <CJK>
+0xD5ED	0x6DE0	# <CJK>
+0xD5EE	0x6DDF	# <CJK>
+0xD5EF	0x6DD6	# <CJK>
+0xD5F0	0x6DBE	# <CJK>
+0xD5F1	0x6DE5	# <CJK>
+0xD5F2	0x6DDC	# <CJK>
+0xD5F3	0x6DDD	# <CJK>
+0xD5F4	0x6DDB	# <CJK>
+0xD5F5	0x6DF4	# <CJK>
+0xD5F6	0x6DCA	# <CJK>
+0xD5F7	0x6DBD	# <CJK>
+0xD5F8	0x6DED	# <CJK>
+0xD5F9	0x6DF0	# <CJK>
+0xD5FA	0x6DBA	# <CJK>
+0xD5FB	0x6DD5	# <CJK>
+0xD5FC	0x6DC2	# <CJK>
+0xD5FD	0x6DCF	# <CJK>
+0xD5FE	0x6DC9	# <CJK>
+0xD640	0x6DD0	# <CJK>
+0xD641	0x6DF2	# <CJK>
+0xD642	0x6DD3	# <CJK>
+0xD643	0x6DFD	# <CJK>
+0xD644	0x6DD7	# <CJK>
+0xD645	0x6DCD	# <CJK>
+0xD646	0x6DE3	# <CJK>
+0xD647	0x6DBB	# <CJK>
+0xD648	0x70FA	# <CJK>
+0xD649	0x710D	# <CJK>
+0xD64A	0x70F7	# <CJK>
+0xD64B	0x7117	# <CJK>
+0xD64C	0x70F4	# <CJK>
+0xD64D	0x710C	# <CJK>
+0xD64E	0x70F0	# <CJK>
+0xD64F	0x7104	# <CJK>
+0xD650	0x70F3	# <CJK>
+0xD651	0x7110	# <CJK>
+0xD652	0x70FC	# <CJK>
+0xD653	0x70FF	# <CJK>
+0xD654	0x7106	# <CJK>
+0xD655	0x7113	# <CJK>
+0xD656	0x7100	# <CJK>
+0xD657	0x70F8	# <CJK>
+0xD658	0x70F6	# <CJK>
+0xD659	0x710B	# <CJK>
+0xD65A	0x7102	# <CJK>
+0xD65B	0x710E	# <CJK>
+0xD65C	0x727E	# <CJK>
+0xD65D	0x727B	# <CJK>
+0xD65E	0x727C	# <CJK>
+0xD65F	0x727F	# <CJK>
+0xD660	0x731D	# <CJK>
+0xD661	0x7317	# <CJK>
+0xD662	0x7307	# <CJK>
+0xD663	0x7311	# <CJK>
+0xD664	0x7318	# <CJK>
+0xD665	0x730A	# <CJK>
+0xD666	0x7308	# <CJK>
+0xD667	0x72FF	# <CJK>
+0xD668	0x730F	# <CJK>
+0xD669	0x731E	# <CJK>
+0xD66A	0x7388	# <CJK>
+0xD66B	0x73F6	# <CJK>
+0xD66C	0x73F8	# <CJK>
+0xD66D	0x73F5	# <CJK>
+0xD66E	0x7404	# <CJK>
+0xD66F	0x7401	# <CJK>
+0xD670	0x73FD	# <CJK>
+0xD671	0x7407	# <CJK>
+0xD672	0x7400	# <CJK>
+0xD673	0x73FA	# <CJK>
+0xD674	0x73FC	# <CJK>
+0xD675	0x73FF	# <CJK>
+0xD676	0x740C	# <CJK>
+0xD677	0x740B	# <CJK>
+0xD678	0x73F4	# <CJK>
+0xD679	0x7408	# <CJK>
+0xD67A	0x7564	# <CJK>
+0xD67B	0x7563	# <CJK>
+0xD67C	0x75CE	# <CJK>
+0xD67D	0x75D2	# <CJK>
+0xD67E	0x75CF	# <CJK>
+0xD6A1	0x75CB	# <CJK>
+0xD6A2	0x75CC	# <CJK>
+0xD6A3	0x75D1	# <CJK>
+0xD6A4	0x75D0	# <CJK>
+0xD6A5	0x768F	# <CJK>
+0xD6A6	0x7689	# <CJK>
+0xD6A7	0x76D3	# <CJK>
+0xD6A8	0x7739	# <CJK>
+0xD6A9	0x772F	# <CJK>
+0xD6AA	0x772D	# <CJK>
+0xD6AB	0x7731	# <CJK>
+0xD6AC	0x7732	# <CJK>
+0xD6AD	0x7734	# <CJK>
+0xD6AE	0x7733	# <CJK>
+0xD6AF	0x773D	# <CJK>
+0xD6B0	0x7725	# <CJK>
+0xD6B1	0x773B	# <CJK>
+0xD6B2	0x7735	# <CJK>
+0xD6B3	0x7848	# <CJK>
+0xD6B4	0x7852	# <CJK>
+0xD6B5	0x7849	# <CJK>
+0xD6B6	0x784D	# <CJK>
+0xD6B7	0x784A	# <CJK>
+0xD6B8	0x784C	# <CJK>
+0xD6B9	0x7826	# <CJK>
+0xD6BA	0x7845	# <CJK>
+0xD6BB	0x7850	# <CJK>
+0xD6BC	0x7964	# <CJK>
+0xD6BD	0x7967	# <CJK>
+0xD6BE	0x7969	# <CJK>
+0xD6BF	0x796A	# <CJK>
+0xD6C0	0x7963	# <CJK>
+0xD6C1	0x796B	# <CJK>
+0xD6C2	0x7961	# <CJK>
+0xD6C3	0x79BB	# <CJK>
+0xD6C4	0x79FA	# <CJK>
+0xD6C5	0x79F8	# <CJK>
+0xD6C6	0x79F6	# <CJK>
+0xD6C7	0x79F7	# <CJK>
+0xD6C8	0x7A8F	# <CJK>
+0xD6C9	0x7A94	# <CJK>
+0xD6CA	0x7A90	# <CJK>
+0xD6CB	0x7B35	# <CJK>
+0xD6CC	0x7B47	# <CJK>
+0xD6CD	0x7B34	# <CJK>
+0xD6CE	0x7B25	# <CJK>
+0xD6CF	0x7B30	# <CJK>
+0xD6D0	0x7B22	# <CJK>
+0xD6D1	0x7B24	# <CJK>
+0xD6D2	0x7B33	# <CJK>
+0xD6D3	0x7B18	# <CJK>
+0xD6D4	0x7B2A	# <CJK>
+0xD6D5	0x7B1D	# <CJK>
+0xD6D6	0x7B31	# <CJK>
+0xD6D7	0x7B2B	# <CJK>
+0xD6D8	0x7B2D	# <CJK>
+0xD6D9	0x7B2F	# <CJK>
+0xD6DA	0x7B32	# <CJK>
+0xD6DB	0x7B38	# <CJK>
+0xD6DC	0x7B1A	# <CJK>
+0xD6DD	0x7B23	# <CJK>
+0xD6DE	0x7C94	# <CJK>
+0xD6DF	0x7C98	# <CJK>
+0xD6E0	0x7C96	# <CJK>
+0xD6E1	0x7CA3	# <CJK>
+0xD6E2	0x7D35	# <CJK>
+0xD6E3	0x7D3D	# <CJK>
+0xD6E4	0x7D38	# <CJK>
+0xD6E5	0x7D36	# <CJK>
+0xD6E6	0x7D3A	# <CJK>
+0xD6E7	0x7D45	# <CJK>
+0xD6E8	0x7D2C	# <CJK>
+0xD6E9	0x7D29	# <CJK>
+0xD6EA	0x7D41	# <CJK>
+0xD6EB	0x7D47	# <CJK>
+0xD6EC	0x7D3E	# <CJK>
+0xD6ED	0x7D3F	# <CJK>
+0xD6EE	0x7D4A	# <CJK>
+0xD6EF	0x7D3B	# <CJK>
+0xD6F0	0x7D28	# <CJK>
+0xD6F1	0x7F63	# <CJK>
+0xD6F2	0x7F95	# <CJK>
+0xD6F3	0x7F9C	# <CJK>
+0xD6F4	0x7F9D	# <CJK>
+0xD6F5	0x7F9B	# <CJK>
+0xD6F6	0x7FCA	# <CJK>
+0xD6F7	0x7FCB	# <CJK>
+0xD6F8	0x7FCD	# <CJK>
+0xD6F9	0x7FD0	# <CJK>
+0xD6FA	0x7FD1	# <CJK>
+0xD6FB	0x7FC7	# <CJK>
+0xD6FC	0x7FCF	# <CJK>
+0xD6FD	0x7FC9	# <CJK>
+0xD6FE	0x801F	# <CJK>
+0xD740	0x801E	# <CJK>
+0xD741	0x801B	# <CJK>
+0xD742	0x8047	# <CJK>
+0xD743	0x8043	# <CJK>
+0xD744	0x8048	# <CJK>
+0xD745	0x8118	# <CJK>
+0xD746	0x8125	# <CJK>
+0xD747	0x8119	# <CJK>
+0xD748	0x811B	# <CJK>
+0xD749	0x812D	# <CJK>
+0xD74A	0x811F	# <CJK>
+0xD74B	0x812C	# <CJK>
+0xD74C	0x811E	# <CJK>
+0xD74D	0x8121	# <CJK>
+0xD74E	0x8115	# <CJK>
+0xD74F	0x8127	# <CJK>
+0xD750	0x811D	# <CJK>
+0xD751	0x8122	# <CJK>
+0xD752	0x8211	# <CJK>
+0xD753	0x8238	# <CJK>
+0xD754	0x8233	# <CJK>
+0xD755	0x823A	# <CJK>
+0xD756	0x8234	# <CJK>
+0xD757	0x8232	# <CJK>
+0xD758	0x8274	# <CJK>
+0xD759	0x8390	# <CJK>
+0xD75A	0x83A3	# <CJK>
+0xD75B	0x83A8	# <CJK>
+0xD75C	0x838D	# <CJK>
+0xD75D	0x837A	# <CJK>
+0xD75E	0x8373	# <CJK>
+0xD75F	0x83A4	# <CJK>
+0xD760	0x8374	# <CJK>
+0xD761	0x838F	# <CJK>
+0xD762	0x8381	# <CJK>
+0xD763	0x8395	# <CJK>
+0xD764	0x8399	# <CJK>
+0xD765	0x8375	# <CJK>
+0xD766	0x8394	# <CJK>
+0xD767	0x83A9	# <CJK>
+0xD768	0x837D	# <CJK>
+0xD769	0x8383	# <CJK>
+0xD76A	0x838C	# <CJK>
+0xD76B	0x839D	# <CJK>
+0xD76C	0x839B	# <CJK>
+0xD76D	0x83AA	# <CJK>
+0xD76E	0x838B	# <CJK>
+0xD76F	0x837E	# <CJK>
+0xD770	0x83A5	# <CJK>
+0xD771	0x83AF	# <CJK>
+0xD772	0x8388	# <CJK>
+0xD773	0x8397	# <CJK>
+0xD774	0x83B0	# <CJK>
+0xD775	0x837F	# <CJK>
+0xD776	0x83A6	# <CJK>
+0xD777	0x8387	# <CJK>
+0xD778	0x83AE	# <CJK>
+0xD779	0x8376	# <CJK>
+0xD77A	0x839A	# <CJK>
+0xD77B	0x8659	# <CJK>
+0xD77C	0x8656	# <CJK>
+0xD77D	0x86BF	# <CJK>
+0xD77E	0x86B7	# <CJK>
+0xD7A1	0x86C2	# <CJK>
+0xD7A2	0x86C1	# <CJK>
+0xD7A3	0x86C5	# <CJK>
+0xD7A4	0x86BA	# <CJK>
+0xD7A5	0x86B0	# <CJK>
+0xD7A6	0x86C8	# <CJK>
+0xD7A7	0x86B9	# <CJK>
+0xD7A8	0x86B3	# <CJK>
+0xD7A9	0x86B8	# <CJK>
+0xD7AA	0x86CC	# <CJK>
+0xD7AB	0x86B4	# <CJK>
+0xD7AC	0x86BB	# <CJK>
+0xD7AD	0x86BC	# <CJK>
+0xD7AE	0x86C3	# <CJK>
+0xD7AF	0x86BD	# <CJK>
+0xD7B0	0x86BE	# <CJK>
+0xD7B1	0x8852	# <CJK>
+0xD7B2	0x8889	# <CJK>
+0xD7B3	0x8895	# <CJK>
+0xD7B4	0x88A8	# <CJK>
+0xD7B5	0x88A2	# <CJK>
+0xD7B6	0x88AA	# <CJK>
+0xD7B7	0x889A	# <CJK>
+0xD7B8	0x8891	# <CJK>
+0xD7B9	0x88A1	# <CJK>
+0xD7BA	0x889F	# <CJK>
+0xD7BB	0x8898	# <CJK>
+0xD7BC	0x88A7	# <CJK>
+0xD7BD	0x8899	# <CJK>
+0xD7BE	0x889B	# <CJK>
+0xD7BF	0x8897	# <CJK>
+0xD7C0	0x88A4	# <CJK>
+0xD7C1	0x88AC	# <CJK>
+0xD7C2	0x888C	# <CJK>
+0xD7C3	0x8893	# <CJK>
+0xD7C4	0x888E	# <CJK>
+0xD7C5	0x8982	# <CJK>
+0xD7C6	0x89D6	# <CJK>
+0xD7C7	0x89D9	# <CJK>
+0xD7C8	0x89D5	# <CJK>
+0xD7C9	0x8A30	# <CJK>
+0xD7CA	0x8A27	# <CJK>
+0xD7CB	0x8A2C	# <CJK>
+0xD7CC	0x8A1E	# <CJK>
+0xD7CD	0x8C39	# <CJK>
+0xD7CE	0x8C3B	# <CJK>
+0xD7CF	0x8C5C	# <CJK>
+0xD7D0	0x8C5D	# <CJK>
+0xD7D1	0x8C7D	# <CJK>
+0xD7D2	0x8CA5	# <CJK>
+0xD7D3	0x8D7D	# <CJK>
+0xD7D4	0x8D7B	# <CJK>
+0xD7D5	0x8D79	# <CJK>
+0xD7D6	0x8DBC	# <CJK>
+0xD7D7	0x8DC2	# <CJK>
+0xD7D8	0x8DB9	# <CJK>
+0xD7D9	0x8DBF	# <CJK>
+0xD7DA	0x8DC1	# <CJK>
+0xD7DB	0x8ED8	# <CJK>
+0xD7DC	0x8EDE	# <CJK>
+0xD7DD	0x8EDD	# <CJK>
+0xD7DE	0x8EDC	# <CJK>
+0xD7DF	0x8ED7	# <CJK>
+0xD7E0	0x8EE0	# <CJK>
+0xD7E1	0x8EE1	# <CJK>
+0xD7E2	0x9024	# <CJK>
+0xD7E3	0x900B	# <CJK>
+0xD7E4	0x9011	# <CJK>
+0xD7E5	0x901C	# <CJK>
+0xD7E6	0x900C	# <CJK>
+0xD7E7	0x9021	# <CJK>
+0xD7E8	0x90EF	# <CJK>
+0xD7E9	0x90EA	# <CJK>
+0xD7EA	0x90F0	# <CJK>
+0xD7EB	0x90F4	# <CJK>
+0xD7EC	0x90F2	# <CJK>
+0xD7ED	0x90F3	# <CJK>
+0xD7EE	0x90D4	# <CJK>
+0xD7EF	0x90EB	# <CJK>
+0xD7F0	0x90EC	# <CJK>
+0xD7F1	0x90E9	# <CJK>
+0xD7F2	0x9156	# <CJK>
+0xD7F3	0x9158	# <CJK>
+0xD7F4	0x915A	# <CJK>
+0xD7F5	0x9153	# <CJK>
+0xD7F6	0x9155	# <CJK>
+0xD7F7	0x91EC	# <CJK>
+0xD7F8	0x91F4	# <CJK>
+0xD7F9	0x91F1	# <CJK>
+0xD7FA	0x91F3	# <CJK>
+0xD7FB	0x91F8	# <CJK>
+0xD7FC	0x91E4	# <CJK>
+0xD7FD	0x91F9	# <CJK>
+0xD7FE	0x91EA	# <CJK>
+0xD840	0x91EB	# <CJK>
+0xD841	0x91F7	# <CJK>
+0xD842	0x91E8	# <CJK>
+0xD843	0x91EE	# <CJK>
+0xD844	0x957A	# <CJK>
+0xD845	0x9586	# <CJK>
+0xD846	0x9588	# <CJK>
+0xD847	0x967C	# <CJK>
+0xD848	0x966D	# <CJK>
+0xD849	0x966B	# <CJK>
+0xD84A	0x9671	# <CJK>
+0xD84B	0x966F	# <CJK>
+0xD84C	0x96BF	# <CJK>
+0xD84D	0x976A	# <CJK>
+0xD84E	0x9804	# <CJK>
+0xD84F	0x98E5	# <CJK>
+0xD850	0x9997	# <CJK>
+0xD851	0x509B	# <CJK>
+0xD852	0x5095	# <CJK>
+0xD853	0x5094	# <CJK>
+0xD854	0x509E	# <CJK>
+0xD855	0x508B	# <CJK>
+0xD856	0x50A3	# <CJK>
+0xD857	0x5083	# <CJK>
+0xD858	0x508C	# <CJK>
+0xD859	0x508E	# <CJK>
+0xD85A	0x509D	# <CJK>
+0xD85B	0x5068	# <CJK>
+0xD85C	0x509C	# <CJK>
+0xD85D	0x5092	# <CJK>
+0xD85E	0x5082	# <CJK>
+0xD85F	0x5087	# <CJK>
+0xD860	0x515F	# <CJK>
+0xD861	0x51D4	# <CJK>
+0xD862	0x5312	# <CJK>
+0xD863	0x5311	# <CJK>
+0xD864	0x53A4	# <CJK>
+0xD865	0x53A7	# <CJK>
+0xD866	0x5591	# <CJK>
+0xD867	0x55A8	# <CJK>
+0xD868	0x55A5	# <CJK>
+0xD869	0x55AD	# <CJK>
+0xD86A	0x5577	# <CJK>
+0xD86B	0x5645	# <CJK>
+0xD86C	0x55A2	# <CJK>
+0xD86D	0x5593	# <CJK>
+0xD86E	0x5588	# <CJK>
+0xD86F	0x558F	# <CJK>
+0xD870	0x55B5	# <CJK>
+0xD871	0x5581	# <CJK>
+0xD872	0x55A3	# <CJK>
+0xD873	0x5592	# <CJK>
+0xD874	0x55A4	# <CJK>
+0xD875	0x557D	# <CJK>
+0xD876	0x558C	# <CJK>
+0xD877	0x55A6	# <CJK>
+0xD878	0x557F	# <CJK>
+0xD879	0x5595	# <CJK>
+0xD87A	0x55A1	# <CJK>
+0xD87B	0x558E	# <CJK>
+0xD87C	0x570C	# <CJK>
+0xD87D	0x5829	# <CJK>
+0xD87E	0x5837	# <CJK>
+0xD8A1	0x5819	# <CJK>
+0xD8A2	0x581E	# <CJK>
+0xD8A3	0x5827	# <CJK>
+0xD8A4	0x5823	# <CJK>
+0xD8A5	0x5828	# <CJK>
+0xD8A6	0x57F5	# <CJK>
+0xD8A7	0x5848	# <CJK>
+0xD8A8	0x5825	# <CJK>
+0xD8A9	0x581C	# <CJK>
+0xD8AA	0x581B	# <CJK>
+0xD8AB	0x5833	# <CJK>
+0xD8AC	0x583F	# <CJK>
+0xD8AD	0x5836	# <CJK>
+0xD8AE	0x582E	# <CJK>
+0xD8AF	0x5839	# <CJK>
+0xD8B0	0x5838	# <CJK>
+0xD8B1	0x582D	# <CJK>
+0xD8B2	0x582C	# <CJK>
+0xD8B3	0x583B	# <CJK>
+0xD8B4	0x5961	# <CJK>
+0xD8B5	0x5AAF	# <CJK>
+0xD8B6	0x5A94	# <CJK>
+0xD8B7	0x5A9F	# <CJK>
+0xD8B8	0x5A7A	# <CJK>
+0xD8B9	0x5AA2	# <CJK>
+0xD8BA	0x5A9E	# <CJK>
+0xD8BB	0x5A78	# <CJK>
+0xD8BC	0x5AA6	# <CJK>
+0xD8BD	0x5A7C	# <CJK>
+0xD8BE	0x5AA5	# <CJK>
+0xD8BF	0x5AAC	# <CJK>
+0xD8C0	0x5A95	# <CJK>
+0xD8C1	0x5AAE	# <CJK>
+0xD8C2	0x5A37	# <CJK>
+0xD8C3	0x5A84	# <CJK>
+0xD8C4	0x5A8A	# <CJK>
+0xD8C5	0x5A97	# <CJK>
+0xD8C6	0x5A83	# <CJK>
+0xD8C7	0x5A8B	# <CJK>
+0xD8C8	0x5AA9	# <CJK>
+0xD8C9	0x5A7B	# <CJK>
+0xD8CA	0x5A7D	# <CJK>
+0xD8CB	0x5A8C	# <CJK>
+0xD8CC	0x5A9C	# <CJK>
+0xD8CD	0x5A8F	# <CJK>
+0xD8CE	0x5A93	# <CJK>
+0xD8CF	0x5A9D	# <CJK>
+0xD8D0	0x5BEA	# <CJK>
+0xD8D1	0x5BCD	# <CJK>
+0xD8D2	0x5BCB	# <CJK>
+0xD8D3	0x5BD4	# <CJK>
+0xD8D4	0x5BD1	# <CJK>
+0xD8D5	0x5BCA	# <CJK>
+0xD8D6	0x5BCE	# <CJK>
+0xD8D7	0x5C0C	# <CJK>
+0xD8D8	0x5C30	# <CJK>
+0xD8D9	0x5D37	# <CJK>
+0xD8DA	0x5D43	# <CJK>
+0xD8DB	0x5D6B	# <CJK>
+0xD8DC	0x5D41	# <CJK>
+0xD8DD	0x5D4B	# <CJK>
+0xD8DE	0x5D3F	# <CJK>
+0xD8DF	0x5D35	# <CJK>
+0xD8E0	0x5D51	# <CJK>
+0xD8E1	0x5D4E	# <CJK>
+0xD8E2	0x5D55	# <CJK>
+0xD8E3	0x5D33	# <CJK>
+0xD8E4	0x5D3A	# <CJK>
+0xD8E5	0x5D52	# <CJK>
+0xD8E6	0x5D3D	# <CJK>
+0xD8E7	0x5D31	# <CJK>
+0xD8E8	0x5D59	# <CJK>
+0xD8E9	0x5D42	# <CJK>
+0xD8EA	0x5D39	# <CJK>
+0xD8EB	0x5D49	# <CJK>
+0xD8EC	0x5D38	# <CJK>
+0xD8ED	0x5D3C	# <CJK>
+0xD8EE	0x5D32	# <CJK>
+0xD8EF	0x5D36	# <CJK>
+0xD8F0	0x5D40	# <CJK>
+0xD8F1	0x5D45	# <CJK>
+0xD8F2	0x5E44	# <CJK>
+0xD8F3	0x5E41	# <CJK>
+0xD8F4	0x5F58	# <CJK>
+0xD8F5	0x5FA6	# <CJK>
+0xD8F6	0x5FA5	# <CJK>
+0xD8F7	0x5FAB	# <CJK>
+0xD8F8	0x60C9	# <CJK>
+0xD8F9	0x60B9	# <CJK>
+0xD8FA	0x60CC	# <CJK>
+0xD8FB	0x60E2	# <CJK>
+0xD8FC	0x60CE	# <CJK>
+0xD8FD	0x60C4	# <CJK>
+0xD8FE	0x6114	# <CJK>
+0xD940	0x60F2	# <CJK>
+0xD941	0x610A	# <CJK>
+0xD942	0x6116	# <CJK>
+0xD943	0x6105	# <CJK>
+0xD944	0x60F5	# <CJK>
+0xD945	0x6113	# <CJK>
+0xD946	0x60F8	# <CJK>
+0xD947	0x60FC	# <CJK>
+0xD948	0x60FE	# <CJK>
+0xD949	0x60C1	# <CJK>
+0xD94A	0x6103	# <CJK>
+0xD94B	0x6118	# <CJK>
+0xD94C	0x611D	# <CJK>
+0xD94D	0x6110	# <CJK>
+0xD94E	0x60FF	# <CJK>
+0xD94F	0x6104	# <CJK>
+0xD950	0x610B	# <CJK>
+0xD951	0x624A	# <CJK>
+0xD952	0x6394	# <CJK>
+0xD953	0x63B1	# <CJK>
+0xD954	0x63B0	# <CJK>
+0xD955	0x63CE	# <CJK>
+0xD956	0x63E5	# <CJK>
+0xD957	0x63E8	# <CJK>
+0xD958	0x63EF	# <CJK>
+0xD959	0x63C3	# <CJK>
+0xD95A	0x649D	# <CJK>
+0xD95B	0x63F3	# <CJK>
+0xD95C	0x63CA	# <CJK>
+0xD95D	0x63E0	# <CJK>
+0xD95E	0x63F6	# <CJK>
+0xD95F	0x63D5	# <CJK>
+0xD960	0x63F2	# <CJK>
+0xD961	0x63F5	# <CJK>
+0xD962	0x6461	# <CJK>
+0xD963	0x63DF	# <CJK>
+0xD964	0x63BE	# <CJK>
+0xD965	0x63DD	# <CJK>
+0xD966	0x63DC	# <CJK>
+0xD967	0x63C4	# <CJK>
+0xD968	0x63D8	# <CJK>
+0xD969	0x63D3	# <CJK>
+0xD96A	0x63C2	# <CJK>
+0xD96B	0x63C7	# <CJK>
+0xD96C	0x63CC	# <CJK>
+0xD96D	0x63CB	# <CJK>
+0xD96E	0x63C8	# <CJK>
+0xD96F	0x63F0	# <CJK>
+0xD970	0x63D7	# <CJK>
+0xD971	0x63D9	# <CJK>
+0xD972	0x6532	# <CJK>
+0xD973	0x6567	# <CJK>
+0xD974	0x656A	# <CJK>
+0xD975	0x6564	# <CJK>
+0xD976	0x655C	# <CJK>
+0xD977	0x6568	# <CJK>
+0xD978	0x6565	# <CJK>
+0xD979	0x658C	# <CJK>
+0xD97A	0x659D	# <CJK>
+0xD97B	0x659E	# <CJK>
+0xD97C	0x65AE	# <CJK>
+0xD97D	0x65D0	# <CJK>
+0xD97E	0x65D2	# <CJK>
+0xD9A1	0x667C	# <CJK>
+0xD9A2	0x666C	# <CJK>
+0xD9A3	0x667B	# <CJK>
+0xD9A4	0x6680	# <CJK>
+0xD9A5	0x6671	# <CJK>
+0xD9A6	0x6679	# <CJK>
+0xD9A7	0x666A	# <CJK>
+0xD9A8	0x6672	# <CJK>
+0xD9A9	0x6701	# <CJK>
+0xD9AA	0x690C	# <CJK>
+0xD9AB	0x68D3	# <CJK>
+0xD9AC	0x6904	# <CJK>
+0xD9AD	0x68DC	# <CJK>
+0xD9AE	0x692A	# <CJK>
+0xD9AF	0x68EC	# <CJK>
+0xD9B0	0x68EA	# <CJK>
+0xD9B1	0x68F1	# <CJK>
+0xD9B2	0x690F	# <CJK>
+0xD9B3	0x68D6	# <CJK>
+0xD9B4	0x68F7	# <CJK>
+0xD9B5	0x68EB	# <CJK>
+0xD9B6	0x68E4	# <CJK>
+0xD9B7	0x68F6	# <CJK>
+0xD9B8	0x6913	# <CJK>
+0xD9B9	0x6910	# <CJK>
+0xD9BA	0x68F3	# <CJK>
+0xD9BB	0x68E1	# <CJK>
+0xD9BC	0x6907	# <CJK>
+0xD9BD	0x68CC	# <CJK>
+0xD9BE	0x6908	# <CJK>
+0xD9BF	0x6970	# <CJK>
+0xD9C0	0x68B4	# <CJK>
+0xD9C1	0x6911	# <CJK>
+0xD9C2	0x68EF	# <CJK>
+0xD9C3	0x68C6	# <CJK>
+0xD9C4	0x6914	# <CJK>
+0xD9C5	0x68F8	# <CJK>
+0xD9C6	0x68D0	# <CJK>
+0xD9C7	0x68FD	# <CJK>
+0xD9C8	0x68FC	# <CJK>
+0xD9C9	0x68E8	# <CJK>
+0xD9CA	0x690B	# <CJK>
+0xD9CB	0x690A	# <CJK>
+0xD9CC	0x6917	# <CJK>
+0xD9CD	0x68CE	# <CJK>
+0xD9CE	0x68C8	# <CJK>
+0xD9CF	0x68DD	# <CJK>
+0xD9D0	0x68DE	# <CJK>
+0xD9D1	0x68E6	# <CJK>
+0xD9D2	0x68F4	# <CJK>
+0xD9D3	0x68D1	# <CJK>
+0xD9D4	0x6906	# <CJK>
+0xD9D5	0x68D4	# <CJK>
+0xD9D6	0x68E9	# <CJK>
+0xD9D7	0x6915	# <CJK>
+0xD9D8	0x6925	# <CJK>
+0xD9D9	0x68C7	# <CJK>
+0xD9DA	0x6B39	# <CJK>
+0xD9DB	0x6B3B	# <CJK>
+0xD9DC	0x6B3F	# <CJK>
+0xD9DD	0x6B3C	# <CJK>
+0xD9DE	0x6B94	# <CJK>
+0xD9DF	0x6B97	# <CJK>
+0xD9E0	0x6B99	# <CJK>
+0xD9E1	0x6B95	# <CJK>
+0xD9E2	0x6BBD	# <CJK>
+0xD9E3	0x6BF0	# <CJK>
+0xD9E4	0x6BF2	# <CJK>
+0xD9E5	0x6BF3	# <CJK>
+0xD9E6	0x6C30	# <CJK>
+0xD9E7	0x6DFC	# <CJK>
+0xD9E8	0x6E46	# <CJK>
+0xD9E9	0x6E47	# <CJK>
+0xD9EA	0x6E1F	# <CJK>
+0xD9EB	0x6E49	# <CJK>
+0xD9EC	0x6E88	# <CJK>
+0xD9ED	0x6E3C	# <CJK>
+0xD9EE	0x6E3D	# <CJK>
+0xD9EF	0x6E45	# <CJK>
+0xD9F0	0x6E62	# <CJK>
+0xD9F1	0x6E2B	# <CJK>
+0xD9F2	0x6E3F	# <CJK>
+0xD9F3	0x6E41	# <CJK>
+0xD9F4	0x6E5D	# <CJK>
+0xD9F5	0x6E73	# <CJK>
+0xD9F6	0x6E1C	# <CJK>
+0xD9F7	0x6E33	# <CJK>
+0xD9F8	0x6E4B	# <CJK>
+0xD9F9	0x6E40	# <CJK>
+0xD9FA	0x6E51	# <CJK>
+0xD9FB	0x6E3B	# <CJK>
+0xD9FC	0x6E03	# <CJK>
+0xD9FD	0x6E2E	# <CJK>
+0xD9FE	0x6E5E	# <CJK>
+0xDA40	0x6E68	# <CJK>
+0xDA41	0x6E5C	# <CJK>
+0xDA42	0x6E61	# <CJK>
+0xDA43	0x6E31	# <CJK>
+0xDA44	0x6E28	# <CJK>
+0xDA45	0x6E60	# <CJK>
+0xDA46	0x6E71	# <CJK>
+0xDA47	0x6E6B	# <CJK>
+0xDA48	0x6E39	# <CJK>
+0xDA49	0x6E22	# <CJK>
+0xDA4A	0x6E30	# <CJK>
+0xDA4B	0x6E53	# <CJK>
+0xDA4C	0x6E65	# <CJK>
+0xDA4D	0x6E27	# <CJK>
+0xDA4E	0x6E78	# <CJK>
+0xDA4F	0x6E64	# <CJK>
+0xDA50	0x6E77	# <CJK>
+0xDA51	0x6E55	# <CJK>
+0xDA52	0x6E79	# <CJK>
+0xDA53	0x6E52	# <CJK>
+0xDA54	0x6E66	# <CJK>
+0xDA55	0x6E35	# <CJK>
+0xDA56	0x6E36	# <CJK>
+0xDA57	0x6E5A	# <CJK>
+0xDA58	0x7120	# <CJK>
+0xDA59	0x711E	# <CJK>
+0xDA5A	0x712F	# <CJK>
+0xDA5B	0x70FB	# <CJK>
+0xDA5C	0x712E	# <CJK>
+0xDA5D	0x7131	# <CJK>
+0xDA5E	0x7123	# <CJK>
+0xDA5F	0x7125	# <CJK>
+0xDA60	0x7122	# <CJK>
+0xDA61	0x7132	# <CJK>
+0xDA62	0x711F	# <CJK>
+0xDA63	0x7128	# <CJK>
+0xDA64	0x713A	# <CJK>
+0xDA65	0x711B	# <CJK>
+0xDA66	0x724B	# <CJK>
+0xDA67	0x725A	# <CJK>
+0xDA68	0x7288	# <CJK>
+0xDA69	0x7289	# <CJK>
+0xDA6A	0x7286	# <CJK>
+0xDA6B	0x7285	# <CJK>
+0xDA6C	0x728B	# <CJK>
+0xDA6D	0x7312	# <CJK>
+0xDA6E	0x730B	# <CJK>
+0xDA6F	0x7330	# <CJK>
+0xDA70	0x7322	# <CJK>
+0xDA71	0x7331	# <CJK>
+0xDA72	0x7333	# <CJK>
+0xDA73	0x7327	# <CJK>
+0xDA74	0x7332	# <CJK>
+0xDA75	0x732D	# <CJK>
+0xDA76	0x7326	# <CJK>
+0xDA77	0x7323	# <CJK>
+0xDA78	0x7335	# <CJK>
+0xDA79	0x730C	# <CJK>
+0xDA7A	0x742E	# <CJK>
+0xDA7B	0x742C	# <CJK>
+0xDA7C	0x7430	# <CJK>
+0xDA7D	0x742B	# <CJK>
+0xDA7E	0x7416	# <CJK>
+0xDAA1	0x741A	# <CJK>
+0xDAA2	0x7421	# <CJK>
+0xDAA3	0x742D	# <CJK>
+0xDAA4	0x7431	# <CJK>
+0xDAA5	0x7424	# <CJK>
+0xDAA6	0x7423	# <CJK>
+0xDAA7	0x741D	# <CJK>
+0xDAA8	0x7429	# <CJK>
+0xDAA9	0x7420	# <CJK>
+0xDAAA	0x7432	# <CJK>
+0xDAAB	0x74FB	# <CJK>
+0xDAAC	0x752F	# <CJK>
+0xDAAD	0x756F	# <CJK>
+0xDAAE	0x756C	# <CJK>
+0xDAAF	0x75E7	# <CJK>
+0xDAB0	0x75DA	# <CJK>
+0xDAB1	0x75E1	# <CJK>
+0xDAB2	0x75E6	# <CJK>
+0xDAB3	0x75DD	# <CJK>
+0xDAB4	0x75DF	# <CJK>
+0xDAB5	0x75E4	# <CJK>
+0xDAB6	0x75D7	# <CJK>
+0xDAB7	0x7695	# <CJK>
+0xDAB8	0x7692	# <CJK>
+0xDAB9	0x76DA	# <CJK>
+0xDABA	0x7746	# <CJK>
+0xDABB	0x7747	# <CJK>
+0xDABC	0x7744	# <CJK>
+0xDABD	0x774D	# <CJK>
+0xDABE	0x7745	# <CJK>
+0xDABF	0x774A	# <CJK>
+0xDAC0	0x774E	# <CJK>
+0xDAC1	0x774B	# <CJK>
+0xDAC2	0x774C	# <CJK>
+0xDAC3	0x77DE	# <CJK>
+0xDAC4	0x77EC	# <CJK>
+0xDAC5	0x7860	# <CJK>
+0xDAC6	0x7864	# <CJK>
+0xDAC7	0x7865	# <CJK>
+0xDAC8	0x785C	# <CJK>
+0xDAC9	0x786D	# <CJK>
+0xDACA	0x7871	# <CJK>
+0xDACB	0x786A	# <CJK>
+0xDACC	0x786E	# <CJK>
+0xDACD	0x7870	# <CJK>
+0xDACE	0x7869	# <CJK>
+0xDACF	0x7868	# <CJK>
+0xDAD0	0x785E	# <CJK>
+0xDAD1	0x7862	# <CJK>
+0xDAD2	0x7974	# <CJK>
+0xDAD3	0x7973	# <CJK>
+0xDAD4	0x7972	# <CJK>
+0xDAD5	0x7970	# <CJK>
+0xDAD6	0x7A02	# <CJK>
+0xDAD7	0x7A0A	# <CJK>
+0xDAD8	0x7A03	# <CJK>
+0xDAD9	0x7A0C	# <CJK>
+0xDADA	0x7A04	# <CJK>
+0xDADB	0x7A99	# <CJK>
+0xDADC	0x7AE6	# <CJK>
+0xDADD	0x7AE4	# <CJK>
+0xDADE	0x7B4A	# <CJK>
+0xDADF	0x7B3B	# <CJK>
+0xDAE0	0x7B44	# <CJK>
+0xDAE1	0x7B48	# <CJK>
+0xDAE2	0x7B4C	# <CJK>
+0xDAE3	0x7B4E	# <CJK>
+0xDAE4	0x7B40	# <CJK>
+0xDAE5	0x7B58	# <CJK>
+0xDAE6	0x7B45	# <CJK>
+0xDAE7	0x7CA2	# <CJK>
+0xDAE8	0x7C9E	# <CJK>
+0xDAE9	0x7CA8	# <CJK>
+0xDAEA	0x7CA1	# <CJK>
+0xDAEB	0x7D58	# <CJK>
+0xDAEC	0x7D6F	# <CJK>
+0xDAED	0x7D63	# <CJK>
+0xDAEE	0x7D53	# <CJK>
+0xDAEF	0x7D56	# <CJK>
+0xDAF0	0x7D67	# <CJK>
+0xDAF1	0x7D6A	# <CJK>
+0xDAF2	0x7D4F	# <CJK>
+0xDAF3	0x7D6D	# <CJK>
+0xDAF4	0x7D5C	# <CJK>
+0xDAF5	0x7D6B	# <CJK>
+0xDAF6	0x7D52	# <CJK>
+0xDAF7	0x7D54	# <CJK>
+0xDAF8	0x7D69	# <CJK>
+0xDAF9	0x7D51	# <CJK>
+0xDAFA	0x7D5F	# <CJK>
+0xDAFB	0x7D4E	# <CJK>
+0xDAFC	0x7F3E	# <CJK>
+0xDAFD	0x7F3F	# <CJK>
+0xDAFE	0x7F65	# <CJK>
+0xDB40	0x7F66	# <CJK>
+0xDB41	0x7FA2	# <CJK>
+0xDB42	0x7FA0	# <CJK>
+0xDB43	0x7FA1	# <CJK>
+0xDB44	0x7FD7	# <CJK>
+0xDB45	0x8051	# <CJK>
+0xDB46	0x804F	# <CJK>
+0xDB47	0x8050	# <CJK>
+0xDB48	0x80FE	# <CJK>
+0xDB49	0x80D4	# <CJK>
+0xDB4A	0x8143	# <CJK>
+0xDB4B	0x814A	# <CJK>
+0xDB4C	0x8152	# <CJK>
+0xDB4D	0x814F	# <CJK>
+0xDB4E	0x8147	# <CJK>
+0xDB4F	0x813D	# <CJK>
+0xDB50	0x814D	# <CJK>
+0xDB51	0x813A	# <CJK>
+0xDB52	0x81E6	# <CJK>
+0xDB53	0x81EE	# <CJK>
+0xDB54	0x81F7	# <CJK>
+0xDB55	0x81F8	# <CJK>
+0xDB56	0x81F9	# <CJK>
+0xDB57	0x8204	# <CJK>
+0xDB58	0x823C	# <CJK>
+0xDB59	0x823D	# <CJK>
+0xDB5A	0x823F	# <CJK>
+0xDB5B	0x8275	# <CJK>
+0xDB5C	0x833B	# <CJK>
+0xDB5D	0x83CF	# <CJK>
+0xDB5E	0x83F9	# <CJK>
+0xDB5F	0x8423	# <CJK>
+0xDB60	0x83C0	# <CJK>
+0xDB61	0x83E8	# <CJK>
+0xDB62	0x8412	# <CJK>
+0xDB63	0x83E7	# <CJK>
+0xDB64	0x83E4	# <CJK>
+0xDB65	0x83FC	# <CJK>
+0xDB66	0x83F6	# <CJK>
+0xDB67	0x8410	# <CJK>
+0xDB68	0x83C6	# <CJK>
+0xDB69	0x83C8	# <CJK>
+0xDB6A	0x83EB	# <CJK>
+0xDB6B	0x83E3	# <CJK>
+0xDB6C	0x83BF	# <CJK>
+0xDB6D	0x8401	# <CJK>
+0xDB6E	0x83DD	# <CJK>
+0xDB6F	0x83E5	# <CJK>
+0xDB70	0x83D8	# <CJK>
+0xDB71	0x83FF	# <CJK>
+0xDB72	0x83E1	# <CJK>
+0xDB73	0x83CB	# <CJK>
+0xDB74	0x83CE	# <CJK>
+0xDB75	0x83D6	# <CJK>
+0xDB76	0x83F5	# <CJK>
+0xDB77	0x83C9	# <CJK>
+0xDB78	0x8409	# <CJK>
+0xDB79	0x840F	# <CJK>
+0xDB7A	0x83DE	# <CJK>
+0xDB7B	0x8411	# <CJK>
+0xDB7C	0x8406	# <CJK>
+0xDB7D	0x83C2	# <CJK>
+0xDB7E	0x83F3	# <CJK>
+0xDBA1	0x83D5	# <CJK>
+0xDBA2	0x83FA	# <CJK>
+0xDBA3	0x83C7	# <CJK>
+0xDBA4	0x83D1	# <CJK>
+0xDBA5	0x83EA	# <CJK>
+0xDBA6	0x8413	# <CJK>
+0xDBA7	0x83C3	# <CJK>
+0xDBA8	0x83EC	# <CJK>
+0xDBA9	0x83EE	# <CJK>
+0xDBAA	0x83C4	# <CJK>
+0xDBAB	0x83FB	# <CJK>
+0xDBAC	0x83D7	# <CJK>
+0xDBAD	0x83E2	# <CJK>
+0xDBAE	0x841B	# <CJK>
+0xDBAF	0x83DB	# <CJK>
+0xDBB0	0x83FE	# <CJK>
+0xDBB1	0x86D8	# <CJK>
+0xDBB2	0x86E2	# <CJK>
+0xDBB3	0x86E6	# <CJK>
+0xDBB4	0x86D3	# <CJK>
+0xDBB5	0x86E3	# <CJK>
+0xDBB6	0x86DA	# <CJK>
+0xDBB7	0x86EA	# <CJK>
+0xDBB8	0x86DD	# <CJK>
+0xDBB9	0x86EB	# <CJK>
+0xDBBA	0x86DC	# <CJK>
+0xDBBB	0x86EC	# <CJK>
+0xDBBC	0x86E9	# <CJK>
+0xDBBD	0x86D7	# <CJK>
+0xDBBE	0x86E8	# <CJK>
+0xDBBF	0x86D1	# <CJK>
+0xDBC0	0x8848	# <CJK>
+0xDBC1	0x8856	# <CJK>
+0xDBC2	0x8855	# <CJK>
+0xDBC3	0x88BA	# <CJK>
+0xDBC4	0x88D7	# <CJK>
+0xDBC5	0x88B9	# <CJK>
+0xDBC6	0x88B8	# <CJK>
+0xDBC7	0x88C0	# <CJK>
+0xDBC8	0x88BE	# <CJK>
+0xDBC9	0x88B6	# <CJK>
+0xDBCA	0x88BC	# <CJK>
+0xDBCB	0x88B7	# <CJK>
+0xDBCC	0x88BD	# <CJK>
+0xDBCD	0x88B2	# <CJK>
+0xDBCE	0x8901	# <CJK>
+0xDBCF	0x88C9	# <CJK>
+0xDBD0	0x8995	# <CJK>
+0xDBD1	0x8998	# <CJK>
+0xDBD2	0x8997	# <CJK>
+0xDBD3	0x89DD	# <CJK>
+0xDBD4	0x89DA	# <CJK>
+0xDBD5	0x89DB	# <CJK>
+0xDBD6	0x8A4E	# <CJK>
+0xDBD7	0x8A4D	# <CJK>
+0xDBD8	0x8A39	# <CJK>
+0xDBD9	0x8A59	# <CJK>
+0xDBDA	0x8A40	# <CJK>
+0xDBDB	0x8A57	# <CJK>
+0xDBDC	0x8A58	# <CJK>
+0xDBDD	0x8A44	# <CJK>
+0xDBDE	0x8A45	# <CJK>
+0xDBDF	0x8A52	# <CJK>
+0xDBE0	0x8A48	# <CJK>
+0xDBE1	0x8A51	# <CJK>
+0xDBE2	0x8A4A	# <CJK>
+0xDBE3	0x8A4C	# <CJK>
+0xDBE4	0x8A4F	# <CJK>
+0xDBE5	0x8C5F	# <CJK>
+0xDBE6	0x8C81	# <CJK>
+0xDBE7	0x8C80	# <CJK>
+0xDBE8	0x8CBA	# <CJK>
+0xDBE9	0x8CBE	# <CJK>
+0xDBEA	0x8CB0	# <CJK>
+0xDBEB	0x8CB9	# <CJK>
+0xDBEC	0x8CB5	# <CJK>
+0xDBED	0x8D84	# <CJK>
+0xDBEE	0x8D80	# <CJK>
+0xDBEF	0x8D89	# <CJK>
+0xDBF0	0x8DD8	# <CJK>
+0xDBF1	0x8DD3	# <CJK>
+0xDBF2	0x8DCD	# <CJK>
+0xDBF3	0x8DC7	# <CJK>
+0xDBF4	0x8DD6	# <CJK>
+0xDBF5	0x8DDC	# <CJK>
+0xDBF6	0x8DCF	# <CJK>
+0xDBF7	0x8DD5	# <CJK>
+0xDBF8	0x8DD9	# <CJK>
+0xDBF9	0x8DC8	# <CJK>
+0xDBFA	0x8DD7	# <CJK>
+0xDBFB	0x8DC5	# <CJK>
+0xDBFC	0x8EEF	# <CJK>
+0xDBFD	0x8EF7	# <CJK>
+0xDBFE	0x8EFA	# <CJK>
+0xDC40	0x8EF9	# <CJK>
+0xDC41	0x8EE6	# <CJK>
+0xDC42	0x8EEE	# <CJK>
+0xDC43	0x8EE5	# <CJK>
+0xDC44	0x8EF5	# <CJK>
+0xDC45	0x8EE7	# <CJK>
+0xDC46	0x8EE8	# <CJK>
+0xDC47	0x8EF6	# <CJK>
+0xDC48	0x8EEB	# <CJK>
+0xDC49	0x8EF1	# <CJK>
+0xDC4A	0x8EEC	# <CJK>
+0xDC4B	0x8EF4	# <CJK>
+0xDC4C	0x8EE9	# <CJK>
+0xDC4D	0x902D	# <CJK>
+0xDC4E	0x9034	# <CJK>
+0xDC4F	0x902F	# <CJK>
+0xDC50	0x9106	# <CJK>
+0xDC51	0x912C	# <CJK>
+0xDC52	0x9104	# <CJK>
+0xDC53	0x90FF	# <CJK>
+0xDC54	0x90FC	# <CJK>
+0xDC55	0x9108	# <CJK>
+0xDC56	0x90F9	# <CJK>
+0xDC57	0x90FB	# <CJK>
+0xDC58	0x9101	# <CJK>
+0xDC59	0x9100	# <CJK>
+0xDC5A	0x9107	# <CJK>
+0xDC5B	0x9105	# <CJK>
+0xDC5C	0x9103	# <CJK>
+0xDC5D	0x9161	# <CJK>
+0xDC5E	0x9164	# <CJK>
+0xDC5F	0x915F	# <CJK>
+0xDC60	0x9162	# <CJK>
+0xDC61	0x9160	# <CJK>
+0xDC62	0x9201	# <CJK>
+0xDC63	0x920A	# <CJK>
+0xDC64	0x9225	# <CJK>
+0xDC65	0x9203	# <CJK>
+0xDC66	0x921A	# <CJK>
+0xDC67	0x9226	# <CJK>
+0xDC68	0x920F	# <CJK>
+0xDC69	0x920C	# <CJK>
+0xDC6A	0x9200	# <CJK>
+0xDC6B	0x9212	# <CJK>
+0xDC6C	0x91FF	# <CJK>
+0xDC6D	0x91FD	# <CJK>
+0xDC6E	0x9206	# <CJK>
+0xDC6F	0x9204	# <CJK>
+0xDC70	0x9227	# <CJK>
+0xDC71	0x9202	# <CJK>
+0xDC72	0x921C	# <CJK>
+0xDC73	0x9224	# <CJK>
+0xDC74	0x9219	# <CJK>
+0xDC75	0x9217	# <CJK>
+0xDC76	0x9205	# <CJK>
+0xDC77	0x9216	# <CJK>
+0xDC78	0x957B	# <CJK>
+0xDC79	0x958D	# <CJK>
+0xDC7A	0x958C	# <CJK>
+0xDC7B	0x9590	# <CJK>
+0xDC7C	0x9687	# <CJK>
+0xDC7D	0x967E	# <CJK>
+0xDC7E	0x9688	# <CJK>
+0xDCA1	0x9689	# <CJK>
+0xDCA2	0x9683	# <CJK>
+0xDCA3	0x9680	# <CJK>
+0xDCA4	0x96C2	# <CJK>
+0xDCA5	0x96C8	# <CJK>
+0xDCA6	0x96C3	# <CJK>
+0xDCA7	0x96F1	# <CJK>
+0xDCA8	0x96F0	# <CJK>
+0xDCA9	0x976C	# <CJK>
+0xDCAA	0x9770	# <CJK>
+0xDCAB	0x976E	# <CJK>
+0xDCAC	0x9807	# <CJK>
+0xDCAD	0x98A9	# <CJK>
+0xDCAE	0x98EB	# <CJK>
+0xDCAF	0x9CE6	# <CJK>
+0xDCB0	0x9EF9	# <CJK>
+0xDCB1	0x4E83	# <CJK>
+0xDCB2	0x4E84	# <CJK>
+0xDCB3	0x4EB6	# <CJK>
+0xDCB4	0x50BD	# <CJK>
+0xDCB5	0x50BF	# <CJK>
+0xDCB6	0x50C6	# <CJK>
+0xDCB7	0x50AE	# <CJK>
+0xDCB8	0x50C4	# <CJK>
+0xDCB9	0x50CA	# <CJK>
+0xDCBA	0x50B4	# <CJK>
+0xDCBB	0x50C8	# <CJK>
+0xDCBC	0x50C2	# <CJK>
+0xDCBD	0x50B0	# <CJK>
+0xDCBE	0x50C1	# <CJK>
+0xDCBF	0x50BA	# <CJK>
+0xDCC0	0x50B1	# <CJK>
+0xDCC1	0x50CB	# <CJK>
+0xDCC2	0x50C9	# <CJK>
+0xDCC3	0x50B6	# <CJK>
+0xDCC4	0x50B8	# <CJK>
+0xDCC5	0x51D7	# <CJK>
+0xDCC6	0x527A	# <CJK>
+0xDCC7	0x5278	# <CJK>
+0xDCC8	0x527B	# <CJK>
+0xDCC9	0x527C	# <CJK>
+0xDCCA	0x55C3	# <CJK>
+0xDCCB	0x55DB	# <CJK>
+0xDCCC	0x55CC	# <CJK>
+0xDCCD	0x55D0	# <CJK>
+0xDCCE	0x55CB	# <CJK>
+0xDCCF	0x55CA	# <CJK>
+0xDCD0	0x55DD	# <CJK>
+0xDCD1	0x55C0	# <CJK>
+0xDCD2	0x55D4	# <CJK>
+0xDCD3	0x55C4	# <CJK>
+0xDCD4	0x55E9	# <CJK>
+0xDCD5	0x55BF	# <CJK>
+0xDCD6	0x55D2	# <CJK>
+0xDCD7	0x558D	# <CJK>
+0xDCD8	0x55CF	# <CJK>
+0xDCD9	0x55D5	# <CJK>
+0xDCDA	0x55E2	# <CJK>
+0xDCDB	0x55D6	# <CJK>
+0xDCDC	0x55C8	# <CJK>
+0xDCDD	0x55F2	# <CJK>
+0xDCDE	0x55CD	# <CJK>
+0xDCDF	0x55D9	# <CJK>
+0xDCE0	0x55C2	# <CJK>
+0xDCE1	0x5714	# <CJK>
+0xDCE2	0x5853	# <CJK>
+0xDCE3	0x5868	# <CJK>
+0xDCE4	0x5864	# <CJK>
+0xDCE5	0x584F	# <CJK>
+0xDCE6	0x584D	# <CJK>
+0xDCE7	0x5849	# <CJK>
+0xDCE8	0x586F	# <CJK>
+0xDCE9	0x5855	# <CJK>
+0xDCEA	0x584E	# <CJK>
+0xDCEB	0x585D	# <CJK>
+0xDCEC	0x5859	# <CJK>
+0xDCED	0x5865	# <CJK>
+0xDCEE	0x585B	# <CJK>
+0xDCEF	0x583D	# <CJK>
+0xDCF0	0x5863	# <CJK>
+0xDCF1	0x5871	# <CJK>
+0xDCF2	0x58FC	# <CJK>
+0xDCF3	0x5AC7	# <CJK>
+0xDCF4	0x5AC4	# <CJK>
+0xDCF5	0x5ACB	# <CJK>
+0xDCF6	0x5ABA	# <CJK>
+0xDCF7	0x5AB8	# <CJK>
+0xDCF8	0x5AB1	# <CJK>
+0xDCF9	0x5AB5	# <CJK>
+0xDCFA	0x5AB0	# <CJK>
+0xDCFB	0x5ABF	# <CJK>
+0xDCFC	0x5AC8	# <CJK>
+0xDCFD	0x5ABB	# <CJK>
+0xDCFE	0x5AC6	# <CJK>
+0xDD40	0x5AB7	# <CJK>
+0xDD41	0x5AC0	# <CJK>
+0xDD42	0x5ACA	# <CJK>
+0xDD43	0x5AB4	# <CJK>
+0xDD44	0x5AB6	# <CJK>
+0xDD45	0x5ACD	# <CJK>
+0xDD46	0x5AB9	# <CJK>
+0xDD47	0x5A90	# <CJK>
+0xDD48	0x5BD6	# <CJK>
+0xDD49	0x5BD8	# <CJK>
+0xDD4A	0x5BD9	# <CJK>
+0xDD4B	0x5C1F	# <CJK>
+0xDD4C	0x5C33	# <CJK>
+0xDD4D	0x5D71	# <CJK>
+0xDD4E	0x5D63	# <CJK>
+0xDD4F	0x5D4A	# <CJK>
+0xDD50	0x5D65	# <CJK>
+0xDD51	0x5D72	# <CJK>
+0xDD52	0x5D6C	# <CJK>
+0xDD53	0x5D5E	# <CJK>
+0xDD54	0x5D68	# <CJK>
+0xDD55	0x5D67	# <CJK>
+0xDD56	0x5D62	# <CJK>
+0xDD57	0x5DF0	# <CJK>
+0xDD58	0x5E4F	# <CJK>
+0xDD59	0x5E4E	# <CJK>
+0xDD5A	0x5E4A	# <CJK>
+0xDD5B	0x5E4D	# <CJK>
+0xDD5C	0x5E4B	# <CJK>
+0xDD5D	0x5EC5	# <CJK>
+0xDD5E	0x5ECC	# <CJK>
+0xDD5F	0x5EC6	# <CJK>
+0xDD60	0x5ECB	# <CJK>
+0xDD61	0x5EC7	# <CJK>
+0xDD62	0x5F40	# <CJK>
+0xDD63	0x5FAF	# <CJK>
+0xDD64	0x5FAD	# <CJK>
+0xDD65	0x60F7	# <CJK>
+0xDD66	0x6149	# <CJK>
+0xDD67	0x614A	# <CJK>
+0xDD68	0x612B	# <CJK>
+0xDD69	0x6145	# <CJK>
+0xDD6A	0x6136	# <CJK>
+0xDD6B	0x6132	# <CJK>
+0xDD6C	0x612E	# <CJK>
+0xDD6D	0x6146	# <CJK>
+0xDD6E	0x612F	# <CJK>
+0xDD6F	0x614F	# <CJK>
+0xDD70	0x6129	# <CJK>
+0xDD71	0x6140	# <CJK>
+0xDD72	0x6220	# <CJK>
+0xDD73	0x9168	# <CJK>
+0xDD74	0x6223	# <CJK>
+0xDD75	0x6225	# <CJK>
+0xDD76	0x6224	# <CJK>
+0xDD77	0x63C5	# <CJK>
+0xDD78	0x63F1	# <CJK>
+0xDD79	0x63EB	# <CJK>
+0xDD7A	0x6410	# <CJK>
+0xDD7B	0x6412	# <CJK>
+0xDD7C	0x6409	# <CJK>
+0xDD7D	0x6420	# <CJK>
+0xDD7E	0x6424	# <CJK>
+0xDDA1	0x6433	# <CJK>
+0xDDA2	0x6443	# <CJK>
+0xDDA3	0x641F	# <CJK>
+0xDDA4	0x6415	# <CJK>
+0xDDA5	0x6418	# <CJK>
+0xDDA6	0x6439	# <CJK>
+0xDDA7	0x6437	# <CJK>
+0xDDA8	0x6422	# <CJK>
+0xDDA9	0x6423	# <CJK>
+0xDDAA	0x640C	# <CJK>
+0xDDAB	0x6426	# <CJK>
+0xDDAC	0x6430	# <CJK>
+0xDDAD	0x6428	# <CJK>
+0xDDAE	0x6441	# <CJK>
+0xDDAF	0x6435	# <CJK>
+0xDDB0	0x642F	# <CJK>
+0xDDB1	0x640A	# <CJK>
+0xDDB2	0x641A	# <CJK>
+0xDDB3	0x6440	# <CJK>
+0xDDB4	0x6425	# <CJK>
+0xDDB5	0x6427	# <CJK>
+0xDDB6	0x640B	# <CJK>
+0xDDB7	0x63E7	# <CJK>
+0xDDB8	0x641B	# <CJK>
+0xDDB9	0x642E	# <CJK>
+0xDDBA	0x6421	# <CJK>
+0xDDBB	0x640E	# <CJK>
+0xDDBC	0x656F	# <CJK>
+0xDDBD	0x6592	# <CJK>
+0xDDBE	0x65D3	# <CJK>
+0xDDBF	0x6686	# <CJK>
+0xDDC0	0x668C	# <CJK>
+0xDDC1	0x6695	# <CJK>
+0xDDC2	0x6690	# <CJK>
+0xDDC3	0x668B	# <CJK>
+0xDDC4	0x668A	# <CJK>
+0xDDC5	0x6699	# <CJK>
+0xDDC6	0x6694	# <CJK>
+0xDDC7	0x6678	# <CJK>
+0xDDC8	0x6720	# <CJK>
+0xDDC9	0x6966	# <CJK>
+0xDDCA	0x695F	# <CJK>
+0xDDCB	0x6938	# <CJK>
+0xDDCC	0x694E	# <CJK>
+0xDDCD	0x6962	# <CJK>
+0xDDCE	0x6971	# <CJK>
+0xDDCF	0x693F	# <CJK>
+0xDDD0	0x6945	# <CJK>
+0xDDD1	0x696A	# <CJK>
+0xDDD2	0x6939	# <CJK>
+0xDDD3	0x6942	# <CJK>
+0xDDD4	0x6957	# <CJK>
+0xDDD5	0x6959	# <CJK>
+0xDDD6	0x697A	# <CJK>
+0xDDD7	0x6948	# <CJK>
+0xDDD8	0x6949	# <CJK>
+0xDDD9	0x6935	# <CJK>
+0xDDDA	0x696C	# <CJK>
+0xDDDB	0x6933	# <CJK>
+0xDDDC	0x693D	# <CJK>
+0xDDDD	0x6965	# <CJK>
+0xDDDE	0x68F0	# <CJK>
+0xDDDF	0x6978	# <CJK>
+0xDDE0	0x6934	# <CJK>
+0xDDE1	0x6969	# <CJK>
+0xDDE2	0x6940	# <CJK>
+0xDDE3	0x696F	# <CJK>
+0xDDE4	0x6944	# <CJK>
+0xDDE5	0x6976	# <CJK>
+0xDDE6	0x6958	# <CJK>
+0xDDE7	0x6941	# <CJK>
+0xDDE8	0x6974	# <CJK>
+0xDDE9	0x694C	# <CJK>
+0xDDEA	0x693B	# <CJK>
+0xDDEB	0x694B	# <CJK>
+0xDDEC	0x6937	# <CJK>
+0xDDED	0x695C	# <CJK>
+0xDDEE	0x694F	# <CJK>
+0xDDEF	0x6951	# <CJK>
+0xDDF0	0x6932	# <CJK>
+0xDDF1	0x6952	# <CJK>
+0xDDF2	0x692F	# <CJK>
+0xDDF3	0x697B	# <CJK>
+0xDDF4	0x693C	# <CJK>
+0xDDF5	0x6B46	# <CJK>
+0xDDF6	0x6B45	# <CJK>
+0xDDF7	0x6B43	# <CJK>
+0xDDF8	0x6B42	# <CJK>
+0xDDF9	0x6B48	# <CJK>
+0xDDFA	0x6B41	# <CJK>
+0xDDFB	0x6B9B	# <CJK>
+0xDDFC	0xFA0D	# CJK COMPATIBILITY IDEOGRAPH-FA0D
+0xDDFD	0x6BFB	# <CJK>
+0xDDFE	0x6BFC	# <CJK>
+0xDE40	0x6BF9	# <CJK>
+0xDE41	0x6BF7	# <CJK>
+0xDE42	0x6BF8	# <CJK>
+0xDE43	0x6E9B	# <CJK>
+0xDE44	0x6ED6	# <CJK>
+0xDE45	0x6EC8	# <CJK>
+0xDE46	0x6E8F	# <CJK>
+0xDE47	0x6EC0	# <CJK>
+0xDE48	0x6E9F	# <CJK>
+0xDE49	0x6E93	# <CJK>
+0xDE4A	0x6E94	# <CJK>
+0xDE4B	0x6EA0	# <CJK>
+0xDE4C	0x6EB1	# <CJK>
+0xDE4D	0x6EB9	# <CJK>
+0xDE4E	0x6EC6	# <CJK>
+0xDE4F	0x6ED2	# <CJK>
+0xDE50	0x6EBD	# <CJK>
+0xDE51	0x6EC1	# <CJK>
+0xDE52	0x6E9E	# <CJK>
+0xDE53	0x6EC9	# <CJK>
+0xDE54	0x6EB7	# <CJK>
+0xDE55	0x6EB0	# <CJK>
+0xDE56	0x6ECD	# <CJK>
+0xDE57	0x6EA6	# <CJK>
+0xDE58	0x6ECF	# <CJK>
+0xDE59	0x6EB2	# <CJK>
+0xDE5A	0x6EBE	# <CJK>
+0xDE5B	0x6EC3	# <CJK>
+0xDE5C	0x6EDC	# <CJK>
+0xDE5D	0x6ED8	# <CJK>
+0xDE5E	0x6E99	# <CJK>
+0xDE5F	0x6E92	# <CJK>
+0xDE60	0x6E8E	# <CJK>
+0xDE61	0x6E8D	# <CJK>
+0xDE62	0x6EA4	# <CJK>
+0xDE63	0x6EA1	# <CJK>
+0xDE64	0x6EBF	# <CJK>
+0xDE65	0x6EB3	# <CJK>
+0xDE66	0x6ED0	# <CJK>
+0xDE67	0x6ECA	# <CJK>
+0xDE68	0x6E97	# <CJK>
+0xDE69	0x6EAE	# <CJK>
+0xDE6A	0x6EA3	# <CJK>
+0xDE6B	0x7147	# <CJK>
+0xDE6C	0x7154	# <CJK>
+0xDE6D	0x7152	# <CJK>
+0xDE6E	0x7163	# <CJK>
+0xDE6F	0x7160	# <CJK>
+0xDE70	0x7141	# <CJK>
+0xDE71	0x715D	# <CJK>
+0xDE72	0x7162	# <CJK>
+0xDE73	0x7172	# <CJK>
+0xDE74	0x7178	# <CJK>
+0xDE75	0x716A	# <CJK>
+0xDE76	0x7161	# <CJK>
+0xDE77	0x7142	# <CJK>
+0xDE78	0x7158	# <CJK>
+0xDE79	0x7143	# <CJK>
+0xDE7A	0x714B	# <CJK>
+0xDE7B	0x7170	# <CJK>
+0xDE7C	0x715F	# <CJK>
+0xDE7D	0x7150	# <CJK>
+0xDE7E	0x7153	# <CJK>
+0xDEA1	0x7144	# <CJK>
+0xDEA2	0x714D	# <CJK>
+0xDEA3	0x715A	# <CJK>
+0xDEA4	0x724F	# <CJK>
+0xDEA5	0x728D	# <CJK>
+0xDEA6	0x728C	# <CJK>
+0xDEA7	0x7291	# <CJK>
+0xDEA8	0x7290	# <CJK>
+0xDEA9	0x728E	# <CJK>
+0xDEAA	0x733C	# <CJK>
+0xDEAB	0x7342	# <CJK>
+0xDEAC	0x733B	# <CJK>
+0xDEAD	0x733A	# <CJK>
+0xDEAE	0x7340	# <CJK>
+0xDEAF	0x734A	# <CJK>
+0xDEB0	0x7349	# <CJK>
+0xDEB1	0x7444	# <CJK>
+0xDEB2	0x744A	# <CJK>
+0xDEB3	0x744B	# <CJK>
+0xDEB4	0x7452	# <CJK>
+0xDEB5	0x7451	# <CJK>
+0xDEB6	0x7457	# <CJK>
+0xDEB7	0x7440	# <CJK>
+0xDEB8	0x744F	# <CJK>
+0xDEB9	0x7450	# <CJK>
+0xDEBA	0x744E	# <CJK>
+0xDEBB	0x7442	# <CJK>
+0xDEBC	0x7446	# <CJK>
+0xDEBD	0x744D	# <CJK>
+0xDEBE	0x7454	# <CJK>
+0xDEBF	0x74E1	# <CJK>
+0xDEC0	0x74FF	# <CJK>
+0xDEC1	0x74FE	# <CJK>
+0xDEC2	0x74FD	# <CJK>
+0xDEC3	0x751D	# <CJK>
+0xDEC4	0x7579	# <CJK>
+0xDEC5	0x7577	# <CJK>
+0xDEC6	0x6983	# <CJK>
+0xDEC7	0x75EF	# <CJK>
+0xDEC8	0x760F	# <CJK>
+0xDEC9	0x7603	# <CJK>
+0xDECA	0x75F7	# <CJK>
+0xDECB	0x75FE	# <CJK>
+0xDECC	0x75FC	# <CJK>
+0xDECD	0x75F9	# <CJK>
+0xDECE	0x75F8	# <CJK>
+0xDECF	0x7610	# <CJK>
+0xDED0	0x75FB	# <CJK>
+0xDED1	0x75F6	# <CJK>
+0xDED2	0x75ED	# <CJK>
+0xDED3	0x75F5	# <CJK>
+0xDED4	0x75FD	# <CJK>
+0xDED5	0x7699	# <CJK>
+0xDED6	0x76B5	# <CJK>
+0xDED7	0x76DD	# <CJK>
+0xDED8	0x7755	# <CJK>
+0xDED9	0x775F	# <CJK>
+0xDEDA	0x7760	# <CJK>
+0xDEDB	0x7752	# <CJK>
+0xDEDC	0x7756	# <CJK>
+0xDEDD	0x775A	# <CJK>
+0xDEDE	0x7769	# <CJK>
+0xDEDF	0x7767	# <CJK>
+0xDEE0	0x7754	# <CJK>
+0xDEE1	0x7759	# <CJK>
+0xDEE2	0x776D	# <CJK>
+0xDEE3	0x77E0	# <CJK>
+0xDEE4	0x7887	# <CJK>
+0xDEE5	0x789A	# <CJK>
+0xDEE6	0x7894	# <CJK>
+0xDEE7	0x788F	# <CJK>
+0xDEE8	0x7884	# <CJK>
+0xDEE9	0x7895	# <CJK>
+0xDEEA	0x7885	# <CJK>
+0xDEEB	0x7886	# <CJK>
+0xDEEC	0x78A1	# <CJK>
+0xDEED	0x7883	# <CJK>
+0xDEEE	0x7879	# <CJK>
+0xDEEF	0x7899	# <CJK>
+0xDEF0	0x7880	# <CJK>
+0xDEF1	0x7896	# <CJK>
+0xDEF2	0x787B	# <CJK>
+0xDEF3	0x797C	# <CJK>
+0xDEF4	0x7982	# <CJK>
+0xDEF5	0x797D	# <CJK>
+0xDEF6	0x7979	# <CJK>
+0xDEF7	0x7A11	# <CJK>
+0xDEF8	0x7A18	# <CJK>
+0xDEF9	0x7A19	# <CJK>
+0xDEFA	0x7A12	# <CJK>
+0xDEFB	0x7A17	# <CJK>
+0xDEFC	0x7A15	# <CJK>
+0xDEFD	0x7A22	# <CJK>
+0xDEFE	0x7A13	# <CJK>
+0xDF40	0x7A1B	# <CJK>
+0xDF41	0x7A10	# <CJK>
+0xDF42	0x7AA3	# <CJK>
+0xDF43	0x7AA2	# <CJK>
+0xDF44	0x7A9E	# <CJK>
+0xDF45	0x7AEB	# <CJK>
+0xDF46	0x7B66	# <CJK>
+0xDF47	0x7B64	# <CJK>
+0xDF48	0x7B6D	# <CJK>
+0xDF49	0x7B74	# <CJK>
+0xDF4A	0x7B69	# <CJK>
+0xDF4B	0x7B72	# <CJK>
+0xDF4C	0x7B65	# <CJK>
+0xDF4D	0x7B73	# <CJK>
+0xDF4E	0x7B71	# <CJK>
+0xDF4F	0x7B70	# <CJK>
+0xDF50	0x7B61	# <CJK>
+0xDF51	0x7B78	# <CJK>
+0xDF52	0x7B76	# <CJK>
+0xDF53	0x7B63	# <CJK>
+0xDF54	0x7CB2	# <CJK>
+0xDF55	0x7CB4	# <CJK>
+0xDF56	0x7CAF	# <CJK>
+0xDF57	0x7D88	# <CJK>
+0xDF58	0x7D86	# <CJK>
+0xDF59	0x7D80	# <CJK>
+0xDF5A	0x7D8D	# <CJK>
+0xDF5B	0x7D7F	# <CJK>
+0xDF5C	0x7D85	# <CJK>
+0xDF5D	0x7D7A	# <CJK>
+0xDF5E	0x7D8E	# <CJK>
+0xDF5F	0x7D7B	# <CJK>
+0xDF60	0x7D83	# <CJK>
+0xDF61	0x7D7C	# <CJK>
+0xDF62	0x7D8C	# <CJK>
+0xDF63	0x7D94	# <CJK>
+0xDF64	0x7D84	# <CJK>
+0xDF65	0x7D7D	# <CJK>
+0xDF66	0x7D92	# <CJK>
+0xDF67	0x7F6D	# <CJK>
+0xDF68	0x7F6B	# <CJK>
+0xDF69	0x7F67	# <CJK>
+0xDF6A	0x7F68	# <CJK>
+0xDF6B	0x7F6C	# <CJK>
+0xDF6C	0x7FA6	# <CJK>
+0xDF6D	0x7FA5	# <CJK>
+0xDF6E	0x7FA7	# <CJK>
+0xDF6F	0x7FDB	# <CJK>
+0xDF70	0x7FDC	# <CJK>
+0xDF71	0x8021	# <CJK>
+0xDF72	0x8164	# <CJK>
+0xDF73	0x8160	# <CJK>
+0xDF74	0x8177	# <CJK>
+0xDF75	0x815C	# <CJK>
+0xDF76	0x8169	# <CJK>
+0xDF77	0x815B	# <CJK>
+0xDF78	0x8162	# <CJK>
+0xDF79	0x8172	# <CJK>
+0xDF7A	0x6721	# <CJK>
+0xDF7B	0x815E	# <CJK>
+0xDF7C	0x8176	# <CJK>
+0xDF7D	0x8167	# <CJK>
+0xDF7E	0x816F	# <CJK>
+0xDFA1	0x8144	# <CJK>
+0xDFA2	0x8161	# <CJK>
+0xDFA3	0x821D	# <CJK>
+0xDFA4	0x8249	# <CJK>
+0xDFA5	0x8244	# <CJK>
+0xDFA6	0x8240	# <CJK>
+0xDFA7	0x8242	# <CJK>
+0xDFA8	0x8245	# <CJK>
+0xDFA9	0x84F1	# <CJK>
+0xDFAA	0x843F	# <CJK>
+0xDFAB	0x8456	# <CJK>
+0xDFAC	0x8476	# <CJK>
+0xDFAD	0x8479	# <CJK>
+0xDFAE	0x848F	# <CJK>
+0xDFAF	0x848D	# <CJK>
+0xDFB0	0x8465	# <CJK>
+0xDFB1	0x8451	# <CJK>
+0xDFB2	0x8440	# <CJK>
+0xDFB3	0x8486	# <CJK>
+0xDFB4	0x8467	# <CJK>
+0xDFB5	0x8430	# <CJK>
+0xDFB6	0x844D	# <CJK>
+0xDFB7	0x847D	# <CJK>
+0xDFB8	0x845A	# <CJK>
+0xDFB9	0x8459	# <CJK>
+0xDFBA	0x8474	# <CJK>
+0xDFBB	0x8473	# <CJK>
+0xDFBC	0x845D	# <CJK>
+0xDFBD	0x8507	# <CJK>
+0xDFBE	0x845E	# <CJK>
+0xDFBF	0x8437	# <CJK>
+0xDFC0	0x843A	# <CJK>
+0xDFC1	0x8434	# <CJK>
+0xDFC2	0x847A	# <CJK>
+0xDFC3	0x8443	# <CJK>
+0xDFC4	0x8478	# <CJK>
+0xDFC5	0x8432	# <CJK>
+0xDFC6	0x8445	# <CJK>
+0xDFC7	0x8429	# <CJK>
+0xDFC8	0x83D9	# <CJK>
+0xDFC9	0x844B	# <CJK>
+0xDFCA	0x842F	# <CJK>
+0xDFCB	0x8442	# <CJK>
+0xDFCC	0x842D	# <CJK>
+0xDFCD	0x845F	# <CJK>
+0xDFCE	0x8470	# <CJK>
+0xDFCF	0x8439	# <CJK>
+0xDFD0	0x844E	# <CJK>
+0xDFD1	0x844C	# <CJK>
+0xDFD2	0x8452	# <CJK>
+0xDFD3	0x846F	# <CJK>
+0xDFD4	0x84C5	# <CJK>
+0xDFD5	0x848E	# <CJK>
+0xDFD6	0x843B	# <CJK>
+0xDFD7	0x8447	# <CJK>
+0xDFD8	0x8436	# <CJK>
+0xDFD9	0x8433	# <CJK>
+0xDFDA	0x8468	# <CJK>
+0xDFDB	0x847E	# <CJK>
+0xDFDC	0x8444	# <CJK>
+0xDFDD	0x842B	# <CJK>
+0xDFDE	0x8460	# <CJK>
+0xDFDF	0x8454	# <CJK>
+0xDFE0	0x846E	# <CJK>
+0xDFE1	0x8450	# <CJK>
+0xDFE2	0x870B	# <CJK>
+0xDFE3	0x8704	# <CJK>
+0xDFE4	0x86F7	# <CJK>
+0xDFE5	0x870C	# <CJK>
+0xDFE6	0x86FA	# <CJK>
+0xDFE7	0x86D6	# <CJK>
+0xDFE8	0x86F5	# <CJK>
+0xDFE9	0x874D	# <CJK>
+0xDFEA	0x86F8	# <CJK>
+0xDFEB	0x870E	# <CJK>
+0xDFEC	0x8709	# <CJK>
+0xDFED	0x8701	# <CJK>
+0xDFEE	0x86F6	# <CJK>
+0xDFEF	0x870D	# <CJK>
+0xDFF0	0x8705	# <CJK>
+0xDFF1	0x88D6	# <CJK>
+0xDFF2	0x88CB	# <CJK>
+0xDFF3	0x88CD	# <CJK>
+0xDFF4	0x88CE	# <CJK>
+0xDFF5	0x88DE	# <CJK>
+0xDFF6	0x88DB	# <CJK>
+0xDFF7	0x88DA	# <CJK>
+0xDFF8	0x88CC	# <CJK>
+0xDFF9	0x88D0	# <CJK>
+0xDFFA	0x8985	# <CJK>
+0xDFFB	0x899B	# <CJK>
+0xDFFC	0x89DF	# <CJK>
+0xDFFD	0x89E5	# <CJK>
+0xDFFE	0x89E4	# <CJK>
+0xE040	0x89E1	# <CJK>
+0xE041	0x89E0	# <CJK>
+0xE042	0x89E2	# <CJK>
+0xE043	0x89DC	# <CJK>
+0xE044	0x89E6	# <CJK>
+0xE045	0x8A76	# <CJK>
+0xE046	0x8A86	# <CJK>
+0xE047	0x8A7F	# <CJK>
+0xE048	0x8A61	# <CJK>
+0xE049	0x8A3F	# <CJK>
+0xE04A	0x8A77	# <CJK>
+0xE04B	0x8A82	# <CJK>
+0xE04C	0x8A84	# <CJK>
+0xE04D	0x8A75	# <CJK>
+0xE04E	0x8A83	# <CJK>
+0xE04F	0x8A81	# <CJK>
+0xE050	0x8A74	# <CJK>
+0xE051	0x8A7A	# <CJK>
+0xE052	0x8C3C	# <CJK>
+0xE053	0x8C4B	# <CJK>
+0xE054	0x8C4A	# <CJK>
+0xE055	0x8C65	# <CJK>
+0xE056	0x8C64	# <CJK>
+0xE057	0x8C66	# <CJK>
+0xE058	0x8C86	# <CJK>
+0xE059	0x8C84	# <CJK>
+0xE05A	0x8C85	# <CJK>
+0xE05B	0x8CCC	# <CJK>
+0xE05C	0x8D68	# <CJK>
+0xE05D	0x8D69	# <CJK>
+0xE05E	0x8D91	# <CJK>
+0xE05F	0x8D8C	# <CJK>
+0xE060	0x8D8E	# <CJK>
+0xE061	0x8D8F	# <CJK>
+0xE062	0x8D8D	# <CJK>
+0xE063	0x8D93	# <CJK>
+0xE064	0x8D94	# <CJK>
+0xE065	0x8D90	# <CJK>
+0xE066	0x8D92	# <CJK>
+0xE067	0x8DF0	# <CJK>
+0xE068	0x8DE0	# <CJK>
+0xE069	0x8DEC	# <CJK>
+0xE06A	0x8DF1	# <CJK>
+0xE06B	0x8DEE	# <CJK>
+0xE06C	0x8DD0	# <CJK>
+0xE06D	0x8DE9	# <CJK>
+0xE06E	0x8DE3	# <CJK>
+0xE06F	0x8DE2	# <CJK>
+0xE070	0x8DE7	# <CJK>
+0xE071	0x8DF2	# <CJK>
+0xE072	0x8DEB	# <CJK>
+0xE073	0x8DF4	# <CJK>
+0xE074	0x8F06	# <CJK>
+0xE075	0x8EFF	# <CJK>
+0xE076	0x8F01	# <CJK>
+0xE077	0x8F00	# <CJK>
+0xE078	0x8F05	# <CJK>
+0xE079	0x8F07	# <CJK>
+0xE07A	0x8F08	# <CJK>
+0xE07B	0x8F02	# <CJK>
+0xE07C	0x8F0B	# <CJK>
+0xE07D	0x9052	# <CJK>
+0xE07E	0x903F	# <CJK>
+0xE0A1	0x9044	# <CJK>
+0xE0A2	0x9049	# <CJK>
+0xE0A3	0x903D	# <CJK>
+0xE0A4	0x9110	# <CJK>
+0xE0A5	0x910D	# <CJK>
+0xE0A6	0x910F	# <CJK>
+0xE0A7	0x9111	# <CJK>
+0xE0A8	0x9116	# <CJK>
+0xE0A9	0x9114	# <CJK>
+0xE0AA	0x910B	# <CJK>
+0xE0AB	0x910E	# <CJK>
+0xE0AC	0x916E	# <CJK>
+0xE0AD	0x916F	# <CJK>
+0xE0AE	0x9248	# <CJK>
+0xE0AF	0x9252	# <CJK>
+0xE0B0	0x9230	# <CJK>
+0xE0B1	0x923A	# <CJK>
+0xE0B2	0x9266	# <CJK>
+0xE0B3	0x9233	# <CJK>
+0xE0B4	0x9265	# <CJK>
+0xE0B5	0x925E	# <CJK>
+0xE0B6	0x9283	# <CJK>
+0xE0B7	0x922E	# <CJK>
+0xE0B8	0x924A	# <CJK>
+0xE0B9	0x9246	# <CJK>
+0xE0BA	0x926D	# <CJK>
+0xE0BB	0x926C	# <CJK>
+0xE0BC	0x924F	# <CJK>
+0xE0BD	0x9260	# <CJK>
+0xE0BE	0x9267	# <CJK>
+0xE0BF	0x926F	# <CJK>
+0xE0C0	0x9236	# <CJK>
+0xE0C1	0x9261	# <CJK>
+0xE0C2	0x9270	# <CJK>
+0xE0C3	0x9231	# <CJK>
+0xE0C4	0x9254	# <CJK>
+0xE0C5	0x9263	# <CJK>
+0xE0C6	0x9250	# <CJK>
+0xE0C7	0x9272	# <CJK>
+0xE0C8	0x924E	# <CJK>
+0xE0C9	0x9253	# <CJK>
+0xE0CA	0x924C	# <CJK>
+0xE0CB	0x9256	# <CJK>
+0xE0CC	0x9232	# <CJK>
+0xE0CD	0x959F	# <CJK>
+0xE0CE	0x959C	# <CJK>
+0xE0CF	0x959E	# <CJK>
+0xE0D0	0x959B	# <CJK>
+0xE0D1	0x9692	# <CJK>
+0xE0D2	0x9693	# <CJK>
+0xE0D3	0x9691	# <CJK>
+0xE0D4	0x9697	# <CJK>
+0xE0D5	0x96CE	# <CJK>
+0xE0D6	0x96FA	# <CJK>
+0xE0D7	0x96FD	# <CJK>
+0xE0D8	0x96F8	# <CJK>
+0xE0D9	0x96F5	# <CJK>
+0xE0DA	0x9773	# <CJK>
+0xE0DB	0x9777	# <CJK>
+0xE0DC	0x9778	# <CJK>
+0xE0DD	0x9772	# <CJK>
+0xE0DE	0x980F	# <CJK>
+0xE0DF	0x980D	# <CJK>
+0xE0E0	0x980E	# <CJK>
+0xE0E1	0x98AC	# <CJK>
+0xE0E2	0x98F6	# <CJK>
+0xE0E3	0x98F9	# <CJK>
+0xE0E4	0x99AF	# <CJK>
+0xE0E5	0x99B2	# <CJK>
+0xE0E6	0x99B0	# <CJK>
+0xE0E7	0x99B5	# <CJK>
+0xE0E8	0x9AAD	# <CJK>
+0xE0E9	0x9AAB	# <CJK>
+0xE0EA	0x9B5B	# <CJK>
+0xE0EB	0x9CEA	# <CJK>
+0xE0EC	0x9CED	# <CJK>
+0xE0ED	0x9CE7	# <CJK>
+0xE0EE	0x9E80	# <CJK>
+0xE0EF	0x9EFD	# <CJK>
+0xE0F0	0x50E6	# <CJK>
+0xE0F1	0x50D4	# <CJK>
+0xE0F2	0x50D7	# <CJK>
+0xE0F3	0x50E8	# <CJK>
+0xE0F4	0x50F3	# <CJK>
+0xE0F5	0x50DB	# <CJK>
+0xE0F6	0x50EA	# <CJK>
+0xE0F7	0x50DD	# <CJK>
+0xE0F8	0x50E4	# <CJK>
+0xE0F9	0x50D3	# <CJK>
+0xE0FA	0x50EC	# <CJK>
+0xE0FB	0x50F0	# <CJK>
+0xE0FC	0x50EF	# <CJK>
+0xE0FD	0x50E3	# <CJK>
+0xE0FE	0x50E0	# <CJK>
+0xE140	0x51D8	# <CJK>
+0xE141	0x5280	# <CJK>
+0xE142	0x5281	# <CJK>
+0xE143	0x52E9	# <CJK>
+0xE144	0x52EB	# <CJK>
+0xE145	0x5330	# <CJK>
+0xE146	0x53AC	# <CJK>
+0xE147	0x5627	# <CJK>
+0xE148	0x5615	# <CJK>
+0xE149	0x560C	# <CJK>
+0xE14A	0x5612	# <CJK>
+0xE14B	0x55FC	# <CJK>
+0xE14C	0x560F	# <CJK>
+0xE14D	0x561C	# <CJK>
+0xE14E	0x5601	# <CJK>
+0xE14F	0x5613	# <CJK>
+0xE150	0x5602	# <CJK>
+0xE151	0x55FA	# <CJK>
+0xE152	0x561D	# <CJK>
+0xE153	0x5604	# <CJK>
+0xE154	0x55FF	# <CJK>
+0xE155	0x55F9	# <CJK>
+0xE156	0x5889	# <CJK>
+0xE157	0x587C	# <CJK>
+0xE158	0x5890	# <CJK>
+0xE159	0x5898	# <CJK>
+0xE15A	0x5886	# <CJK>
+0xE15B	0x5881	# <CJK>
+0xE15C	0x587F	# <CJK>
+0xE15D	0x5874	# <CJK>
+0xE15E	0x588B	# <CJK>
+0xE15F	0x587A	# <CJK>
+0xE160	0x5887	# <CJK>
+0xE161	0x5891	# <CJK>
+0xE162	0x588E	# <CJK>
+0xE163	0x5876	# <CJK>
+0xE164	0x5882	# <CJK>
+0xE165	0x5888	# <CJK>
+0xE166	0x587B	# <CJK>
+0xE167	0x5894	# <CJK>
+0xE168	0x588F	# <CJK>
+0xE169	0x58FE	# <CJK>
+0xE16A	0x596B	# <CJK>
+0xE16B	0x5ADC	# <CJK>
+0xE16C	0x5AEE	# <CJK>
+0xE16D	0x5AE5	# <CJK>
+0xE16E	0x5AD5	# <CJK>
+0xE16F	0x5AEA	# <CJK>
+0xE170	0x5ADA	# <CJK>
+0xE171	0x5AED	# <CJK>
+0xE172	0x5AEB	# <CJK>
+0xE173	0x5AF3	# <CJK>
+0xE174	0x5AE2	# <CJK>
+0xE175	0x5AE0	# <CJK>
+0xE176	0x5ADB	# <CJK>
+0xE177	0x5AEC	# <CJK>
+0xE178	0x5ADE	# <CJK>
+0xE179	0x5ADD	# <CJK>
+0xE17A	0x5AD9	# <CJK>
+0xE17B	0x5AE8	# <CJK>
+0xE17C	0x5ADF	# <CJK>
+0xE17D	0x5B77	# <CJK>
+0xE17E	0x5BE0	# <CJK>
+0xE1A1	0x5BE3	# <CJK>
+0xE1A2	0x5C63	# <CJK>
+0xE1A3	0x5D82	# <CJK>
+0xE1A4	0x5D80	# <CJK>
+0xE1A5	0x5D7D	# <CJK>
+0xE1A6	0x5D86	# <CJK>
+0xE1A7	0x5D7A	# <CJK>
+0xE1A8	0x5D81	# <CJK>
+0xE1A9	0x5D77	# <CJK>
+0xE1AA	0x5D8A	# <CJK>
+0xE1AB	0x5D89	# <CJK>
+0xE1AC	0x5D88	# <CJK>
+0xE1AD	0x5D7E	# <CJK>
+0xE1AE	0x5D7C	# <CJK>
+0xE1AF	0x5D8D	# <CJK>
+0xE1B0	0x5D79	# <CJK>
+0xE1B1	0x5D7F	# <CJK>
+0xE1B2	0x5E58	# <CJK>
+0xE1B3	0x5E59	# <CJK>
+0xE1B4	0x5E53	# <CJK>
+0xE1B5	0x5ED8	# <CJK>
+0xE1B6	0x5ED1	# <CJK>
+0xE1B7	0x5ED7	# <CJK>
+0xE1B8	0x5ECE	# <CJK>
+0xE1B9	0x5EDC	# <CJK>
+0xE1BA	0x5ED5	# <CJK>
+0xE1BB	0x5ED9	# <CJK>
+0xE1BC	0x5ED2	# <CJK>
+0xE1BD	0x5ED4	# <CJK>
+0xE1BE	0x5F44	# <CJK>
+0xE1BF	0x5F43	# <CJK>
+0xE1C0	0x5F6F	# <CJK>
+0xE1C1	0x5FB6	# <CJK>
+0xE1C2	0x612C	# <CJK>
+0xE1C3	0x6128	# <CJK>
+0xE1C4	0x6141	# <CJK>
+0xE1C5	0x615E	# <CJK>
+0xE1C6	0x6171	# <CJK>
+0xE1C7	0x6173	# <CJK>
+0xE1C8	0x6152	# <CJK>
+0xE1C9	0x6153	# <CJK>
+0xE1CA	0x6172	# <CJK>
+0xE1CB	0x616C	# <CJK>
+0xE1CC	0x6180	# <CJK>
+0xE1CD	0x6174	# <CJK>
+0xE1CE	0x6154	# <CJK>
+0xE1CF	0x617A	# <CJK>
+0xE1D0	0x615B	# <CJK>
+0xE1D1	0x6165	# <CJK>
+0xE1D2	0x613B	# <CJK>
+0xE1D3	0x616A	# <CJK>
+0xE1D4	0x6161	# <CJK>
+0xE1D5	0x6156	# <CJK>
+0xE1D6	0x6229	# <CJK>
+0xE1D7	0x6227	# <CJK>
+0xE1D8	0x622B	# <CJK>
+0xE1D9	0x642B	# <CJK>
+0xE1DA	0x644D	# <CJK>
+0xE1DB	0x645B	# <CJK>
+0xE1DC	0x645D	# <CJK>
+0xE1DD	0x6474	# <CJK>
+0xE1DE	0x6476	# <CJK>
+0xE1DF	0x6472	# <CJK>
+0xE1E0	0x6473	# <CJK>
+0xE1E1	0x647D	# <CJK>
+0xE1E2	0x6475	# <CJK>
+0xE1E3	0x6466	# <CJK>
+0xE1E4	0x64A6	# <CJK>
+0xE1E5	0x644E	# <CJK>
+0xE1E6	0x6482	# <CJK>
+0xE1E7	0x645E	# <CJK>
+0xE1E8	0x645C	# <CJK>
+0xE1E9	0x644B	# <CJK>
+0xE1EA	0x6453	# <CJK>
+0xE1EB	0x6460	# <CJK>
+0xE1EC	0x6450	# <CJK>
+0xE1ED	0x647F	# <CJK>
+0xE1EE	0x643F	# <CJK>
+0xE1EF	0x646C	# <CJK>
+0xE1F0	0x646B	# <CJK>
+0xE1F1	0x6459	# <CJK>
+0xE1F2	0x6465	# <CJK>
+0xE1F3	0x6477	# <CJK>
+0xE1F4	0x6573	# <CJK>
+0xE1F5	0x65A0	# <CJK>
+0xE1F6	0x66A1	# <CJK>
+0xE1F7	0x66A0	# <CJK>
+0xE1F8	0x669F	# <CJK>
+0xE1F9	0x6705	# <CJK>
+0xE1FA	0x6704	# <CJK>
+0xE1FB	0x6722	# <CJK>
+0xE1FC	0x69B1	# <CJK>
+0xE1FD	0x69B6	# <CJK>
+0xE1FE	0x69C9	# <CJK>
+0xE240	0x69A0	# <CJK>
+0xE241	0x69CE	# <CJK>
+0xE242	0x6996	# <CJK>
+0xE243	0x69B0	# <CJK>
+0xE244	0x69AC	# <CJK>
+0xE245	0x69BC	# <CJK>
+0xE246	0x6991	# <CJK>
+0xE247	0x6999	# <CJK>
+0xE248	0x698E	# <CJK>
+0xE249	0x69A7	# <CJK>
+0xE24A	0x698D	# <CJK>
+0xE24B	0x69A9	# <CJK>
+0xE24C	0x69BE	# <CJK>
+0xE24D	0x69AF	# <CJK>
+0xE24E	0x69BF	# <CJK>
+0xE24F	0x69C4	# <CJK>
+0xE250	0x69BD	# <CJK>
+0xE251	0x69A4	# <CJK>
+0xE252	0x69D4	# <CJK>
+0xE253	0x69B9	# <CJK>
+0xE254	0x69CA	# <CJK>
+0xE255	0x699A	# <CJK>
+0xE256	0x69CF	# <CJK>
+0xE257	0x69B3	# <CJK>
+0xE258	0x6993	# <CJK>
+0xE259	0x69AA	# <CJK>
+0xE25A	0x69A1	# <CJK>
+0xE25B	0x699E	# <CJK>
+0xE25C	0x69D9	# <CJK>
+0xE25D	0x6997	# <CJK>
+0xE25E	0x6990	# <CJK>
+0xE25F	0x69C2	# <CJK>
+0xE260	0x69B5	# <CJK>
+0xE261	0x69A5	# <CJK>
+0xE262	0x69C6	# <CJK>
+0xE263	0x6B4A	# <CJK>
+0xE264	0x6B4D	# <CJK>
+0xE265	0x6B4B	# <CJK>
+0xE266	0x6B9E	# <CJK>
+0xE267	0x6B9F	# <CJK>
+0xE268	0x6BA0	# <CJK>
+0xE269	0x6BC3	# <CJK>
+0xE26A	0x6BC4	# <CJK>
+0xE26B	0x6BFE	# <CJK>
+0xE26C	0x6ECE	# <CJK>
+0xE26D	0x6EF5	# <CJK>
+0xE26E	0x6EF1	# <CJK>
+0xE26F	0x6F03	# <CJK>
+0xE270	0x6F25	# <CJK>
+0xE271	0x6EF8	# <CJK>
+0xE272	0x6F37	# <CJK>
+0xE273	0x6EFB	# <CJK>
+0xE274	0x6F2E	# <CJK>
+0xE275	0x6F09	# <CJK>
+0xE276	0x6F4E	# <CJK>
+0xE277	0x6F19	# <CJK>
+0xE278	0x6F1A	# <CJK>
+0xE279	0x6F27	# <CJK>
+0xE27A	0x6F18	# <CJK>
+0xE27B	0x6F3B	# <CJK>
+0xE27C	0x6F12	# <CJK>
+0xE27D	0x6EED	# <CJK>
+0xE27E	0x6F0A	# <CJK>
+0xE2A1	0x6F36	# <CJK>
+0xE2A2	0x6F73	# <CJK>
+0xE2A3	0x6EF9	# <CJK>
+0xE2A4	0x6EEE	# <CJK>
+0xE2A5	0x6F2D	# <CJK>
+0xE2A6	0x6F40	# <CJK>
+0xE2A7	0x6F30	# <CJK>
+0xE2A8	0x6F3C	# <CJK>
+0xE2A9	0x6F35	# <CJK>
+0xE2AA	0x6EEB	# <CJK>
+0xE2AB	0x6F07	# <CJK>
+0xE2AC	0x6F0E	# <CJK>
+0xE2AD	0x6F43	# <CJK>
+0xE2AE	0x6F05	# <CJK>
+0xE2AF	0x6EFD	# <CJK>
+0xE2B0	0x6EF6	# <CJK>
+0xE2B1	0x6F39	# <CJK>
+0xE2B2	0x6F1C	# <CJK>
+0xE2B3	0x6EFC	# <CJK>
+0xE2B4	0x6F3A	# <CJK>
+0xE2B5	0x6F1F	# <CJK>
+0xE2B6	0x6F0D	# <CJK>
+0xE2B7	0x6F1E	# <CJK>
+0xE2B8	0x6F08	# <CJK>
+0xE2B9	0x6F21	# <CJK>
+0xE2BA	0x7187	# <CJK>
+0xE2BB	0x7190	# <CJK>
+0xE2BC	0x7189	# <CJK>
+0xE2BD	0x7180	# <CJK>
+0xE2BE	0x7185	# <CJK>
+0xE2BF	0x7182	# <CJK>
+0xE2C0	0x718F	# <CJK>
+0xE2C1	0x717B	# <CJK>
+0xE2C2	0x7186	# <CJK>
+0xE2C3	0x7181	# <CJK>
+0xE2C4	0x7197	# <CJK>
+0xE2C5	0x7244	# <CJK>
+0xE2C6	0x7253	# <CJK>
+0xE2C7	0x7297	# <CJK>
+0xE2C8	0x7295	# <CJK>
+0xE2C9	0x7293	# <CJK>
+0xE2CA	0x7343	# <CJK>
+0xE2CB	0x734D	# <CJK>
+0xE2CC	0x7351	# <CJK>
+0xE2CD	0x734C	# <CJK>
+0xE2CE	0x7462	# <CJK>
+0xE2CF	0x7473	# <CJK>
+0xE2D0	0x7471	# <CJK>
+0xE2D1	0x7475	# <CJK>
+0xE2D2	0x7472	# <CJK>
+0xE2D3	0x7467	# <CJK>
+0xE2D4	0x746E	# <CJK>
+0xE2D5	0x7500	# <CJK>
+0xE2D6	0x7502	# <CJK>
+0xE2D7	0x7503	# <CJK>
+0xE2D8	0x757D	# <CJK>
+0xE2D9	0x7590	# <CJK>
+0xE2DA	0x7616	# <CJK>
+0xE2DB	0x7608	# <CJK>
+0xE2DC	0x760C	# <CJK>
+0xE2DD	0x7615	# <CJK>
+0xE2DE	0x7611	# <CJK>
+0xE2DF	0x760A	# <CJK>
+0xE2E0	0x7614	# <CJK>
+0xE2E1	0x76B8	# <CJK>
+0xE2E2	0x7781	# <CJK>
+0xE2E3	0x777C	# <CJK>
+0xE2E4	0x7785	# <CJK>
+0xE2E5	0x7782	# <CJK>
+0xE2E6	0x776E	# <CJK>
+0xE2E7	0x7780	# <CJK>
+0xE2E8	0x776F	# <CJK>
+0xE2E9	0x777E	# <CJK>
+0xE2EA	0x7783	# <CJK>
+0xE2EB	0x78B2	# <CJK>
+0xE2EC	0x78AA	# <CJK>
+0xE2ED	0x78B4	# <CJK>
+0xE2EE	0x78AD	# <CJK>
+0xE2EF	0x78A8	# <CJK>
+0xE2F0	0x787E	# <CJK>
+0xE2F1	0x78AB	# <CJK>
+0xE2F2	0x789E	# <CJK>
+0xE2F3	0x78A5	# <CJK>
+0xE2F4	0x78A0	# <CJK>
+0xE2F5	0x78AC	# <CJK>
+0xE2F6	0x78A2	# <CJK>
+0xE2F7	0x78A4	# <CJK>
+0xE2F8	0x7998	# <CJK>
+0xE2F9	0x798A	# <CJK>
+0xE2FA	0x798B	# <CJK>
+0xE2FB	0x7996	# <CJK>
+0xE2FC	0x7995	# <CJK>
+0xE2FD	0x7994	# <CJK>
+0xE2FE	0x7993	# <CJK>
+0xE340	0x7997	# <CJK>
+0xE341	0x7988	# <CJK>
+0xE342	0x7992	# <CJK>
+0xE343	0x7990	# <CJK>
+0xE344	0x7A2B	# <CJK>
+0xE345	0x7A4A	# <CJK>
+0xE346	0x7A30	# <CJK>
+0xE347	0x7A2F	# <CJK>
+0xE348	0x7A28	# <CJK>
+0xE349	0x7A26	# <CJK>
+0xE34A	0x7AA8	# <CJK>
+0xE34B	0x7AAB	# <CJK>
+0xE34C	0x7AAC	# <CJK>
+0xE34D	0x7AEE	# <CJK>
+0xE34E	0x7B88	# <CJK>
+0xE34F	0x7B9C	# <CJK>
+0xE350	0x7B8A	# <CJK>
+0xE351	0x7B91	# <CJK>
+0xE352	0x7B90	# <CJK>
+0xE353	0x7B96	# <CJK>
+0xE354	0x7B8D	# <CJK>
+0xE355	0x7B8C	# <CJK>
+0xE356	0x7B9B	# <CJK>
+0xE357	0x7B8E	# <CJK>
+0xE358	0x7B85	# <CJK>
+0xE359	0x7B98	# <CJK>
+0xE35A	0x5284	# <CJK>
+0xE35B	0x7B99	# <CJK>
+0xE35C	0x7BA4	# <CJK>
+0xE35D	0x7B82	# <CJK>
+0xE35E	0x7CBB	# <CJK>
+0xE35F	0x7CBF	# <CJK>
+0xE360	0x7CBC	# <CJK>
+0xE361	0x7CBA	# <CJK>
+0xE362	0x7DA7	# <CJK>
+0xE363	0x7DB7	# <CJK>
+0xE364	0x7DC2	# <CJK>
+0xE365	0x7DA3	# <CJK>
+0xE366	0x7DAA	# <CJK>
+0xE367	0x7DC1	# <CJK>
+0xE368	0x7DC0	# <CJK>
+0xE369	0x7DC5	# <CJK>
+0xE36A	0x7D9D	# <CJK>
+0xE36B	0x7DCE	# <CJK>
+0xE36C	0x7DC4	# <CJK>
+0xE36D	0x7DC6	# <CJK>
+0xE36E	0x7DCB	# <CJK>
+0xE36F	0x7DCC	# <CJK>
+0xE370	0x7DAF	# <CJK>
+0xE371	0x7DB9	# <CJK>
+0xE372	0x7D96	# <CJK>
+0xE373	0x7DBC	# <CJK>
+0xE374	0x7D9F	# <CJK>
+0xE375	0x7DA6	# <CJK>
+0xE376	0x7DAE	# <CJK>
+0xE377	0x7DA9	# <CJK>
+0xE378	0x7DA1	# <CJK>
+0xE379	0x7DC9	# <CJK>
+0xE37A	0x7F73	# <CJK>
+0xE37B	0x7FE2	# <CJK>
+0xE37C	0x7FE3	# <CJK>
+0xE37D	0x7FE5	# <CJK>
+0xE37E	0x7FDE	# <CJK>
+0xE3A1	0x8024	# <CJK>
+0xE3A2	0x805D	# <CJK>
+0xE3A3	0x805C	# <CJK>
+0xE3A4	0x8189	# <CJK>
+0xE3A5	0x8186	# <CJK>
+0xE3A6	0x8183	# <CJK>
+0xE3A7	0x8187	# <CJK>
+0xE3A8	0x818D	# <CJK>
+0xE3A9	0x818C	# <CJK>
+0xE3AA	0x818B	# <CJK>
+0xE3AB	0x8215	# <CJK>
+0xE3AC	0x8497	# <CJK>
+0xE3AD	0x84A4	# <CJK>
+0xE3AE	0x84A1	# <CJK>
+0xE3AF	0x849F	# <CJK>
+0xE3B0	0x84BA	# <CJK>
+0xE3B1	0x84CE	# <CJK>
+0xE3B2	0x84C2	# <CJK>
+0xE3B3	0x84AC	# <CJK>
+0xE3B4	0x84AE	# <CJK>
+0xE3B5	0x84AB	# <CJK>
+0xE3B6	0x84B9	# <CJK>
+0xE3B7	0x84B4	# <CJK>
+0xE3B8	0x84C1	# <CJK>
+0xE3B9	0x84CD	# <CJK>
+0xE3BA	0x84AA	# <CJK>
+0xE3BB	0x849A	# <CJK>
+0xE3BC	0x84B1	# <CJK>
+0xE3BD	0x84D0	# <CJK>
+0xE3BE	0x849D	# <CJK>
+0xE3BF	0x84A7	# <CJK>
+0xE3C0	0x84BB	# <CJK>
+0xE3C1	0x84A2	# <CJK>
+0xE3C2	0x8494	# <CJK>
+0xE3C3	0x84C7	# <CJK>
+0xE3C4	0x84CC	# <CJK>
+0xE3C5	0x849B	# <CJK>
+0xE3C6	0x84A9	# <CJK>
+0xE3C7	0x84AF	# <CJK>
+0xE3C8	0x84A8	# <CJK>
+0xE3C9	0x84D6	# <CJK>
+0xE3CA	0x8498	# <CJK>
+0xE3CB	0x84B6	# <CJK>
+0xE3CC	0x84CF	# <CJK>
+0xE3CD	0x84A0	# <CJK>
+0xE3CE	0x84D7	# <CJK>
+0xE3CF	0x84D4	# <CJK>
+0xE3D0	0x84D2	# <CJK>
+0xE3D1	0x84DB	# <CJK>
+0xE3D2	0x84B0	# <CJK>
+0xE3D3	0x8491	# <CJK>
+0xE3D4	0x8661	# <CJK>
+0xE3D5	0x8733	# <CJK>
+0xE3D6	0x8723	# <CJK>
+0xE3D7	0x8728	# <CJK>
+0xE3D8	0x876B	# <CJK>
+0xE3D9	0x8740	# <CJK>
+0xE3DA	0x872E	# <CJK>
+0xE3DB	0x871E	# <CJK>
+0xE3DC	0x8721	# <CJK>
+0xE3DD	0x8719	# <CJK>
+0xE3DE	0x871B	# <CJK>
+0xE3DF	0x8743	# <CJK>
+0xE3E0	0x872C	# <CJK>
+0xE3E1	0x8741	# <CJK>
+0xE3E2	0x873E	# <CJK>
+0xE3E3	0x8746	# <CJK>
+0xE3E4	0x8720	# <CJK>
+0xE3E5	0x8732	# <CJK>
+0xE3E6	0x872A	# <CJK>
+0xE3E7	0x872D	# <CJK>
+0xE3E8	0x873C	# <CJK>
+0xE3E9	0x8712	# <CJK>
+0xE3EA	0x873A	# <CJK>
+0xE3EB	0x8731	# <CJK>
+0xE3EC	0x8735	# <CJK>
+0xE3ED	0x8742	# <CJK>
+0xE3EE	0x8726	# <CJK>
+0xE3EF	0x8727	# <CJK>
+0xE3F0	0x8738	# <CJK>
+0xE3F1	0x8724	# <CJK>
+0xE3F2	0x871A	# <CJK>
+0xE3F3	0x8730	# <CJK>
+0xE3F4	0x8711	# <CJK>
+0xE3F5	0x88F7	# <CJK>
+0xE3F6	0x88E7	# <CJK>
+0xE3F7	0x88F1	# <CJK>
+0xE3F8	0x88F2	# <CJK>
+0xE3F9	0x88FA	# <CJK>
+0xE3FA	0x88FE	# <CJK>
+0xE3FB	0x88EE	# <CJK>
+0xE3FC	0x88FC	# <CJK>
+0xE3FD	0x88F6	# <CJK>
+0xE3FE	0x88FB	# <CJK>
+0xE440	0x88F0	# <CJK>
+0xE441	0x88EC	# <CJK>
+0xE442	0x88EB	# <CJK>
+0xE443	0x899D	# <CJK>
+0xE444	0x89A1	# <CJK>
+0xE445	0x899F	# <CJK>
+0xE446	0x899E	# <CJK>
+0xE447	0x89E9	# <CJK>
+0xE448	0x89EB	# <CJK>
+0xE449	0x89E8	# <CJK>
+0xE44A	0x8AAB	# <CJK>
+0xE44B	0x8A99	# <CJK>
+0xE44C	0x8A8B	# <CJK>
+0xE44D	0x8A92	# <CJK>
+0xE44E	0x8A8F	# <CJK>
+0xE44F	0x8A96	# <CJK>
+0xE450	0x8C3D	# <CJK>
+0xE451	0x8C68	# <CJK>
+0xE452	0x8C69	# <CJK>
+0xE453	0x8CD5	# <CJK>
+0xE454	0x8CCF	# <CJK>
+0xE455	0x8CD7	# <CJK>
+0xE456	0x8D96	# <CJK>
+0xE457	0x8E09	# <CJK>
+0xE458	0x8E02	# <CJK>
+0xE459	0x8DFF	# <CJK>
+0xE45A	0x8E0D	# <CJK>
+0xE45B	0x8DFD	# <CJK>
+0xE45C	0x8E0A	# <CJK>
+0xE45D	0x8E03	# <CJK>
+0xE45E	0x8E07	# <CJK>
+0xE45F	0x8E06	# <CJK>
+0xE460	0x8E05	# <CJK>
+0xE461	0x8DFE	# <CJK>
+0xE462	0x8E00	# <CJK>
+0xE463	0x8E04	# <CJK>
+0xE464	0x8F10	# <CJK>
+0xE465	0x8F11	# <CJK>
+0xE466	0x8F0E	# <CJK>
+0xE467	0x8F0D	# <CJK>
+0xE468	0x9123	# <CJK>
+0xE469	0x911C	# <CJK>
+0xE46A	0x9120	# <CJK>
+0xE46B	0x9122	# <CJK>
+0xE46C	0x911F	# <CJK>
+0xE46D	0x911D	# <CJK>
+0xE46E	0x911A	# <CJK>
+0xE46F	0x9124	# <CJK>
+0xE470	0x9121	# <CJK>
+0xE471	0x911B	# <CJK>
+0xE472	0x917A	# <CJK>
+0xE473	0x9172	# <CJK>
+0xE474	0x9179	# <CJK>
+0xE475	0x9173	# <CJK>
+0xE476	0x92A5	# <CJK>
+0xE477	0x92A4	# <CJK>
+0xE478	0x9276	# <CJK>
+0xE479	0x929B	# <CJK>
+0xE47A	0x927A	# <CJK>
+0xE47B	0x92A0	# <CJK>
+0xE47C	0x9294	# <CJK>
+0xE47D	0x92AA	# <CJK>
+0xE47E	0x928D	# <CJK>
+0xE4A1	0x92A6	# <CJK>
+0xE4A2	0x929A	# <CJK>
+0xE4A3	0x92AB	# <CJK>
+0xE4A4	0x9279	# <CJK>
+0xE4A5	0x9297	# <CJK>
+0xE4A6	0x927F	# <CJK>
+0xE4A7	0x92A3	# <CJK>
+0xE4A8	0x92EE	# <CJK>
+0xE4A9	0x928E	# <CJK>
+0xE4AA	0x9282	# <CJK>
+0xE4AB	0x9295	# <CJK>
+0xE4AC	0x92A2	# <CJK>
+0xE4AD	0x927D	# <CJK>
+0xE4AE	0x9288	# <CJK>
+0xE4AF	0x92A1	# <CJK>
+0xE4B0	0x928A	# <CJK>
+0xE4B1	0x9286	# <CJK>
+0xE4B2	0x928C	# <CJK>
+0xE4B3	0x9299	# <CJK>
+0xE4B4	0x92A7	# <CJK>
+0xE4B5	0x927E	# <CJK>
+0xE4B6	0x9287	# <CJK>
+0xE4B7	0x92A9	# <CJK>
+0xE4B8	0x929D	# <CJK>
+0xE4B9	0x928B	# <CJK>
+0xE4BA	0x922D	# <CJK>
+0xE4BB	0x969E	# <CJK>
+0xE4BC	0x96A1	# <CJK>
+0xE4BD	0x96FF	# <CJK>
+0xE4BE	0x9758	# <CJK>
+0xE4BF	0x977D	# <CJK>
+0xE4C0	0x977A	# <CJK>
+0xE4C1	0x977E	# <CJK>
+0xE4C2	0x9783	# <CJK>
+0xE4C3	0x9780	# <CJK>
+0xE4C4	0x9782	# <CJK>
+0xE4C5	0x977B	# <CJK>
+0xE4C6	0x9784	# <CJK>
+0xE4C7	0x9781	# <CJK>
+0xE4C8	0x977F	# <CJK>
+0xE4C9	0x97CE	# <CJK>
+0xE4CA	0x97CD	# <CJK>
+0xE4CB	0x9816	# <CJK>
+0xE4CC	0x98AD	# <CJK>
+0xE4CD	0x98AE	# <CJK>
+0xE4CE	0x9902	# <CJK>
+0xE4CF	0x9900	# <CJK>
+0xE4D0	0x9907	# <CJK>
+0xE4D1	0x999D	# <CJK>
+0xE4D2	0x999C	# <CJK>
+0xE4D3	0x99C3	# <CJK>
+0xE4D4	0x99B9	# <CJK>
+0xE4D5	0x99BB	# <CJK>
+0xE4D6	0x99BA	# <CJK>
+0xE4D7	0x99C2	# <CJK>
+0xE4D8	0x99BD	# <CJK>
+0xE4D9	0x99C7	# <CJK>
+0xE4DA	0x9AB1	# <CJK>
+0xE4DB	0x9AE3	# <CJK>
+0xE4DC	0x9AE7	# <CJK>
+0xE4DD	0x9B3E	# <CJK>
+0xE4DE	0x9B3F	# <CJK>
+0xE4DF	0x9B60	# <CJK>
+0xE4E0	0x9B61	# <CJK>
+0xE4E1	0x9B5F	# <CJK>
+0xE4E2	0x9CF1	# <CJK>
+0xE4E3	0x9CF2	# <CJK>
+0xE4E4	0x9CF5	# <CJK>
+0xE4E5	0x9EA7	# <CJK>
+0xE4E6	0x50FF	# <CJK>
+0xE4E7	0x5103	# <CJK>
+0xE4E8	0x5130	# <CJK>
+0xE4E9	0x50F8	# <CJK>
+0xE4EA	0x5106	# <CJK>
+0xE4EB	0x5107	# <CJK>
+0xE4EC	0x50F6	# <CJK>
+0xE4ED	0x50FE	# <CJK>
+0xE4EE	0x510B	# <CJK>
+0xE4EF	0x510C	# <CJK>
+0xE4F0	0x50FD	# <CJK>
+0xE4F1	0x510A	# <CJK>
+0xE4F2	0x528B	# <CJK>
+0xE4F3	0x528C	# <CJK>
+0xE4F4	0x52F1	# <CJK>
+0xE4F5	0x52EF	# <CJK>
+0xE4F6	0x5648	# <CJK>
+0xE4F7	0x5642	# <CJK>
+0xE4F8	0x564C	# <CJK>
+0xE4F9	0x5635	# <CJK>
+0xE4FA	0x5641	# <CJK>
+0xE4FB	0x564A	# <CJK>
+0xE4FC	0x5649	# <CJK>
+0xE4FD	0x5646	# <CJK>
+0xE4FE	0x5658	# <CJK>
+0xE540	0x565A	# <CJK>
+0xE541	0x5640	# <CJK>
+0xE542	0x5633	# <CJK>
+0xE543	0x563D	# <CJK>
+0xE544	0x562C	# <CJK>
+0xE545	0x563E	# <CJK>
+0xE546	0x5638	# <CJK>
+0xE547	0x562A	# <CJK>
+0xE548	0x563A	# <CJK>
+0xE549	0x571A	# <CJK>
+0xE54A	0x58AB	# <CJK>
+0xE54B	0x589D	# <CJK>
+0xE54C	0x58B1	# <CJK>
+0xE54D	0x58A0	# <CJK>
+0xE54E	0x58A3	# <CJK>
+0xE54F	0x58AF	# <CJK>
+0xE550	0x58AC	# <CJK>
+0xE551	0x58A5	# <CJK>
+0xE552	0x58A1	# <CJK>
+0xE553	0x58FF	# <CJK>
+0xE554	0x5AFF	# <CJK>
+0xE555	0x5AF4	# <CJK>
+0xE556	0x5AFD	# <CJK>
+0xE557	0x5AF7	# <CJK>
+0xE558	0x5AF6	# <CJK>
+0xE559	0x5B03	# <CJK>
+0xE55A	0x5AF8	# <CJK>
+0xE55B	0x5B02	# <CJK>
+0xE55C	0x5AF9	# <CJK>
+0xE55D	0x5B01	# <CJK>
+0xE55E	0x5B07	# <CJK>
+0xE55F	0x5B05	# <CJK>
+0xE560	0x5B0F	# <CJK>
+0xE561	0x5C67	# <CJK>
+0xE562	0x5D99	# <CJK>
+0xE563	0x5D97	# <CJK>
+0xE564	0x5D9F	# <CJK>
+0xE565	0x5D92	# <CJK>
+0xE566	0x5DA2	# <CJK>
+0xE567	0x5D93	# <CJK>
+0xE568	0x5D95	# <CJK>
+0xE569	0x5DA0	# <CJK>
+0xE56A	0x5D9C	# <CJK>
+0xE56B	0x5DA1	# <CJK>
+0xE56C	0x5D9A	# <CJK>
+0xE56D	0x5D9E	# <CJK>
+0xE56E	0x5E69	# <CJK>
+0xE56F	0x5E5D	# <CJK>
+0xE570	0x5E60	# <CJK>
+0xE571	0x5E5C	# <CJK>
+0xE572	0x7DF3	# <CJK>
+0xE573	0x5EDB	# <CJK>
+0xE574	0x5EDE	# <CJK>
+0xE575	0x5EE1	# <CJK>
+0xE576	0x5F49	# <CJK>
+0xE577	0x5FB2	# <CJK>
+0xE578	0x618B	# <CJK>
+0xE579	0x6183	# <CJK>
+0xE57A	0x6179	# <CJK>
+0xE57B	0x61B1	# <CJK>
+0xE57C	0x61B0	# <CJK>
+0xE57D	0x61A2	# <CJK>
+0xE57E	0x6189	# <CJK>
+0xE5A1	0x619B	# <CJK>
+0xE5A2	0x6193	# <CJK>
+0xE5A3	0x61AF	# <CJK>
+0xE5A4	0x61AD	# <CJK>
+0xE5A5	0x619F	# <CJK>
+0xE5A6	0x6192	# <CJK>
+0xE5A7	0x61AA	# <CJK>
+0xE5A8	0x61A1	# <CJK>
+0xE5A9	0x618D	# <CJK>
+0xE5AA	0x6166	# <CJK>
+0xE5AB	0x61B3	# <CJK>
+0xE5AC	0x622D	# <CJK>
+0xE5AD	0x646E	# <CJK>
+0xE5AE	0x6470	# <CJK>
+0xE5AF	0x6496	# <CJK>
+0xE5B0	0x64A0	# <CJK>
+0xE5B1	0x6485	# <CJK>
+0xE5B2	0x6497	# <CJK>
+0xE5B3	0x649C	# <CJK>
+0xE5B4	0x648F	# <CJK>
+0xE5B5	0x648B	# <CJK>
+0xE5B6	0x648A	# <CJK>
+0xE5B7	0x648C	# <CJK>
+0xE5B8	0x64A3	# <CJK>
+0xE5B9	0x649F	# <CJK>
+0xE5BA	0x6468	# <CJK>
+0xE5BB	0x64B1	# <CJK>
+0xE5BC	0x6498	# <CJK>
+0xE5BD	0x6576	# <CJK>
+0xE5BE	0x657A	# <CJK>
+0xE5BF	0x6579	# <CJK>
+0xE5C0	0x657B	# <CJK>
+0xE5C1	0x65B2	# <CJK>
+0xE5C2	0x65B3	# <CJK>
+0xE5C3	0x66B5	# <CJK>
+0xE5C4	0x66B0	# <CJK>
+0xE5C5	0x66A9	# <CJK>
+0xE5C6	0x66B2	# <CJK>
+0xE5C7	0x66B7	# <CJK>
+0xE5C8	0x66AA	# <CJK>
+0xE5C9	0x66AF	# <CJK>
+0xE5CA	0x6A00	# <CJK>
+0xE5CB	0x6A06	# <CJK>
+0xE5CC	0x6A17	# <CJK>
+0xE5CD	0x69E5	# <CJK>
+0xE5CE	0x69F8	# <CJK>
+0xE5CF	0x6A15	# <CJK>
+0xE5D0	0x69F1	# <CJK>
+0xE5D1	0x69E4	# <CJK>
+0xE5D2	0x6A20	# <CJK>
+0xE5D3	0x69FF	# <CJK>
+0xE5D4	0x69EC	# <CJK>
+0xE5D5	0x69E2	# <CJK>
+0xE5D6	0x6A1B	# <CJK>
+0xE5D7	0x6A1D	# <CJK>
+0xE5D8	0x69FE	# <CJK>
+0xE5D9	0x6A27	# <CJK>
+0xE5DA	0x69F2	# <CJK>
+0xE5DB	0x69EE	# <CJK>
+0xE5DC	0x6A14	# <CJK>
+0xE5DD	0x69F7	# <CJK>
+0xE5DE	0x69E7	# <CJK>
+0xE5DF	0x6A40	# <CJK>
+0xE5E0	0x6A08	# <CJK>
+0xE5E1	0x69E6	# <CJK>
+0xE5E2	0x69FB	# <CJK>
+0xE5E3	0x6A0D	# <CJK>
+0xE5E4	0x69FC	# <CJK>
+0xE5E5	0x69EB	# <CJK>
+0xE5E6	0x6A09	# <CJK>
+0xE5E7	0x6A04	# <CJK>
+0xE5E8	0x6A18	# <CJK>
+0xE5E9	0x6A25	# <CJK>
+0xE5EA	0x6A0F	# <CJK>
+0xE5EB	0x69F6	# <CJK>
+0xE5EC	0x6A26	# <CJK>
+0xE5ED	0x6A07	# <CJK>
+0xE5EE	0x69F4	# <CJK>
+0xE5EF	0x6A16	# <CJK>
+0xE5F0	0x6B51	# <CJK>
+0xE5F1	0x6BA5	# <CJK>
+0xE5F2	0x6BA3	# <CJK>
+0xE5F3	0x6BA2	# <CJK>
+0xE5F4	0x6BA6	# <CJK>
+0xE5F5	0x6C01	# <CJK>
+0xE5F6	0x6C00	# <CJK>
+0xE5F7	0x6BFF	# <CJK>
+0xE5F8	0x6C02	# <CJK>
+0xE5F9	0x6F41	# <CJK>
+0xE5FA	0x6F26	# <CJK>
+0xE5FB	0x6F7E	# <CJK>
+0xE5FC	0x6F87	# <CJK>
+0xE5FD	0x6FC6	# <CJK>
+0xE5FE	0x6F92	# <CJK>
+0xE640	0x6F8D	# <CJK>
+0xE641	0x6F89	# <CJK>
+0xE642	0x6F8C	# <CJK>
+0xE643	0x6F62	# <CJK>
+0xE644	0x6F4F	# <CJK>
+0xE645	0x6F85	# <CJK>
+0xE646	0x6F5A	# <CJK>
+0xE647	0x6F96	# <CJK>
+0xE648	0x6F76	# <CJK>
+0xE649	0x6F6C	# <CJK>
+0xE64A	0x6F82	# <CJK>
+0xE64B	0x6F55	# <CJK>
+0xE64C	0x6F72	# <CJK>
+0xE64D	0x6F52	# <CJK>
+0xE64E	0x6F50	# <CJK>
+0xE64F	0x6F57	# <CJK>
+0xE650	0x6F94	# <CJK>
+0xE651	0x6F93	# <CJK>
+0xE652	0x6F5D	# <CJK>
+0xE653	0x6F00	# <CJK>
+0xE654	0x6F61	# <CJK>
+0xE655	0x6F6B	# <CJK>
+0xE656	0x6F7D	# <CJK>
+0xE657	0x6F67	# <CJK>
+0xE658	0x6F90	# <CJK>
+0xE659	0x6F53	# <CJK>
+0xE65A	0x6F8B	# <CJK>
+0xE65B	0x6F69	# <CJK>
+0xE65C	0x6F7F	# <CJK>
+0xE65D	0x6F95	# <CJK>
+0xE65E	0x6F63	# <CJK>
+0xE65F	0x6F77	# <CJK>
+0xE660	0x6F6A	# <CJK>
+0xE661	0x6F7B	# <CJK>
+0xE662	0x71B2	# <CJK>
+0xE663	0x71AF	# <CJK>
+0xE664	0x719B	# <CJK>
+0xE665	0x71B0	# <CJK>
+0xE666	0x71A0	# <CJK>
+0xE667	0x719A	# <CJK>
+0xE668	0x71A9	# <CJK>
+0xE669	0x71B5	# <CJK>
+0xE66A	0x719D	# <CJK>
+0xE66B	0x71A5	# <CJK>
+0xE66C	0x719E	# <CJK>
+0xE66D	0x71A4	# <CJK>
+0xE66E	0x71A1	# <CJK>
+0xE66F	0x71AA	# <CJK>
+0xE670	0x719C	# <CJK>
+0xE671	0x71A7	# <CJK>
+0xE672	0x71B3	# <CJK>
+0xE673	0x7298	# <CJK>
+0xE674	0x729A	# <CJK>
+0xE675	0x7358	# <CJK>
+0xE676	0x7352	# <CJK>
+0xE677	0x735E	# <CJK>
+0xE678	0x735F	# <CJK>
+0xE679	0x7360	# <CJK>
+0xE67A	0x735D	# <CJK>
+0xE67B	0x735B	# <CJK>
+0xE67C	0x7361	# <CJK>
+0xE67D	0x735A	# <CJK>
+0xE67E	0x7359	# <CJK>
+0xE6A1	0x7362	# <CJK>
+0xE6A2	0x7487	# <CJK>
+0xE6A3	0x7489	# <CJK>
+0xE6A4	0x748A	# <CJK>
+0xE6A5	0x7486	# <CJK>
+0xE6A6	0x7481	# <CJK>
+0xE6A7	0x747D	# <CJK>
+0xE6A8	0x7485	# <CJK>
+0xE6A9	0x7488	# <CJK>
+0xE6AA	0x747C	# <CJK>
+0xE6AB	0x7479	# <CJK>
+0xE6AC	0x7508	# <CJK>
+0xE6AD	0x7507	# <CJK>
+0xE6AE	0x757E	# <CJK>
+0xE6AF	0x7625	# <CJK>
+0xE6B0	0x761E	# <CJK>
+0xE6B1	0x7619	# <CJK>
+0xE6B2	0x761D	# <CJK>
+0xE6B3	0x761C	# <CJK>
+0xE6B4	0x7623	# <CJK>
+0xE6B5	0x761A	# <CJK>
+0xE6B6	0x7628	# <CJK>
+0xE6B7	0x761B	# <CJK>
+0xE6B8	0x769C	# <CJK>
+0xE6B9	0x769D	# <CJK>
+0xE6BA	0x769E	# <CJK>
+0xE6BB	0x769B	# <CJK>
+0xE6BC	0x778D	# <CJK>
+0xE6BD	0x778F	# <CJK>
+0xE6BE	0x7789	# <CJK>
+0xE6BF	0x7788	# <CJK>
+0xE6C0	0x78CD	# <CJK>
+0xE6C1	0x78BB	# <CJK>
+0xE6C2	0x78CF	# <CJK>
+0xE6C3	0x78CC	# <CJK>
+0xE6C4	0x78D1	# <CJK>
+0xE6C5	0x78CE	# <CJK>
+0xE6C6	0x78D4	# <CJK>
+0xE6C7	0x78C8	# <CJK>
+0xE6C8	0x78C3	# <CJK>
+0xE6C9	0x78C4	# <CJK>
+0xE6CA	0x78C9	# <CJK>
+0xE6CB	0x799A	# <CJK>
+0xE6CC	0x79A1	# <CJK>
+0xE6CD	0x79A0	# <CJK>
+0xE6CE	0x799C	# <CJK>
+0xE6CF	0x79A2	# <CJK>
+0xE6D0	0x799B	# <CJK>
+0xE6D1	0x6B76	# <CJK>
+0xE6D2	0x7A39	# <CJK>
+0xE6D3	0x7AB2	# <CJK>
+0xE6D4	0x7AB4	# <CJK>
+0xE6D5	0x7AB3	# <CJK>
+0xE6D6	0x7BB7	# <CJK>
+0xE6D7	0x7BCB	# <CJK>
+0xE6D8	0x7BBE	# <CJK>
+0xE6D9	0x7BAC	# <CJK>
+0xE6DA	0x7BCE	# <CJK>
+0xE6DB	0x7BAF	# <CJK>
+0xE6DC	0x7BB9	# <CJK>
+0xE6DD	0x7BCA	# <CJK>
+0xE6DE	0x7BB5	# <CJK>
+0xE6DF	0x7CC5	# <CJK>
+0xE6E0	0x7CC8	# <CJK>
+0xE6E1	0x7CCC	# <CJK>
+0xE6E2	0x7CCB	# <CJK>
+0xE6E3	0x7DF7	# <CJK>
+0xE6E4	0x7DDB	# <CJK>
+0xE6E5	0x7DEA	# <CJK>
+0xE6E6	0x7DE7	# <CJK>
+0xE6E7	0x7DD7	# <CJK>
+0xE6E8	0x7DE1	# <CJK>
+0xE6E9	0x7E03	# <CJK>
+0xE6EA	0x7DFA	# <CJK>
+0xE6EB	0x7DE6	# <CJK>
+0xE6EC	0x7DF6	# <CJK>
+0xE6ED	0x7DF1	# <CJK>
+0xE6EE	0x7DF0	# <CJK>
+0xE6EF	0x7DEE	# <CJK>
+0xE6F0	0x7DDF	# <CJK>
+0xE6F1	0x7F76	# <CJK>
+0xE6F2	0x7FAC	# <CJK>
+0xE6F3	0x7FB0	# <CJK>
+0xE6F4	0x7FAD	# <CJK>
+0xE6F5	0x7FED	# <CJK>
+0xE6F6	0x7FEB	# <CJK>
+0xE6F7	0x7FEA	# <CJK>
+0xE6F8	0x7FEC	# <CJK>
+0xE6F9	0x7FE6	# <CJK>
+0xE6FA	0x7FE8	# <CJK>
+0xE6FB	0x8064	# <CJK>
+0xE6FC	0x8067	# <CJK>
+0xE6FD	0x81A3	# <CJK>
+0xE6FE	0x819F	# <CJK>
+0xE740	0x819E	# <CJK>
+0xE741	0x8195	# <CJK>
+0xE742	0x81A2	# <CJK>
+0xE743	0x8199	# <CJK>
+0xE744	0x8197	# <CJK>
+0xE745	0x8216	# <CJK>
+0xE746	0x824F	# <CJK>
+0xE747	0x8253	# <CJK>
+0xE748	0x8252	# <CJK>
+0xE749	0x8250	# <CJK>
+0xE74A	0x824E	# <CJK>
+0xE74B	0x8251	# <CJK>
+0xE74C	0x8524	# <CJK>
+0xE74D	0x853B	# <CJK>
+0xE74E	0x850F	# <CJK>
+0xE74F	0x8500	# <CJK>
+0xE750	0x8529	# <CJK>
+0xE751	0x850E	# <CJK>
+0xE752	0x8509	# <CJK>
+0xE753	0x850D	# <CJK>
+0xE754	0x851F	# <CJK>
+0xE755	0x850A	# <CJK>
+0xE756	0x8527	# <CJK>
+0xE757	0x851C	# <CJK>
+0xE758	0x84FB	# <CJK>
+0xE759	0x852B	# <CJK>
+0xE75A	0x84FA	# <CJK>
+0xE75B	0x8508	# <CJK>
+0xE75C	0x850C	# <CJK>
+0xE75D	0x84F4	# <CJK>
+0xE75E	0x852A	# <CJK>
+0xE75F	0x84F2	# <CJK>
+0xE760	0x8515	# <CJK>
+0xE761	0x84F7	# <CJK>
+0xE762	0x84EB	# <CJK>
+0xE763	0x84F3	# <CJK>
+0xE764	0x84FC	# <CJK>
+0xE765	0x8512	# <CJK>
+0xE766	0x84EA	# <CJK>
+0xE767	0x84E9	# <CJK>
+0xE768	0x8516	# <CJK>
+0xE769	0x84FE	# <CJK>
+0xE76A	0x8528	# <CJK>
+0xE76B	0x851D	# <CJK>
+0xE76C	0x852E	# <CJK>
+0xE76D	0x8502	# <CJK>
+0xE76E	0x84FD	# <CJK>
+0xE76F	0x851E	# <CJK>
+0xE770	0x84F6	# <CJK>
+0xE771	0x8531	# <CJK>
+0xE772	0x8526	# <CJK>
+0xE773	0x84E7	# <CJK>
+0xE774	0x84E8	# <CJK>
+0xE775	0x84F0	# <CJK>
+0xE776	0x84EF	# <CJK>
+0xE777	0x84F9	# <CJK>
+0xE778	0x8518	# <CJK>
+0xE779	0x8520	# <CJK>
+0xE77A	0x8530	# <CJK>
+0xE77B	0x850B	# <CJK>
+0xE77C	0x8519	# <CJK>
+0xE77D	0x852F	# <CJK>
+0xE77E	0x8662	# <CJK>
+0xE7A1	0x8756	# <CJK>
+0xE7A2	0x8763	# <CJK>
+0xE7A3	0x8764	# <CJK>
+0xE7A4	0x8777	# <CJK>
+0xE7A5	0x87E1	# <CJK>
+0xE7A6	0x8773	# <CJK>
+0xE7A7	0x8758	# <CJK>
+0xE7A8	0x8754	# <CJK>
+0xE7A9	0x875B	# <CJK>
+0xE7AA	0x8752	# <CJK>
+0xE7AB	0x8761	# <CJK>
+0xE7AC	0x875A	# <CJK>
+0xE7AD	0x8751	# <CJK>
+0xE7AE	0x875E	# <CJK>
+0xE7AF	0x876D	# <CJK>
+0xE7B0	0x876A	# <CJK>
+0xE7B1	0x8750	# <CJK>
+0xE7B2	0x874E	# <CJK>
+0xE7B3	0x875F	# <CJK>
+0xE7B4	0x875D	# <CJK>
+0xE7B5	0x876F	# <CJK>
+0xE7B6	0x876C	# <CJK>
+0xE7B7	0x877A	# <CJK>
+0xE7B8	0x876E	# <CJK>
+0xE7B9	0x875C	# <CJK>
+0xE7BA	0x8765	# <CJK>
+0xE7BB	0x874F	# <CJK>
+0xE7BC	0x877B	# <CJK>
+0xE7BD	0x8775	# <CJK>
+0xE7BE	0x8762	# <CJK>
+0xE7BF	0x8767	# <CJK>
+0xE7C0	0x8769	# <CJK>
+0xE7C1	0x885A	# <CJK>
+0xE7C2	0x8905	# <CJK>
+0xE7C3	0x890C	# <CJK>
+0xE7C4	0x8914	# <CJK>
+0xE7C5	0x890B	# <CJK>
+0xE7C6	0x8917	# <CJK>
+0xE7C7	0x8918	# <CJK>
+0xE7C8	0x8919	# <CJK>
+0xE7C9	0x8906	# <CJK>
+0xE7CA	0x8916	# <CJK>
+0xE7CB	0x8911	# <CJK>
+0xE7CC	0x890E	# <CJK>
+0xE7CD	0x8909	# <CJK>
+0xE7CE	0x89A2	# <CJK>
+0xE7CF	0x89A4	# <CJK>
+0xE7D0	0x89A3	# <CJK>
+0xE7D1	0x89ED	# <CJK>
+0xE7D2	0x89F0	# <CJK>
+0xE7D3	0x89EC	# <CJK>
+0xE7D4	0x8ACF	# <CJK>
+0xE7D5	0x8AC6	# <CJK>
+0xE7D6	0x8AB8	# <CJK>
+0xE7D7	0x8AD3	# <CJK>
+0xE7D8	0x8AD1	# <CJK>
+0xE7D9	0x8AD4	# <CJK>
+0xE7DA	0x8AD5	# <CJK>
+0xE7DB	0x8ABB	# <CJK>
+0xE7DC	0x8AD7	# <CJK>
+0xE7DD	0x8ABE	# <CJK>
+0xE7DE	0x8AC0	# <CJK>
+0xE7DF	0x8AC5	# <CJK>
+0xE7E0	0x8AD8	# <CJK>
+0xE7E1	0x8AC3	# <CJK>
+0xE7E2	0x8ABA	# <CJK>
+0xE7E3	0x8ABD	# <CJK>
+0xE7E4	0x8AD9	# <CJK>
+0xE7E5	0x8C3E	# <CJK>
+0xE7E6	0x8C4D	# <CJK>
+0xE7E7	0x8C8F	# <CJK>
+0xE7E8	0x8CE5	# <CJK>
+0xE7E9	0x8CDF	# <CJK>
+0xE7EA	0x8CD9	# <CJK>
+0xE7EB	0x8CE8	# <CJK>
+0xE7EC	0x8CDA	# <CJK>
+0xE7ED	0x8CDD	# <CJK>
+0xE7EE	0x8CE7	# <CJK>
+0xE7EF	0x8DA0	# <CJK>
+0xE7F0	0x8D9C	# <CJK>
+0xE7F1	0x8DA1	# <CJK>
+0xE7F2	0x8D9B	# <CJK>
+0xE7F3	0x8E20	# <CJK>
+0xE7F4	0x8E23	# <CJK>
+0xE7F5	0x8E25	# <CJK>
+0xE7F6	0x8E24	# <CJK>
+0xE7F7	0x8E2E	# <CJK>
+0xE7F8	0x8E15	# <CJK>
+0xE7F9	0x8E1B	# <CJK>
+0xE7FA	0x8E16	# <CJK>
+0xE7FB	0x8E11	# <CJK>
+0xE7FC	0x8E19	# <CJK>
+0xE7FD	0x8E26	# <CJK>
+0xE7FE	0x8E27	# <CJK>
+0xE840	0x8E14	# <CJK>
+0xE841	0x8E12	# <CJK>
+0xE842	0x8E18	# <CJK>
+0xE843	0x8E13	# <CJK>
+0xE844	0x8E1C	# <CJK>
+0xE845	0x8E17	# <CJK>
+0xE846	0x8E1A	# <CJK>
+0xE847	0x8F2C	# <CJK>
+0xE848	0x8F24	# <CJK>
+0xE849	0x8F18	# <CJK>
+0xE84A	0x8F1A	# <CJK>
+0xE84B	0x8F20	# <CJK>
+0xE84C	0x8F23	# <CJK>
+0xE84D	0x8F16	# <CJK>
+0xE84E	0x8F17	# <CJK>
+0xE84F	0x9073	# <CJK>
+0xE850	0x9070	# <CJK>
+0xE851	0x906F	# <CJK>
+0xE852	0x9067	# <CJK>
+0xE853	0x906B	# <CJK>
+0xE854	0x912F	# <CJK>
+0xE855	0x912B	# <CJK>
+0xE856	0x9129	# <CJK>
+0xE857	0x912A	# <CJK>
+0xE858	0x9132	# <CJK>
+0xE859	0x9126	# <CJK>
+0xE85A	0x912E	# <CJK>
+0xE85B	0x9185	# <CJK>
+0xE85C	0x9186	# <CJK>
+0xE85D	0x918A	# <CJK>
+0xE85E	0x9181	# <CJK>
+0xE85F	0x9182	# <CJK>
+0xE860	0x9184	# <CJK>
+0xE861	0x9180	# <CJK>
+0xE862	0x92D0	# <CJK>
+0xE863	0x92C3	# <CJK>
+0xE864	0x92C4	# <CJK>
+0xE865	0x92C0	# <CJK>
+0xE866	0x92D9	# <CJK>
+0xE867	0x92B6	# <CJK>
+0xE868	0x92CF	# <CJK>
+0xE869	0x92F1	# <CJK>
+0xE86A	0x92DF	# <CJK>
+0xE86B	0x92D8	# <CJK>
+0xE86C	0x92E9	# <CJK>
+0xE86D	0x92D7	# <CJK>
+0xE86E	0x92DD	# <CJK>
+0xE86F	0x92CC	# <CJK>
+0xE870	0x92EF	# <CJK>
+0xE871	0x92C2	# <CJK>
+0xE872	0x92E8	# <CJK>
+0xE873	0x92CA	# <CJK>
+0xE874	0x92C8	# <CJK>
+0xE875	0x92CE	# <CJK>
+0xE876	0x92E6	# <CJK>
+0xE877	0x92CD	# <CJK>
+0xE878	0x92D5	# <CJK>
+0xE879	0x92C9	# <CJK>
+0xE87A	0x92E0	# <CJK>
+0xE87B	0x92DE	# <CJK>
+0xE87C	0x92E7	# <CJK>
+0xE87D	0x92D1	# <CJK>
+0xE87E	0x92D3	# <CJK>
+0xE8A1	0x92B5	# <CJK>
+0xE8A2	0x92E1	# <CJK>
+0xE8A3	0x92C6	# <CJK>
+0xE8A4	0x92B4	# <CJK>
+0xE8A5	0x957C	# <CJK>
+0xE8A6	0x95AC	# <CJK>
+0xE8A7	0x95AB	# <CJK>
+0xE8A8	0x95AE	# <CJK>
+0xE8A9	0x95B0	# <CJK>
+0xE8AA	0x96A4	# <CJK>
+0xE8AB	0x96A2	# <CJK>
+0xE8AC	0x96D3	# <CJK>
+0xE8AD	0x9705	# <CJK>
+0xE8AE	0x9708	# <CJK>
+0xE8AF	0x9702	# <CJK>
+0xE8B0	0x975A	# <CJK>
+0xE8B1	0x978A	# <CJK>
+0xE8B2	0x978E	# <CJK>
+0xE8B3	0x9788	# <CJK>
+0xE8B4	0x97D0	# <CJK>
+0xE8B5	0x97CF	# <CJK>
+0xE8B6	0x981E	# <CJK>
+0xE8B7	0x981D	# <CJK>
+0xE8B8	0x9826	# <CJK>
+0xE8B9	0x9829	# <CJK>
+0xE8BA	0x9828	# <CJK>
+0xE8BB	0x9820	# <CJK>
+0xE8BC	0x981B	# <CJK>
+0xE8BD	0x9827	# <CJK>
+0xE8BE	0x98B2	# <CJK>
+0xE8BF	0x9908	# <CJK>
+0xE8C0	0x98FA	# <CJK>
+0xE8C1	0x9911	# <CJK>
+0xE8C2	0x9914	# <CJK>
+0xE8C3	0x9916	# <CJK>
+0xE8C4	0x9917	# <CJK>
+0xE8C5	0x9915	# <CJK>
+0xE8C6	0x99DC	# <CJK>
+0xE8C7	0x99CD	# <CJK>
+0xE8C8	0x99CF	# <CJK>
+0xE8C9	0x99D3	# <CJK>
+0xE8CA	0x99D4	# <CJK>
+0xE8CB	0x99CE	# <CJK>
+0xE8CC	0x99C9	# <CJK>
+0xE8CD	0x99D6	# <CJK>
+0xE8CE	0x99D8	# <CJK>
+0xE8CF	0x99CB	# <CJK>
+0xE8D0	0x99D7	# <CJK>
+0xE8D1	0x99CC	# <CJK>
+0xE8D2	0x9AB3	# <CJK>
+0xE8D3	0x9AEC	# <CJK>
+0xE8D4	0x9AEB	# <CJK>
+0xE8D5	0x9AF3	# <CJK>
+0xE8D6	0x9AF2	# <CJK>
+0xE8D7	0x9AF1	# <CJK>
+0xE8D8	0x9B46	# <CJK>
+0xE8D9	0x9B43	# <CJK>
+0xE8DA	0x9B67	# <CJK>
+0xE8DB	0x9B74	# <CJK>
+0xE8DC	0x9B71	# <CJK>
+0xE8DD	0x9B66	# <CJK>
+0xE8DE	0x9B76	# <CJK>
+0xE8DF	0x9B75	# <CJK>
+0xE8E0	0x9B70	# <CJK>
+0xE8E1	0x9B68	# <CJK>
+0xE8E2	0x9B64	# <CJK>
+0xE8E3	0x9B6C	# <CJK>
+0xE8E4	0x9CFC	# <CJK>
+0xE8E5	0x9CFA	# <CJK>
+0xE8E6	0x9CFD	# <CJK>
+0xE8E7	0x9CFF	# <CJK>
+0xE8E8	0x9CF7	# <CJK>
+0xE8E9	0x9D07	# <CJK>
+0xE8EA	0x9D00	# <CJK>
+0xE8EB	0x9CF9	# <CJK>
+0xE8EC	0x9CFB	# <CJK>
+0xE8ED	0x9D08	# <CJK>
+0xE8EE	0x9D05	# <CJK>
+0xE8EF	0x9D04	# <CJK>
+0xE8F0	0x9E83	# <CJK>
+0xE8F1	0x9ED3	# <CJK>
+0xE8F2	0x9F0F	# <CJK>
+0xE8F3	0x9F10	# <CJK>
+0xE8F4	0x511C	# <CJK>
+0xE8F5	0x5113	# <CJK>
+0xE8F6	0x5117	# <CJK>
+0xE8F7	0x511A	# <CJK>
+0xE8F8	0x5111	# <CJK>
+0xE8F9	0x51DE	# <CJK>
+0xE8FA	0x5334	# <CJK>
+0xE8FB	0x53E1	# <CJK>
+0xE8FC	0x5670	# <CJK>
+0xE8FD	0x5660	# <CJK>
+0xE8FE	0x566E	# <CJK>
+0xE940	0x5673	# <CJK>
+0xE941	0x5666	# <CJK>
+0xE942	0x5663	# <CJK>
+0xE943	0x566D	# <CJK>
+0xE944	0x5672	# <CJK>
+0xE945	0x565E	# <CJK>
+0xE946	0x5677	# <CJK>
+0xE947	0x571C	# <CJK>
+0xE948	0x571B	# <CJK>
+0xE949	0x58C8	# <CJK>
+0xE94A	0x58BD	# <CJK>
+0xE94B	0x58C9	# <CJK>
+0xE94C	0x58BF	# <CJK>
+0xE94D	0x58BA	# <CJK>
+0xE94E	0x58C2	# <CJK>
+0xE94F	0x58BC	# <CJK>
+0xE950	0x58C6	# <CJK>
+0xE951	0x5B17	# <CJK>
+0xE952	0x5B19	# <CJK>
+0xE953	0x5B1B	# <CJK>
+0xE954	0x5B21	# <CJK>
+0xE955	0x5B14	# <CJK>
+0xE956	0x5B13	# <CJK>
+0xE957	0x5B10	# <CJK>
+0xE958	0x5B16	# <CJK>
+0xE959	0x5B28	# <CJK>
+0xE95A	0x5B1A	# <CJK>
+0xE95B	0x5B20	# <CJK>
+0xE95C	0x5B1E	# <CJK>
+0xE95D	0x5BEF	# <CJK>
+0xE95E	0x5DAC	# <CJK>
+0xE95F	0x5DB1	# <CJK>
+0xE960	0x5DA9	# <CJK>
+0xE961	0x5DA7	# <CJK>
+0xE962	0x5DB5	# <CJK>
+0xE963	0x5DB0	# <CJK>
+0xE964	0x5DAE	# <CJK>
+0xE965	0x5DAA	# <CJK>
+0xE966	0x5DA8	# <CJK>
+0xE967	0x5DB2	# <CJK>
+0xE968	0x5DAD	# <CJK>
+0xE969	0x5DAF	# <CJK>
+0xE96A	0x5DB4	# <CJK>
+0xE96B	0x5E67	# <CJK>
+0xE96C	0x5E68	# <CJK>
+0xE96D	0x5E66	# <CJK>
+0xE96E	0x5E6F	# <CJK>
+0xE96F	0x5EE9	# <CJK>
+0xE970	0x5EE7	# <CJK>
+0xE971	0x5EE6	# <CJK>
+0xE972	0x5EE8	# <CJK>
+0xE973	0x5EE5	# <CJK>
+0xE974	0x5F4B	# <CJK>
+0xE975	0x5FBC	# <CJK>
+0xE976	0x619D	# <CJK>
+0xE977	0x61A8	# <CJK>
+0xE978	0x6196	# <CJK>
+0xE979	0x61C5	# <CJK>
+0xE97A	0x61B4	# <CJK>
+0xE97B	0x61C6	# <CJK>
+0xE97C	0x61C1	# <CJK>
+0xE97D	0x61CC	# <CJK>
+0xE97E	0x61BA	# <CJK>
+0xE9A1	0x61BF	# <CJK>
+0xE9A2	0x61B8	# <CJK>
+0xE9A3	0x618C	# <CJK>
+0xE9A4	0x64D7	# <CJK>
+0xE9A5	0x64D6	# <CJK>
+0xE9A6	0x64D0	# <CJK>
+0xE9A7	0x64CF	# <CJK>
+0xE9A8	0x64C9	# <CJK>
+0xE9A9	0x64BD	# <CJK>
+0xE9AA	0x6489	# <CJK>
+0xE9AB	0x64C3	# <CJK>
+0xE9AC	0x64DB	# <CJK>
+0xE9AD	0x64F3	# <CJK>
+0xE9AE	0x64D9	# <CJK>
+0xE9AF	0x6533	# <CJK>
+0xE9B0	0x657F	# <CJK>
+0xE9B1	0x657C	# <CJK>
+0xE9B2	0x65A2	# <CJK>
+0xE9B3	0x66C8	# <CJK>
+0xE9B4	0x66BE	# <CJK>
+0xE9B5	0x66C0	# <CJK>
+0xE9B6	0x66CA	# <CJK>
+0xE9B7	0x66CB	# <CJK>
+0xE9B8	0x66CF	# <CJK>
+0xE9B9	0x66BD	# <CJK>
+0xE9BA	0x66BB	# <CJK>
+0xE9BB	0x66BA	# <CJK>
+0xE9BC	0x66CC	# <CJK>
+0xE9BD	0x6723	# <CJK>
+0xE9BE	0x6A34	# <CJK>
+0xE9BF	0x6A66	# <CJK>
+0xE9C0	0x6A49	# <CJK>
+0xE9C1	0x6A67	# <CJK>
+0xE9C2	0x6A32	# <CJK>
+0xE9C3	0x6A68	# <CJK>
+0xE9C4	0x6A3E	# <CJK>
+0xE9C5	0x6A5D	# <CJK>
+0xE9C6	0x6A6D	# <CJK>
+0xE9C7	0x6A76	# <CJK>
+0xE9C8	0x6A5B	# <CJK>
+0xE9C9	0x6A51	# <CJK>
+0xE9CA	0x6A28	# <CJK>
+0xE9CB	0x6A5A	# <CJK>
+0xE9CC	0x6A3B	# <CJK>
+0xE9CD	0x6A3F	# <CJK>
+0xE9CE	0x6A41	# <CJK>
+0xE9CF	0x6A6A	# <CJK>
+0xE9D0	0x6A64	# <CJK>
+0xE9D1	0x6A50	# <CJK>
+0xE9D2	0x6A4F	# <CJK>
+0xE9D3	0x6A54	# <CJK>
+0xE9D4	0x6A6F	# <CJK>
+0xE9D5	0x6A69	# <CJK>
+0xE9D6	0x6A60	# <CJK>
+0xE9D7	0x6A3C	# <CJK>
+0xE9D8	0x6A5E	# <CJK>
+0xE9D9	0x6A56	# <CJK>
+0xE9DA	0x6A55	# <CJK>
+0xE9DB	0x6A4D	# <CJK>
+0xE9DC	0x6A4E	# <CJK>
+0xE9DD	0x6A46	# <CJK>
+0xE9DE	0x6B55	# <CJK>
+0xE9DF	0x6B54	# <CJK>
+0xE9E0	0x6B56	# <CJK>
+0xE9E1	0x6BA7	# <CJK>
+0xE9E2	0x6BAA	# <CJK>
+0xE9E3	0x6BAB	# <CJK>
+0xE9E4	0x6BC8	# <CJK>
+0xE9E5	0x6BC7	# <CJK>
+0xE9E6	0x6C04	# <CJK>
+0xE9E7	0x6C03	# <CJK>
+0xE9E8	0x6C06	# <CJK>
+0xE9E9	0x6FAD	# <CJK>
+0xE9EA	0x6FCB	# <CJK>
+0xE9EB	0x6FA3	# <CJK>
+0xE9EC	0x6FC7	# <CJK>
+0xE9ED	0x6FBC	# <CJK>
+0xE9EE	0x6FCE	# <CJK>
+0xE9EF	0x6FC8	# <CJK>
+0xE9F0	0x6F5E	# <CJK>
+0xE9F1	0x6FC4	# <CJK>
+0xE9F2	0x6FBD	# <CJK>
+0xE9F3	0x6F9E	# <CJK>
+0xE9F4	0x6FCA	# <CJK>
+0xE9F5	0x6FA8	# <CJK>
+0xE9F6	0x7004	# <CJK>
+0xE9F7	0x6FA5	# <CJK>
+0xE9F8	0x6FAE	# <CJK>
+0xE9F9	0x6FBA	# <CJK>
+0xE9FA	0x6FAC	# <CJK>
+0xE9FB	0x6FAA	# <CJK>
+0xE9FC	0x6FCF	# <CJK>
+0xE9FD	0x6FBF	# <CJK>
+0xE9FE	0x6FB8	# <CJK>
+0xEA40	0x6FA2	# <CJK>
+0xEA41	0x6FC9	# <CJK>
+0xEA42	0x6FAB	# <CJK>
+0xEA43	0x6FCD	# <CJK>
+0xEA44	0x6FAF	# <CJK>
+0xEA45	0x6FB2	# <CJK>
+0xEA46	0x6FB0	# <CJK>
+0xEA47	0x71C5	# <CJK>
+0xEA48	0x71C2	# <CJK>
+0xEA49	0x71BF	# <CJK>
+0xEA4A	0x71B8	# <CJK>
+0xEA4B	0x71D6	# <CJK>
+0xEA4C	0x71C0	# <CJK>
+0xEA4D	0x71C1	# <CJK>
+0xEA4E	0x71CB	# <CJK>
+0xEA4F	0x71D4	# <CJK>
+0xEA50	0x71CA	# <CJK>
+0xEA51	0x71C7	# <CJK>
+0xEA52	0x71CF	# <CJK>
+0xEA53	0x71BD	# <CJK>
+0xEA54	0x71D8	# <CJK>
+0xEA55	0x71BC	# <CJK>
+0xEA56	0x71C6	# <CJK>
+0xEA57	0x71DA	# <CJK>
+0xEA58	0x71DB	# <CJK>
+0xEA59	0x729D	# <CJK>
+0xEA5A	0x729E	# <CJK>
+0xEA5B	0x7369	# <CJK>
+0xEA5C	0x7366	# <CJK>
+0xEA5D	0x7367	# <CJK>
+0xEA5E	0x736C	# <CJK>
+0xEA5F	0x7365	# <CJK>
+0xEA60	0x736B	# <CJK>
+0xEA61	0x736A	# <CJK>
+0xEA62	0x747F	# <CJK>
+0xEA63	0x749A	# <CJK>
+0xEA64	0x74A0	# <CJK>
+0xEA65	0x7494	# <CJK>
+0xEA66	0x7492	# <CJK>
+0xEA67	0x7495	# <CJK>
+0xEA68	0x74A1	# <CJK>
+0xEA69	0x750B	# <CJK>
+0xEA6A	0x7580	# <CJK>
+0xEA6B	0x762F	# <CJK>
+0xEA6C	0x762D	# <CJK>
+0xEA6D	0x7631	# <CJK>
+0xEA6E	0x763D	# <CJK>
+0xEA6F	0x7633	# <CJK>
+0xEA70	0x763C	# <CJK>
+0xEA71	0x7635	# <CJK>
+0xEA72	0x7632	# <CJK>
+0xEA73	0x7630	# <CJK>
+0xEA74	0x76BB	# <CJK>
+0xEA75	0x76E6	# <CJK>
+0xEA76	0x779A	# <CJK>
+0xEA77	0x779D	# <CJK>
+0xEA78	0x77A1	# <CJK>
+0xEA79	0x779C	# <CJK>
+0xEA7A	0x779B	# <CJK>
+0xEA7B	0x77A2	# <CJK>
+0xEA7C	0x77A3	# <CJK>
+0xEA7D	0x7795	# <CJK>
+0xEA7E	0x7799	# <CJK>
+0xEAA1	0x7797	# <CJK>
+0xEAA2	0x78DD	# <CJK>
+0xEAA3	0x78E9	# <CJK>
+0xEAA4	0x78E5	# <CJK>
+0xEAA5	0x78EA	# <CJK>
+0xEAA6	0x78DE	# <CJK>
+0xEAA7	0x78E3	# <CJK>
+0xEAA8	0x78DB	# <CJK>
+0xEAA9	0x78E1	# <CJK>
+0xEAAA	0x78E2	# <CJK>
+0xEAAB	0x78ED	# <CJK>
+0xEAAC	0x78DF	# <CJK>
+0xEAAD	0x78E0	# <CJK>
+0xEAAE	0x79A4	# <CJK>
+0xEAAF	0x7A44	# <CJK>
+0xEAB0	0x7A48	# <CJK>
+0xEAB1	0x7A47	# <CJK>
+0xEAB2	0x7AB6	# <CJK>
+0xEAB3	0x7AB8	# <CJK>
+0xEAB4	0x7AB5	# <CJK>
+0xEAB5	0x7AB1	# <CJK>
+0xEAB6	0x7AB7	# <CJK>
+0xEAB7	0x7BDE	# <CJK>
+0xEAB8	0x7BE3	# <CJK>
+0xEAB9	0x7BE7	# <CJK>
+0xEABA	0x7BDD	# <CJK>
+0xEABB	0x7BD5	# <CJK>
+0xEABC	0x7BE5	# <CJK>
+0xEABD	0x7BDA	# <CJK>
+0xEABE	0x7BE8	# <CJK>
+0xEABF	0x7BF9	# <CJK>
+0xEAC0	0x7BD4	# <CJK>
+0xEAC1	0x7BEA	# <CJK>
+0xEAC2	0x7BE2	# <CJK>
+0xEAC3	0x7BDC	# <CJK>
+0xEAC4	0x7BEB	# <CJK>
+0xEAC5	0x7BD8	# <CJK>
+0xEAC6	0x7BDF	# <CJK>
+0xEAC7	0x7CD2	# <CJK>
+0xEAC8	0x7CD4	# <CJK>
+0xEAC9	0x7CD7	# <CJK>
+0xEACA	0x7CD0	# <CJK>
+0xEACB	0x7CD1	# <CJK>
+0xEACC	0x7E12	# <CJK>
+0xEACD	0x7E21	# <CJK>
+0xEACE	0x7E17	# <CJK>
+0xEACF	0x7E0C	# <CJK>
+0xEAD0	0x7E1F	# <CJK>
+0xEAD1	0x7E20	# <CJK>
+0xEAD2	0x7E13	# <CJK>
+0xEAD3	0x7E0E	# <CJK>
+0xEAD4	0x7E1C	# <CJK>
+0xEAD5	0x7E15	# <CJK>
+0xEAD6	0x7E1A	# <CJK>
+0xEAD7	0x7E22	# <CJK>
+0xEAD8	0x7E0B	# <CJK>
+0xEAD9	0x7E0F	# <CJK>
+0xEADA	0x7E16	# <CJK>
+0xEADB	0x7E0D	# <CJK>
+0xEADC	0x7E14	# <CJK>
+0xEADD	0x7E25	# <CJK>
+0xEADE	0x7E24	# <CJK>
+0xEADF	0x7F43	# <CJK>
+0xEAE0	0x7F7B	# <CJK>
+0xEAE1	0x7F7C	# <CJK>
+0xEAE2	0x7F7A	# <CJK>
+0xEAE3	0x7FB1	# <CJK>
+0xEAE4	0x7FEF	# <CJK>
+0xEAE5	0x802A	# <CJK>
+0xEAE6	0x8029	# <CJK>
+0xEAE7	0x806C	# <CJK>
+0xEAE8	0x81B1	# <CJK>
+0xEAE9	0x81A6	# <CJK>
+0xEAEA	0x81AE	# <CJK>
+0xEAEB	0x81B9	# <CJK>
+0xEAEC	0x81B5	# <CJK>
+0xEAED	0x81AB	# <CJK>
+0xEAEE	0x81B0	# <CJK>
+0xEAEF	0x81AC	# <CJK>
+0xEAF0	0x81B4	# <CJK>
+0xEAF1	0x81B2	# <CJK>
+0xEAF2	0x81B7	# <CJK>
+0xEAF3	0x81A7	# <CJK>
+0xEAF4	0x81F2	# <CJK>
+0xEAF5	0x8255	# <CJK>
+0xEAF6	0x8256	# <CJK>
+0xEAF7	0x8257	# <CJK>
+0xEAF8	0x8556	# <CJK>
+0xEAF9	0x8545	# <CJK>
+0xEAFA	0x856B	# <CJK>
+0xEAFB	0x854D	# <CJK>
+0xEAFC	0x8553	# <CJK>
+0xEAFD	0x8561	# <CJK>
+0xEAFE	0x8558	# <CJK>
+0xEB40	0x8540	# <CJK>
+0xEB41	0x8546	# <CJK>
+0xEB42	0x8564	# <CJK>
+0xEB43	0x8541	# <CJK>
+0xEB44	0x8562	# <CJK>
+0xEB45	0x8544	# <CJK>
+0xEB46	0x8551	# <CJK>
+0xEB47	0x8547	# <CJK>
+0xEB48	0x8563	# <CJK>
+0xEB49	0x853E	# <CJK>
+0xEB4A	0x855B	# <CJK>
+0xEB4B	0x8571	# <CJK>
+0xEB4C	0x854E	# <CJK>
+0xEB4D	0x856E	# <CJK>
+0xEB4E	0x8575	# <CJK>
+0xEB4F	0x8555	# <CJK>
+0xEB50	0x8567	# <CJK>
+0xEB51	0x8560	# <CJK>
+0xEB52	0x858C	# <CJK>
+0xEB53	0x8566	# <CJK>
+0xEB54	0x855D	# <CJK>
+0xEB55	0x8554	# <CJK>
+0xEB56	0x8565	# <CJK>
+0xEB57	0x856C	# <CJK>
+0xEB58	0x8663	# <CJK>
+0xEB59	0x8665	# <CJK>
+0xEB5A	0x8664	# <CJK>
+0xEB5B	0x879B	# <CJK>
+0xEB5C	0x878F	# <CJK>
+0xEB5D	0x8797	# <CJK>
+0xEB5E	0x8793	# <CJK>
+0xEB5F	0x8792	# <CJK>
+0xEB60	0x8788	# <CJK>
+0xEB61	0x8781	# <CJK>
+0xEB62	0x8796	# <CJK>
+0xEB63	0x8798	# <CJK>
+0xEB64	0x8779	# <CJK>
+0xEB65	0x8787	# <CJK>
+0xEB66	0x87A3	# <CJK>
+0xEB67	0x8785	# <CJK>
+0xEB68	0x8790	# <CJK>
+0xEB69	0x8791	# <CJK>
+0xEB6A	0x879D	# <CJK>
+0xEB6B	0x8784	# <CJK>
+0xEB6C	0x8794	# <CJK>
+0xEB6D	0x879C	# <CJK>
+0xEB6E	0x879A	# <CJK>
+0xEB6F	0x8789	# <CJK>
+0xEB70	0x891E	# <CJK>
+0xEB71	0x8926	# <CJK>
+0xEB72	0x8930	# <CJK>
+0xEB73	0x892D	# <CJK>
+0xEB74	0x892E	# <CJK>
+0xEB75	0x8927	# <CJK>
+0xEB76	0x8931	# <CJK>
+0xEB77	0x8922	# <CJK>
+0xEB78	0x8929	# <CJK>
+0xEB79	0x8923	# <CJK>
+0xEB7A	0x892F	# <CJK>
+0xEB7B	0x892C	# <CJK>
+0xEB7C	0x891F	# <CJK>
+0xEB7D	0x89F1	# <CJK>
+0xEB7E	0x8AE0	# <CJK>
+0xEBA1	0x8AE2	# <CJK>
+0xEBA2	0x8AF2	# <CJK>
+0xEBA3	0x8AF4	# <CJK>
+0xEBA4	0x8AF5	# <CJK>
+0xEBA5	0x8ADD	# <CJK>
+0xEBA6	0x8B14	# <CJK>
+0xEBA7	0x8AE4	# <CJK>
+0xEBA8	0x8ADF	# <CJK>
+0xEBA9	0x8AF0	# <CJK>
+0xEBAA	0x8AC8	# <CJK>
+0xEBAB	0x8ADE	# <CJK>
+0xEBAC	0x8AE1	# <CJK>
+0xEBAD	0x8AE8	# <CJK>
+0xEBAE	0x8AFF	# <CJK>
+0xEBAF	0x8AEF	# <CJK>
+0xEBB0	0x8AFB	# <CJK>
+0xEBB1	0x8C91	# <CJK>
+0xEBB2	0x8C92	# <CJK>
+0xEBB3	0x8C90	# <CJK>
+0xEBB4	0x8CF5	# <CJK>
+0xEBB5	0x8CEE	# <CJK>
+0xEBB6	0x8CF1	# <CJK>
+0xEBB7	0x8CF0	# <CJK>
+0xEBB8	0x8CF3	# <CJK>
+0xEBB9	0x8D6C	# <CJK>
+0xEBBA	0x8D6E	# <CJK>
+0xEBBB	0x8DA5	# <CJK>
+0xEBBC	0x8DA7	# <CJK>
+0xEBBD	0x8E33	# <CJK>
+0xEBBE	0x8E3E	# <CJK>
+0xEBBF	0x8E38	# <CJK>
+0xEBC0	0x8E40	# <CJK>
+0xEBC1	0x8E45	# <CJK>
+0xEBC2	0x8E36	# <CJK>
+0xEBC3	0x8E3C	# <CJK>
+0xEBC4	0x8E3D	# <CJK>
+0xEBC5	0x8E41	# <CJK>
+0xEBC6	0x8E30	# <CJK>
+0xEBC7	0x8E3F	# <CJK>
+0xEBC8	0x8EBD	# <CJK>
+0xEBC9	0x8F36	# <CJK>
+0xEBCA	0x8F2E	# <CJK>
+0xEBCB	0x8F35	# <CJK>
+0xEBCC	0x8F32	# <CJK>
+0xEBCD	0x8F39	# <CJK>
+0xEBCE	0x8F37	# <CJK>
+0xEBCF	0x8F34	# <CJK>
+0xEBD0	0x9076	# <CJK>
+0xEBD1	0x9079	# <CJK>
+0xEBD2	0x907B	# <CJK>
+0xEBD3	0x9086	# <CJK>
+0xEBD4	0x90FA	# <CJK>
+0xEBD5	0x9133	# <CJK>
+0xEBD6	0x9135	# <CJK>
+0xEBD7	0x9136	# <CJK>
+0xEBD8	0x9193	# <CJK>
+0xEBD9	0x9190	# <CJK>
+0xEBDA	0x9191	# <CJK>
+0xEBDB	0x918D	# <CJK>
+0xEBDC	0x918F	# <CJK>
+0xEBDD	0x9327	# <CJK>
+0xEBDE	0x931E	# <CJK>
+0xEBDF	0x9308	# <CJK>
+0xEBE0	0x931F	# <CJK>
+0xEBE1	0x9306	# <CJK>
+0xEBE2	0x930F	# <CJK>
+0xEBE3	0x937A	# <CJK>
+0xEBE4	0x9338	# <CJK>
+0xEBE5	0x933C	# <CJK>
+0xEBE6	0x931B	# <CJK>
+0xEBE7	0x9323	# <CJK>
+0xEBE8	0x9312	# <CJK>
+0xEBE9	0x9301	# <CJK>
+0xEBEA	0x9346	# <CJK>
+0xEBEB	0x932D	# <CJK>
+0xEBEC	0x930E	# <CJK>
+0xEBED	0x930D	# <CJK>
+0xEBEE	0x92CB	# <CJK>
+0xEBEF	0x931D	# <CJK>
+0xEBF0	0x92FA	# <CJK>
+0xEBF1	0x9325	# <CJK>
+0xEBF2	0x9313	# <CJK>
+0xEBF3	0x92F9	# <CJK>
+0xEBF4	0x92F7	# <CJK>
+0xEBF5	0x9334	# <CJK>
+0xEBF6	0x9302	# <CJK>
+0xEBF7	0x9324	# <CJK>
+0xEBF8	0x92FF	# <CJK>
+0xEBF9	0x9329	# <CJK>
+0xEBFA	0x9339	# <CJK>
+0xEBFB	0x9335	# <CJK>
+0xEBFC	0x932A	# <CJK>
+0xEBFD	0x9314	# <CJK>
+0xEBFE	0x930C	# <CJK>
+0xEC40	0x930B	# <CJK>
+0xEC41	0x92FE	# <CJK>
+0xEC42	0x9309	# <CJK>
+0xEC43	0x9300	# <CJK>
+0xEC44	0x92FB	# <CJK>
+0xEC45	0x9316	# <CJK>
+0xEC46	0x95BC	# <CJK>
+0xEC47	0x95CD	# <CJK>
+0xEC48	0x95BE	# <CJK>
+0xEC49	0x95B9	# <CJK>
+0xEC4A	0x95BA	# <CJK>
+0xEC4B	0x95B6	# <CJK>
+0xEC4C	0x95BF	# <CJK>
+0xEC4D	0x95B5	# <CJK>
+0xEC4E	0x95BD	# <CJK>
+0xEC4F	0x96A9	# <CJK>
+0xEC50	0x96D4	# <CJK>
+0xEC51	0x970B	# <CJK>
+0xEC52	0x9712	# <CJK>
+0xEC53	0x9710	# <CJK>
+0xEC54	0x9799	# <CJK>
+0xEC55	0x9797	# <CJK>
+0xEC56	0x9794	# <CJK>
+0xEC57	0x97F0	# <CJK>
+0xEC58	0x97F8	# <CJK>
+0xEC59	0x9835	# <CJK>
+0xEC5A	0x982F	# <CJK>
+0xEC5B	0x9832	# <CJK>
+0xEC5C	0x9924	# <CJK>
+0xEC5D	0x991F	# <CJK>
+0xEC5E	0x9927	# <CJK>
+0xEC5F	0x9929	# <CJK>
+0xEC60	0x999E	# <CJK>
+0xEC61	0x99EE	# <CJK>
+0xEC62	0x99EC	# <CJK>
+0xEC63	0x99E5	# <CJK>
+0xEC64	0x99E4	# <CJK>
+0xEC65	0x99F0	# <CJK>
+0xEC66	0x99E3	# <CJK>
+0xEC67	0x99EA	# <CJK>
+0xEC68	0x99E9	# <CJK>
+0xEC69	0x99E7	# <CJK>
+0xEC6A	0x9AB9	# <CJK>
+0xEC6B	0x9ABF	# <CJK>
+0xEC6C	0x9AB4	# <CJK>
+0xEC6D	0x9ABB	# <CJK>
+0xEC6E	0x9AF6	# <CJK>
+0xEC6F	0x9AFA	# <CJK>
+0xEC70	0x9AF9	# <CJK>
+0xEC71	0x9AF7	# <CJK>
+0xEC72	0x9B33	# <CJK>
+0xEC73	0x9B80	# <CJK>
+0xEC74	0x9B85	# <CJK>
+0xEC75	0x9B87	# <CJK>
+0xEC76	0x9B7C	# <CJK>
+0xEC77	0x9B7E	# <CJK>
+0xEC78	0x9B7B	# <CJK>
+0xEC79	0x9B82	# <CJK>
+0xEC7A	0x9B93	# <CJK>
+0xEC7B	0x9B92	# <CJK>
+0xEC7C	0x9B90	# <CJK>
+0xEC7D	0x9B7A	# <CJK>
+0xEC7E	0x9B95	# <CJK>
+0xECA1	0x9B7D	# <CJK>
+0xECA2	0x9B88	# <CJK>
+0xECA3	0x9D25	# <CJK>
+0xECA4	0x9D17	# <CJK>
+0xECA5	0x9D20	# <CJK>
+0xECA6	0x9D1E	# <CJK>
+0xECA7	0x9D14	# <CJK>
+0xECA8	0x9D29	# <CJK>
+0xECA9	0x9D1D	# <CJK>
+0xECAA	0x9D18	# <CJK>
+0xECAB	0x9D22	# <CJK>
+0xECAC	0x9D10	# <CJK>
+0xECAD	0x9D19	# <CJK>
+0xECAE	0x9D1F	# <CJK>
+0xECAF	0x9E88	# <CJK>
+0xECB0	0x9E86	# <CJK>
+0xECB1	0x9E87	# <CJK>
+0xECB2	0x9EAE	# <CJK>
+0xECB3	0x9EAD	# <CJK>
+0xECB4	0x9ED5	# <CJK>
+0xECB5	0x9ED6	# <CJK>
+0xECB6	0x9EFA	# <CJK>
+0xECB7	0x9F12	# <CJK>
+0xECB8	0x9F3D	# <CJK>
+0xECB9	0x5126	# <CJK>
+0xECBA	0x5125	# <CJK>
+0xECBB	0x5122	# <CJK>
+0xECBC	0x5124	# <CJK>
+0xECBD	0x5120	# <CJK>
+0xECBE	0x5129	# <CJK>
+0xECBF	0x52F4	# <CJK>
+0xECC0	0x5693	# <CJK>
+0xECC1	0x568C	# <CJK>
+0xECC2	0x568D	# <CJK>
+0xECC3	0x5686	# <CJK>
+0xECC4	0x5684	# <CJK>
+0xECC5	0x5683	# <CJK>
+0xECC6	0x567E	# <CJK>
+0xECC7	0x5682	# <CJK>
+0xECC8	0x567F	# <CJK>
+0xECC9	0x5681	# <CJK>
+0xECCA	0x58D6	# <CJK>
+0xECCB	0x58D4	# <CJK>
+0xECCC	0x58CF	# <CJK>
+0xECCD	0x58D2	# <CJK>
+0xECCE	0x5B2D	# <CJK>
+0xECCF	0x5B25	# <CJK>
+0xECD0	0x5B32	# <CJK>
+0xECD1	0x5B23	# <CJK>
+0xECD2	0x5B2C	# <CJK>
+0xECD3	0x5B27	# <CJK>
+0xECD4	0x5B26	# <CJK>
+0xECD5	0x5B2F	# <CJK>
+0xECD6	0x5B2E	# <CJK>
+0xECD7	0x5B7B	# <CJK>
+0xECD8	0x5BF1	# <CJK>
+0xECD9	0x5BF2	# <CJK>
+0xECDA	0x5DB7	# <CJK>
+0xECDB	0x5E6C	# <CJK>
+0xECDC	0x5E6A	# <CJK>
+0xECDD	0x5FBE	# <CJK>
+0xECDE	0x5FBB	# <CJK>
+0xECDF	0x61C3	# <CJK>
+0xECE0	0x61B5	# <CJK>
+0xECE1	0x61BC	# <CJK>
+0xECE2	0x61E7	# <CJK>
+0xECE3	0x61E0	# <CJK>
+0xECE4	0x61E5	# <CJK>
+0xECE5	0x61E4	# <CJK>
+0xECE6	0x61E8	# <CJK>
+0xECE7	0x61DE	# <CJK>
+0xECE8	0x64EF	# <CJK>
+0xECE9	0x64E9	# <CJK>
+0xECEA	0x64E3	# <CJK>
+0xECEB	0x64EB	# <CJK>
+0xECEC	0x64E4	# <CJK>
+0xECED	0x64E8	# <CJK>
+0xECEE	0x6581	# <CJK>
+0xECEF	0x6580	# <CJK>
+0xECF0	0x65B6	# <CJK>
+0xECF1	0x65DA	# <CJK>
+0xECF2	0x66D2	# <CJK>
+0xECF3	0x6A8D	# <CJK>
+0xECF4	0x6A96	# <CJK>
+0xECF5	0x6A81	# <CJK>
+0xECF6	0x6AA5	# <CJK>
+0xECF7	0x6A89	# <CJK>
+0xECF8	0x6A9F	# <CJK>
+0xECF9	0x6A9B	# <CJK>
+0xECFA	0x6AA1	# <CJK>
+0xECFB	0x6A9E	# <CJK>
+0xECFC	0x6A87	# <CJK>
+0xECFD	0x6A93	# <CJK>
+0xECFE	0x6A8E	# <CJK>
+0xED40	0x6A95	# <CJK>
+0xED41	0x6A83	# <CJK>
+0xED42	0x6AA8	# <CJK>
+0xED43	0x6AA4	# <CJK>
+0xED44	0x6A91	# <CJK>
+0xED45	0x6A7F	# <CJK>
+0xED46	0x6AA6	# <CJK>
+0xED47	0x6A9A	# <CJK>
+0xED48	0x6A85	# <CJK>
+0xED49	0x6A8C	# <CJK>
+0xED4A	0x6A92	# <CJK>
+0xED4B	0x6B5B	# <CJK>
+0xED4C	0x6BAD	# <CJK>
+0xED4D	0x6C09	# <CJK>
+0xED4E	0x6FCC	# <CJK>
+0xED4F	0x6FA9	# <CJK>
+0xED50	0x6FF4	# <CJK>
+0xED51	0x6FD4	# <CJK>
+0xED52	0x6FE3	# <CJK>
+0xED53	0x6FDC	# <CJK>
+0xED54	0x6FED	# <CJK>
+0xED55	0x6FE7	# <CJK>
+0xED56	0x6FE6	# <CJK>
+0xED57	0x6FDE	# <CJK>
+0xED58	0x6FF2	# <CJK>
+0xED59	0x6FDD	# <CJK>
+0xED5A	0x6FE2	# <CJK>
+0xED5B	0x6FE8	# <CJK>
+0xED5C	0x71E1	# <CJK>
+0xED5D	0x71F1	# <CJK>
+0xED5E	0x71E8	# <CJK>
+0xED5F	0x71F2	# <CJK>
+0xED60	0x71E4	# <CJK>
+0xED61	0x71F0	# <CJK>
+0xED62	0x71E2	# <CJK>
+0xED63	0x7373	# <CJK>
+0xED64	0x736E	# <CJK>
+0xED65	0x736F	# <CJK>
+0xED66	0x7497	# <CJK>
+0xED67	0x74B2	# <CJK>
+0xED68	0x74AB	# <CJK>
+0xED69	0x7490	# <CJK>
+0xED6A	0x74AA	# <CJK>
+0xED6B	0x74AD	# <CJK>
+0xED6C	0x74B1	# <CJK>
+0xED6D	0x74A5	# <CJK>
+0xED6E	0x74AF	# <CJK>
+0xED6F	0x7510	# <CJK>
+0xED70	0x7511	# <CJK>
+0xED71	0x7512	# <CJK>
+0xED72	0x750F	# <CJK>
+0xED73	0x7584	# <CJK>
+0xED74	0x7643	# <CJK>
+0xED75	0x7648	# <CJK>
+0xED76	0x7649	# <CJK>
+0xED77	0x7647	# <CJK>
+0xED78	0x76A4	# <CJK>
+0xED79	0x76E9	# <CJK>
+0xED7A	0x77B5	# <CJK>
+0xED7B	0x77AB	# <CJK>
+0xED7C	0x77B2	# <CJK>
+0xED7D	0x77B7	# <CJK>
+0xED7E	0x77B6	# <CJK>
+0xEDA1	0x77B4	# <CJK>
+0xEDA2	0x77B1	# <CJK>
+0xEDA3	0x77A8	# <CJK>
+0xEDA4	0x77F0	# <CJK>
+0xEDA5	0x78F3	# <CJK>
+0xEDA6	0x78FD	# <CJK>
+0xEDA7	0x7902	# <CJK>
+0xEDA8	0x78FB	# <CJK>
+0xEDA9	0x78FC	# <CJK>
+0xEDAA	0x78F2	# <CJK>
+0xEDAB	0x7905	# <CJK>
+0xEDAC	0x78F9	# <CJK>
+0xEDAD	0x78FE	# <CJK>
+0xEDAE	0x7904	# <CJK>
+0xEDAF	0x79AB	# <CJK>
+0xEDB0	0x79A8	# <CJK>
+0xEDB1	0x7A5C	# <CJK>
+0xEDB2	0x7A5B	# <CJK>
+0xEDB3	0x7A56	# <CJK>
+0xEDB4	0x7A58	# <CJK>
+0xEDB5	0x7A54	# <CJK>
+0xEDB6	0x7A5A	# <CJK>
+0xEDB7	0x7ABE	# <CJK>
+0xEDB8	0x7AC0	# <CJK>
+0xEDB9	0x7AC1	# <CJK>
+0xEDBA	0x7C05	# <CJK>
+0xEDBB	0x7C0F	# <CJK>
+0xEDBC	0x7BF2	# <CJK>
+0xEDBD	0x7C00	# <CJK>
+0xEDBE	0x7BFF	# <CJK>
+0xEDBF	0x7BFB	# <CJK>
+0xEDC0	0x7C0E	# <CJK>
+0xEDC1	0x7BF4	# <CJK>
+0xEDC2	0x7C0B	# <CJK>
+0xEDC3	0x7BF3	# <CJK>
+0xEDC4	0x7C02	# <CJK>
+0xEDC5	0x7C09	# <CJK>
+0xEDC6	0x7C03	# <CJK>
+0xEDC7	0x7C01	# <CJK>
+0xEDC8	0x7BF8	# <CJK>
+0xEDC9	0x7BFD	# <CJK>
+0xEDCA	0x7C06	# <CJK>
+0xEDCB	0x7BF0	# <CJK>
+0xEDCC	0x7BF1	# <CJK>
+0xEDCD	0x7C10	# <CJK>
+0xEDCE	0x7C0A	# <CJK>
+0xEDCF	0x7CE8	# <CJK>
+0xEDD0	0x7E2D	# <CJK>
+0xEDD1	0x7E3C	# <CJK>
+0xEDD2	0x7E42	# <CJK>
+0xEDD3	0x7E33	# <CJK>
+0xEDD4	0x9848	# <CJK>
+0xEDD5	0x7E38	# <CJK>
+0xEDD6	0x7E2A	# <CJK>
+0xEDD7	0x7E49	# <CJK>
+0xEDD8	0x7E40	# <CJK>
+0xEDD9	0x7E47	# <CJK>
+0xEDDA	0x7E29	# <CJK>
+0xEDDB	0x7E4C	# <CJK>
+0xEDDC	0x7E30	# <CJK>
+0xEDDD	0x7E3B	# <CJK>
+0xEDDE	0x7E36	# <CJK>
+0xEDDF	0x7E44	# <CJK>
+0xEDE0	0x7E3A	# <CJK>
+0xEDE1	0x7F45	# <CJK>
+0xEDE2	0x7F7F	# <CJK>
+0xEDE3	0x7F7E	# <CJK>
+0xEDE4	0x7F7D	# <CJK>
+0xEDE5	0x7FF4	# <CJK>
+0xEDE6	0x7FF2	# <CJK>
+0xEDE7	0x802C	# <CJK>
+0xEDE8	0x81BB	# <CJK>
+0xEDE9	0x81C4	# <CJK>
+0xEDEA	0x81CC	# <CJK>
+0xEDEB	0x81CA	# <CJK>
+0xEDEC	0x81C5	# <CJK>
+0xEDED	0x81C7	# <CJK>
+0xEDEE	0x81BC	# <CJK>
+0xEDEF	0x81E9	# <CJK>
+0xEDF0	0x825B	# <CJK>
+0xEDF1	0x825A	# <CJK>
+0xEDF2	0x825C	# <CJK>
+0xEDF3	0x8583	# <CJK>
+0xEDF4	0x8580	# <CJK>
+0xEDF5	0x858F	# <CJK>
+0xEDF6	0x85A7	# <CJK>
+0xEDF7	0x8595	# <CJK>
+0xEDF8	0x85A0	# <CJK>
+0xEDF9	0x858B	# <CJK>
+0xEDFA	0x85A3	# <CJK>
+0xEDFB	0x857B	# <CJK>
+0xEDFC	0x85A4	# <CJK>
+0xEDFD	0x859A	# <CJK>
+0xEDFE	0x859E	# <CJK>
+0xEE40	0x8577	# <CJK>
+0xEE41	0x857C	# <CJK>
+0xEE42	0x8589	# <CJK>
+0xEE43	0x85A1	# <CJK>
+0xEE44	0x857A	# <CJK>
+0xEE45	0x8578	# <CJK>
+0xEE46	0x8557	# <CJK>
+0xEE47	0x858E	# <CJK>
+0xEE48	0x8596	# <CJK>
+0xEE49	0x8586	# <CJK>
+0xEE4A	0x858D	# <CJK>
+0xEE4B	0x8599	# <CJK>
+0xEE4C	0x859D	# <CJK>
+0xEE4D	0x8581	# <CJK>
+0xEE4E	0x85A2	# <CJK>
+0xEE4F	0x8582	# <CJK>
+0xEE50	0x8588	# <CJK>
+0xEE51	0x8585	# <CJK>
+0xEE52	0x8579	# <CJK>
+0xEE53	0x8576	# <CJK>
+0xEE54	0x8598	# <CJK>
+0xEE55	0x8590	# <CJK>
+0xEE56	0x859F	# <CJK>
+0xEE57	0x8668	# <CJK>
+0xEE58	0x87BE	# <CJK>
+0xEE59	0x87AA	# <CJK>
+0xEE5A	0x87AD	# <CJK>
+0xEE5B	0x87C5	# <CJK>
+0xEE5C	0x87B0	# <CJK>
+0xEE5D	0x87AC	# <CJK>
+0xEE5E	0x87B9	# <CJK>
+0xEE5F	0x87B5	# <CJK>
+0xEE60	0x87BC	# <CJK>
+0xEE61	0x87AE	# <CJK>
+0xEE62	0x87C9	# <CJK>
+0xEE63	0x87C3	# <CJK>
+0xEE64	0x87C2	# <CJK>
+0xEE65	0x87CC	# <CJK>
+0xEE66	0x87B7	# <CJK>
+0xEE67	0x87AF	# <CJK>
+0xEE68	0x87C4	# <CJK>
+0xEE69	0x87CA	# <CJK>
+0xEE6A	0x87B4	# <CJK>
+0xEE6B	0x87B6	# <CJK>
+0xEE6C	0x87BF	# <CJK>
+0xEE6D	0x87B8	# <CJK>
+0xEE6E	0x87BD	# <CJK>
+0xEE6F	0x87DE	# <CJK>
+0xEE70	0x87B2	# <CJK>
+0xEE71	0x8935	# <CJK>
+0xEE72	0x8933	# <CJK>
+0xEE73	0x893C	# <CJK>
+0xEE74	0x893E	# <CJK>
+0xEE75	0x8941	# <CJK>
+0xEE76	0x8952	# <CJK>
+0xEE77	0x8937	# <CJK>
+0xEE78	0x8942	# <CJK>
+0xEE79	0x89AD	# <CJK>
+0xEE7A	0x89AF	# <CJK>
+0xEE7B	0x89AE	# <CJK>
+0xEE7C	0x89F2	# <CJK>
+0xEE7D	0x89F3	# <CJK>
+0xEE7E	0x8B1E	# <CJK>
+0xEEA1	0x8B18	# <CJK>
+0xEEA2	0x8B16	# <CJK>
+0xEEA3	0x8B11	# <CJK>
+0xEEA4	0x8B05	# <CJK>
+0xEEA5	0x8B0B	# <CJK>
+0xEEA6	0x8B22	# <CJK>
+0xEEA7	0x8B0F	# <CJK>
+0xEEA8	0x8B12	# <CJK>
+0xEEA9	0x8B15	# <CJK>
+0xEEAA	0x8B07	# <CJK>
+0xEEAB	0x8B0D	# <CJK>
+0xEEAC	0x8B08	# <CJK>
+0xEEAD	0x8B06	# <CJK>
+0xEEAE	0x8B1C	# <CJK>
+0xEEAF	0x8B13	# <CJK>
+0xEEB0	0x8B1A	# <CJK>
+0xEEB1	0x8C4F	# <CJK>
+0xEEB2	0x8C70	# <CJK>
+0xEEB3	0x8C72	# <CJK>
+0xEEB4	0x8C71	# <CJK>
+0xEEB5	0x8C6F	# <CJK>
+0xEEB6	0x8C95	# <CJK>
+0xEEB7	0x8C94	# <CJK>
+0xEEB8	0x8CF9	# <CJK>
+0xEEB9	0x8D6F	# <CJK>
+0xEEBA	0x8E4E	# <CJK>
+0xEEBB	0x8E4D	# <CJK>
+0xEEBC	0x8E53	# <CJK>
+0xEEBD	0x8E50	# <CJK>
+0xEEBE	0x8E4C	# <CJK>
+0xEEBF	0x8E47	# <CJK>
+0xEEC0	0x8F43	# <CJK>
+0xEEC1	0x8F40	# <CJK>
+0xEEC2	0x9085	# <CJK>
+0xEEC3	0x907E	# <CJK>
+0xEEC4	0x9138	# <CJK>
+0xEEC5	0x919A	# <CJK>
+0xEEC6	0x91A2	# <CJK>
+0xEEC7	0x919B	# <CJK>
+0xEEC8	0x9199	# <CJK>
+0xEEC9	0x919F	# <CJK>
+0xEECA	0x91A1	# <CJK>
+0xEECB	0x919D	# <CJK>
+0xEECC	0x91A0	# <CJK>
+0xEECD	0x93A1	# <CJK>
+0xEECE	0x9383	# <CJK>
+0xEECF	0x93AF	# <CJK>
+0xEED0	0x9364	# <CJK>
+0xEED1	0x9356	# <CJK>
+0xEED2	0x9347	# <CJK>
+0xEED3	0x937C	# <CJK>
+0xEED4	0x9358	# <CJK>
+0xEED5	0x935C	# <CJK>
+0xEED6	0x9376	# <CJK>
+0xEED7	0x9349	# <CJK>
+0xEED8	0x9350	# <CJK>
+0xEED9	0x9351	# <CJK>
+0xEEDA	0x9360	# <CJK>
+0xEEDB	0x936D	# <CJK>
+0xEEDC	0x938F	# <CJK>
+0xEEDD	0x934C	# <CJK>
+0xEEDE	0x936A	# <CJK>
+0xEEDF	0x9379	# <CJK>
+0xEEE0	0x9357	# <CJK>
+0xEEE1	0x9355	# <CJK>
+0xEEE2	0x9352	# <CJK>
+0xEEE3	0x934F	# <CJK>
+0xEEE4	0x9371	# <CJK>
+0xEEE5	0x9377	# <CJK>
+0xEEE6	0x937B	# <CJK>
+0xEEE7	0x9361	# <CJK>
+0xEEE8	0x935E	# <CJK>
+0xEEE9	0x9363	# <CJK>
+0xEEEA	0x9367	# <CJK>
+0xEEEB	0x9380	# <CJK>
+0xEEEC	0x934E	# <CJK>
+0xEEED	0x9359	# <CJK>
+0xEEEE	0x95C7	# <CJK>
+0xEEEF	0x95C0	# <CJK>
+0xEEF0	0x95C9	# <CJK>
+0xEEF1	0x95C3	# <CJK>
+0xEEF2	0x95C5	# <CJK>
+0xEEF3	0x95B7	# <CJK>
+0xEEF4	0x96AE	# <CJK>
+0xEEF5	0x96B0	# <CJK>
+0xEEF6	0x96AC	# <CJK>
+0xEEF7	0x9720	# <CJK>
+0xEEF8	0x971F	# <CJK>
+0xEEF9	0x9718	# <CJK>
+0xEEFA	0x971D	# <CJK>
+0xEEFB	0x9719	# <CJK>
+0xEEFC	0x979A	# <CJK>
+0xEEFD	0x97A1	# <CJK>
+0xEEFE	0x979C	# <CJK>
+0xEF40	0x979E	# <CJK>
+0xEF41	0x979D	# <CJK>
+0xEF42	0x97D5	# <CJK>
+0xEF43	0x97D4	# <CJK>
+0xEF44	0x97F1	# <CJK>
+0xEF45	0x9841	# <CJK>
+0xEF46	0x9844	# <CJK>
+0xEF47	0x984A	# <CJK>
+0xEF48	0x9849	# <CJK>
+0xEF49	0x9845	# <CJK>
+0xEF4A	0x9843	# <CJK>
+0xEF4B	0x9925	# <CJK>
+0xEF4C	0x992B	# <CJK>
+0xEF4D	0x992C	# <CJK>
+0xEF4E	0x992A	# <CJK>
+0xEF4F	0x9933	# <CJK>
+0xEF50	0x9932	# <CJK>
+0xEF51	0x992F	# <CJK>
+0xEF52	0x992D	# <CJK>
+0xEF53	0x9931	# <CJK>
+0xEF54	0x9930	# <CJK>
+0xEF55	0x9998	# <CJK>
+0xEF56	0x99A3	# <CJK>
+0xEF57	0x99A1	# <CJK>
+0xEF58	0x9A02	# <CJK>
+0xEF59	0x99FA	# <CJK>
+0xEF5A	0x99F4	# <CJK>
+0xEF5B	0x99F7	# <CJK>
+0xEF5C	0x99F9	# <CJK>
+0xEF5D	0x99F8	# <CJK>
+0xEF5E	0x99F6	# <CJK>
+0xEF5F	0x99FB	# <CJK>
+0xEF60	0x99FD	# <CJK>
+0xEF61	0x99FE	# <CJK>
+0xEF62	0x99FC	# <CJK>
+0xEF63	0x9A03	# <CJK>
+0xEF64	0x9ABE	# <CJK>
+0xEF65	0x9AFE	# <CJK>
+0xEF66	0x9AFD	# <CJK>
+0xEF67	0x9B01	# <CJK>
+0xEF68	0x9AFC	# <CJK>
+0xEF69	0x9B48	# <CJK>
+0xEF6A	0x9B9A	# <CJK>
+0xEF6B	0x9BA8	# <CJK>
+0xEF6C	0x9B9E	# <CJK>
+0xEF6D	0x9B9B	# <CJK>
+0xEF6E	0x9BA6	# <CJK>
+0xEF6F	0x9BA1	# <CJK>
+0xEF70	0x9BA5	# <CJK>
+0xEF71	0x9BA4	# <CJK>
+0xEF72	0x9B86	# <CJK>
+0xEF73	0x9BA2	# <CJK>
+0xEF74	0x9BA0	# <CJK>
+0xEF75	0x9BAF	# <CJK>
+0xEF76	0x9D33	# <CJK>
+0xEF77	0x9D41	# <CJK>
+0xEF78	0x9D67	# <CJK>
+0xEF79	0x9D36	# <CJK>
+0xEF7A	0x9D2E	# <CJK>
+0xEF7B	0x9D2F	# <CJK>
+0xEF7C	0x9D31	# <CJK>
+0xEF7D	0x9D38	# <CJK>
+0xEF7E	0x9D30	# <CJK>
+0xEFA1	0x9D45	# <CJK>
+0xEFA2	0x9D42	# <CJK>
+0xEFA3	0x9D43	# <CJK>
+0xEFA4	0x9D3E	# <CJK>
+0xEFA5	0x9D37	# <CJK>
+0xEFA6	0x9D40	# <CJK>
+0xEFA7	0x9D3D	# <CJK>
+0xEFA8	0x7FF5	# <CJK>
+0xEFA9	0x9D2D	# <CJK>
+0xEFAA	0x9E8A	# <CJK>
+0xEFAB	0x9E89	# <CJK>
+0xEFAC	0x9E8D	# <CJK>
+0xEFAD	0x9EB0	# <CJK>
+0xEFAE	0x9EC8	# <CJK>
+0xEFAF	0x9EDA	# <CJK>
+0xEFB0	0x9EFB	# <CJK>
+0xEFB1	0x9EFF	# <CJK>
+0xEFB2	0x9F24	# <CJK>
+0xEFB3	0x9F23	# <CJK>
+0xEFB4	0x9F22	# <CJK>
+0xEFB5	0x9F54	# <CJK>
+0xEFB6	0x9FA0	# <CJK>
+0xEFB7	0x5131	# <CJK>
+0xEFB8	0x512D	# <CJK>
+0xEFB9	0x512E	# <CJK>
+0xEFBA	0x5698	# <CJK>
+0xEFBB	0x569C	# <CJK>
+0xEFBC	0x5697	# <CJK>
+0xEFBD	0x569A	# <CJK>
+0xEFBE	0x569D	# <CJK>
+0xEFBF	0x5699	# <CJK>
+0xEFC0	0x5970	# <CJK>
+0xEFC1	0x5B3C	# <CJK>
+0xEFC2	0x5C69	# <CJK>
+0xEFC3	0x5C6A	# <CJK>
+0xEFC4	0x5DC0	# <CJK>
+0xEFC5	0x5E6D	# <CJK>
+0xEFC6	0x5E6E	# <CJK>
+0xEFC7	0x61D8	# <CJK>
+0xEFC8	0x61DF	# <CJK>
+0xEFC9	0x61ED	# <CJK>
+0xEFCA	0x61EE	# <CJK>
+0xEFCB	0x61F1	# <CJK>
+0xEFCC	0x61EA	# <CJK>
+0xEFCD	0x61F0	# <CJK>
+0xEFCE	0x61EB	# <CJK>
+0xEFCF	0x61D6	# <CJK>
+0xEFD0	0x61E9	# <CJK>
+0xEFD1	0x64FF	# <CJK>
+0xEFD2	0x6504	# <CJK>
+0xEFD3	0x64FD	# <CJK>
+0xEFD4	0x64F8	# <CJK>
+0xEFD5	0x6501	# <CJK>
+0xEFD6	0x6503	# <CJK>
+0xEFD7	0x64FC	# <CJK>
+0xEFD8	0x6594	# <CJK>
+0xEFD9	0x65DB	# <CJK>
+0xEFDA	0x66DA	# <CJK>
+0xEFDB	0x66DB	# <CJK>
+0xEFDC	0x66D8	# <CJK>
+0xEFDD	0x6AC5	# <CJK>
+0xEFDE	0x6AB9	# <CJK>
+0xEFDF	0x6ABD	# <CJK>
+0xEFE0	0x6AE1	# <CJK>
+0xEFE1	0x6AC6	# <CJK>
+0xEFE2	0x6ABA	# <CJK>
+0xEFE3	0x6AB6	# <CJK>
+0xEFE4	0x6AB7	# <CJK>
+0xEFE5	0x6AC7	# <CJK>
+0xEFE6	0x6AB4	# <CJK>
+0xEFE7	0x6AAD	# <CJK>
+0xEFE8	0x6B5E	# <CJK>
+0xEFE9	0x6BC9	# <CJK>
+0xEFEA	0x6C0B	# <CJK>
+0xEFEB	0x7007	# <CJK>
+0xEFEC	0x700C	# <CJK>
+0xEFED	0x700D	# <CJK>
+0xEFEE	0x7001	# <CJK>
+0xEFEF	0x7005	# <CJK>
+0xEFF0	0x7014	# <CJK>
+0xEFF1	0x700E	# <CJK>
+0xEFF2	0x6FFF	# <CJK>
+0xEFF3	0x7000	# <CJK>
+0xEFF4	0x6FFB	# <CJK>
+0xEFF5	0x7026	# <CJK>
+0xEFF6	0x6FFC	# <CJK>
+0xEFF7	0x6FF7	# <CJK>
+0xEFF8	0x700A	# <CJK>
+0xEFF9	0x7201	# <CJK>
+0xEFFA	0x71FF	# <CJK>
+0xEFFB	0x71F9	# <CJK>
+0xEFFC	0x7203	# <CJK>
+0xEFFD	0x71FD	# <CJK>
+0xEFFE	0x7376	# <CJK>
+0xF040	0x74B8	# <CJK>
+0xF041	0x74C0	# <CJK>
+0xF042	0x74B5	# <CJK>
+0xF043	0x74C1	# <CJK>
+0xF044	0x74BE	# <CJK>
+0xF045	0x74B6	# <CJK>
+0xF046	0x74BB	# <CJK>
+0xF047	0x74C2	# <CJK>
+0xF048	0x7514	# <CJK>
+0xF049	0x7513	# <CJK>
+0xF04A	0x765C	# <CJK>
+0xF04B	0x7664	# <CJK>
+0xF04C	0x7659	# <CJK>
+0xF04D	0x7650	# <CJK>
+0xF04E	0x7653	# <CJK>
+0xF04F	0x7657	# <CJK>
+0xF050	0x765A	# <CJK>
+0xF051	0x76A6	# <CJK>
+0xF052	0x76BD	# <CJK>
+0xF053	0x76EC	# <CJK>
+0xF054	0x77C2	# <CJK>
+0xF055	0x77BA	# <CJK>
+0xF056	0x78FF	# <CJK>
+0xF057	0x790C	# <CJK>
+0xF058	0x7913	# <CJK>
+0xF059	0x7914	# <CJK>
+0xF05A	0x7909	# <CJK>
+0xF05B	0x7910	# <CJK>
+0xF05C	0x7912	# <CJK>
+0xF05D	0x7911	# <CJK>
+0xF05E	0x79AD	# <CJK>
+0xF05F	0x79AC	# <CJK>
+0xF060	0x7A5F	# <CJK>
+0xF061	0x7C1C	# <CJK>
+0xF062	0x7C29	# <CJK>
+0xF063	0x7C19	# <CJK>
+0xF064	0x7C20	# <CJK>
+0xF065	0x7C1F	# <CJK>
+0xF066	0x7C2D	# <CJK>
+0xF067	0x7C1D	# <CJK>
+0xF068	0x7C26	# <CJK>
+0xF069	0x7C28	# <CJK>
+0xF06A	0x7C22	# <CJK>
+0xF06B	0x7C25	# <CJK>
+0xF06C	0x7C30	# <CJK>
+0xF06D	0x7E5C	# <CJK>
+0xF06E	0x7E50	# <CJK>
+0xF06F	0x7E56	# <CJK>
+0xF070	0x7E63	# <CJK>
+0xF071	0x7E58	# <CJK>
+0xF072	0x7E62	# <CJK>
+0xF073	0x7E5F	# <CJK>
+0xF074	0x7E51	# <CJK>
+0xF075	0x7E60	# <CJK>
+0xF076	0x7E57	# <CJK>
+0xF077	0x7E53	# <CJK>
+0xF078	0x7FB5	# <CJK>
+0xF079	0x7FB3	# <CJK>
+0xF07A	0x7FF7	# <CJK>
+0xF07B	0x7FF8	# <CJK>
+0xF07C	0x8075	# <CJK>
+0xF07D	0x81D1	# <CJK>
+0xF07E	0x81D2	# <CJK>
+0xF0A1	0x81D0	# <CJK>
+0xF0A2	0x825F	# <CJK>
+0xF0A3	0x825E	# <CJK>
+0xF0A4	0x85B4	# <CJK>
+0xF0A5	0x85C6	# <CJK>
+0xF0A6	0x85C0	# <CJK>
+0xF0A7	0x85C3	# <CJK>
+0xF0A8	0x85C2	# <CJK>
+0xF0A9	0x85B3	# <CJK>
+0xF0AA	0x85B5	# <CJK>
+0xF0AB	0x85BD	# <CJK>
+0xF0AC	0x85C7	# <CJK>
+0xF0AD	0x85C4	# <CJK>
+0xF0AE	0x85BF	# <CJK>
+0xF0AF	0x85CB	# <CJK>
+0xF0B0	0x85CE	# <CJK>
+0xF0B1	0x85C8	# <CJK>
+0xF0B2	0x85C5	# <CJK>
+0xF0B3	0x85B1	# <CJK>
+0xF0B4	0x85B6	# <CJK>
+0xF0B5	0x85D2	# <CJK>
+0xF0B6	0x8624	# <CJK>
+0xF0B7	0x85B8	# <CJK>
+0xF0B8	0x85B7	# <CJK>
+0xF0B9	0x85BE	# <CJK>
+0xF0BA	0x8669	# <CJK>
+0xF0BB	0x87E7	# <CJK>
+0xF0BC	0x87E6	# <CJK>
+0xF0BD	0x87E2	# <CJK>
+0xF0BE	0x87DB	# <CJK>
+0xF0BF	0x87EB	# <CJK>
+0xF0C0	0x87EA	# <CJK>
+0xF0C1	0x87E5	# <CJK>
+0xF0C2	0x87DF	# <CJK>
+0xF0C3	0x87F3	# <CJK>
+0xF0C4	0x87E4	# <CJK>
+0xF0C5	0x87D4	# <CJK>
+0xF0C6	0x87DC	# <CJK>
+0xF0C7	0x87D3	# <CJK>
+0xF0C8	0x87ED	# <CJK>
+0xF0C9	0x87D8	# <CJK>
+0xF0CA	0x87E3	# <CJK>
+0xF0CB	0x87A4	# <CJK>
+0xF0CC	0x87D7	# <CJK>
+0xF0CD	0x87D9	# <CJK>
+0xF0CE	0x8801	# <CJK>
+0xF0CF	0x87F4	# <CJK>
+0xF0D0	0x87E8	# <CJK>
+0xF0D1	0x87DD	# <CJK>
+0xF0D2	0x8953	# <CJK>
+0xF0D3	0x894B	# <CJK>
+0xF0D4	0x894F	# <CJK>
+0xF0D5	0x894C	# <CJK>
+0xF0D6	0x8946	# <CJK>
+0xF0D7	0x8950	# <CJK>
+0xF0D8	0x8951	# <CJK>
+0xF0D9	0x8949	# <CJK>
+0xF0DA	0x8B2A	# <CJK>
+0xF0DB	0x8B27	# <CJK>
+0xF0DC	0x8B23	# <CJK>
+0xF0DD	0x8B33	# <CJK>
+0xF0DE	0x8B30	# <CJK>
+0xF0DF	0x8B35	# <CJK>
+0xF0E0	0x8B47	# <CJK>
+0xF0E1	0x8B2F	# <CJK>
+0xF0E2	0x8B3C	# <CJK>
+0xF0E3	0x8B3E	# <CJK>
+0xF0E4	0x8B31	# <CJK>
+0xF0E5	0x8B25	# <CJK>
+0xF0E6	0x8B37	# <CJK>
+0xF0E7	0x8B26	# <CJK>
+0xF0E8	0x8B36	# <CJK>
+0xF0E9	0x8B2E	# <CJK>
+0xF0EA	0x8B24	# <CJK>
+0xF0EB	0x8B3B	# <CJK>
+0xF0EC	0x8B3D	# <CJK>
+0xF0ED	0x8B3A	# <CJK>
+0xF0EE	0x8C42	# <CJK>
+0xF0EF	0x8C75	# <CJK>
+0xF0F0	0x8C99	# <CJK>
+0xF0F1	0x8C98	# <CJK>
+0xF0F2	0x8C97	# <CJK>
+0xF0F3	0x8CFE	# <CJK>
+0xF0F4	0x8D04	# <CJK>
+0xF0F5	0x8D02	# <CJK>
+0xF0F6	0x8D00	# <CJK>
+0xF0F7	0x8E5C	# <CJK>
+0xF0F8	0x8E62	# <CJK>
+0xF0F9	0x8E60	# <CJK>
+0xF0FA	0x8E57	# <CJK>
+0xF0FB	0x8E56	# <CJK>
+0xF0FC	0x8E5E	# <CJK>
+0xF0FD	0x8E65	# <CJK>
+0xF0FE	0x8E67	# <CJK>
+0xF140	0x8E5B	# <CJK>
+0xF141	0x8E5A	# <CJK>
+0xF142	0x8E61	# <CJK>
+0xF143	0x8E5D	# <CJK>
+0xF144	0x8E69	# <CJK>
+0xF145	0x8E54	# <CJK>
+0xF146	0x8F46	# <CJK>
+0xF147	0x8F47	# <CJK>
+0xF148	0x8F48	# <CJK>
+0xF149	0x8F4B	# <CJK>
+0xF14A	0x9128	# <CJK>
+0xF14B	0x913A	# <CJK>
+0xF14C	0x913B	# <CJK>
+0xF14D	0x913E	# <CJK>
+0xF14E	0x91A8	# <CJK>
+0xF14F	0x91A5	# <CJK>
+0xF150	0x91A7	# <CJK>
+0xF151	0x91AF	# <CJK>
+0xF152	0x91AA	# <CJK>
+0xF153	0x93B5	# <CJK>
+0xF154	0x938C	# <CJK>
+0xF155	0x9392	# <CJK>
+0xF156	0x93B7	# <CJK>
+0xF157	0x939B	# <CJK>
+0xF158	0x939D	# <CJK>
+0xF159	0x9389	# <CJK>
+0xF15A	0x93A7	# <CJK>
+0xF15B	0x938E	# <CJK>
+0xF15C	0x93AA	# <CJK>
+0xF15D	0x939E	# <CJK>
+0xF15E	0x93A6	# <CJK>
+0xF15F	0x9395	# <CJK>
+0xF160	0x9388	# <CJK>
+0xF161	0x9399	# <CJK>
+0xF162	0x939F	# <CJK>
+0xF163	0x938D	# <CJK>
+0xF164	0x93B1	# <CJK>
+0xF165	0x9391	# <CJK>
+0xF166	0x93B2	# <CJK>
+0xF167	0x93A4	# <CJK>
+0xF168	0x93A8	# <CJK>
+0xF169	0x93B4	# <CJK>
+0xF16A	0x93A3	# <CJK>
+0xF16B	0x93A5	# <CJK>
+0xF16C	0x95D2	# <CJK>
+0xF16D	0x95D3	# <CJK>
+0xF16E	0x95D1	# <CJK>
+0xF16F	0x96B3	# <CJK>
+0xF170	0x96D7	# <CJK>
+0xF171	0x96DA	# <CJK>
+0xF172	0x5DC2	# <CJK>
+0xF173	0x96DF	# <CJK>
+0xF174	0x96D8	# <CJK>
+0xF175	0x96DD	# <CJK>
+0xF176	0x9723	# <CJK>
+0xF177	0x9722	# <CJK>
+0xF178	0x9725	# <CJK>
+0xF179	0x97AC	# <CJK>
+0xF17A	0x97AE	# <CJK>
+0xF17B	0x97A8	# <CJK>
+0xF17C	0x97AB	# <CJK>
+0xF17D	0x97A4	# <CJK>
+0xF17E	0x97AA	# <CJK>
+0xF1A1	0x97A2	# <CJK>
+0xF1A2	0x97A5	# <CJK>
+0xF1A3	0x97D7	# <CJK>
+0xF1A4	0x97D9	# <CJK>
+0xF1A5	0x97D6	# <CJK>
+0xF1A6	0x97D8	# <CJK>
+0xF1A7	0x97FA	# <CJK>
+0xF1A8	0x9850	# <CJK>
+0xF1A9	0x9851	# <CJK>
+0xF1AA	0x9852	# <CJK>
+0xF1AB	0x98B8	# <CJK>
+0xF1AC	0x9941	# <CJK>
+0xF1AD	0x993C	# <CJK>
+0xF1AE	0x993A	# <CJK>
+0xF1AF	0x9A0F	# <CJK>
+0xF1B0	0x9A0B	# <CJK>
+0xF1B1	0x9A09	# <CJK>
+0xF1B2	0x9A0D	# <CJK>
+0xF1B3	0x9A04	# <CJK>
+0xF1B4	0x9A11	# <CJK>
+0xF1B5	0x9A0A	# <CJK>
+0xF1B6	0x9A05	# <CJK>
+0xF1B7	0x9A07	# <CJK>
+0xF1B8	0x9A06	# <CJK>
+0xF1B9	0x9AC0	# <CJK>
+0xF1BA	0x9ADC	# <CJK>
+0xF1BB	0x9B08	# <CJK>
+0xF1BC	0x9B04	# <CJK>
+0xF1BD	0x9B05	# <CJK>
+0xF1BE	0x9B29	# <CJK>
+0xF1BF	0x9B35	# <CJK>
+0xF1C0	0x9B4A	# <CJK>
+0xF1C1	0x9B4C	# <CJK>
+0xF1C2	0x9B4B	# <CJK>
+0xF1C3	0x9BC7	# <CJK>
+0xF1C4	0x9BC6	# <CJK>
+0xF1C5	0x9BC3	# <CJK>
+0xF1C6	0x9BBF	# <CJK>
+0xF1C7	0x9BC1	# <CJK>
+0xF1C8	0x9BB5	# <CJK>
+0xF1C9	0x9BB8	# <CJK>
+0xF1CA	0x9BD3	# <CJK>
+0xF1CB	0x9BB6	# <CJK>
+0xF1CC	0x9BC4	# <CJK>
+0xF1CD	0x9BB9	# <CJK>
+0xF1CE	0x9BBD	# <CJK>
+0xF1CF	0x9D5C	# <CJK>
+0xF1D0	0x9D53	# <CJK>
+0xF1D1	0x9D4F	# <CJK>
+0xF1D2	0x9D4A	# <CJK>
+0xF1D3	0x9D5B	# <CJK>
+0xF1D4	0x9D4B	# <CJK>
+0xF1D5	0x9D59	# <CJK>
+0xF1D6	0x9D56	# <CJK>
+0xF1D7	0x9D4C	# <CJK>
+0xF1D8	0x9D57	# <CJK>
+0xF1D9	0x9D52	# <CJK>
+0xF1DA	0x9D54	# <CJK>
+0xF1DB	0x9D5F	# <CJK>
+0xF1DC	0x9D58	# <CJK>
+0xF1DD	0x9D5A	# <CJK>
+0xF1DE	0x9E8E	# <CJK>
+0xF1DF	0x9E8C	# <CJK>
+0xF1E0	0x9EDF	# <CJK>
+0xF1E1	0x9F01	# <CJK>
+0xF1E2	0x9F00	# <CJK>
+0xF1E3	0x9F16	# <CJK>
+0xF1E4	0x9F25	# <CJK>
+0xF1E5	0x9F2B	# <CJK>
+0xF1E6	0x9F2A	# <CJK>
+0xF1E7	0x9F29	# <CJK>
+0xF1E8	0x9F28	# <CJK>
+0xF1E9	0x9F4C	# <CJK>
+0xF1EA	0x9F55	# <CJK>
+0xF1EB	0x5134	# <CJK>
+0xF1EC	0x5135	# <CJK>
+0xF1ED	0x5296	# <CJK>
+0xF1EE	0x52F7	# <CJK>
+0xF1EF	0x53B4	# <CJK>
+0xF1F0	0x56AB	# <CJK>
+0xF1F1	0x56AD	# <CJK>
+0xF1F2	0x56A6	# <CJK>
+0xF1F3	0x56A7	# <CJK>
+0xF1F4	0x56AA	# <CJK>
+0xF1F5	0x56AC	# <CJK>
+0xF1F6	0x58DA	# <CJK>
+0xF1F7	0x58DD	# <CJK>
+0xF1F8	0x58DB	# <CJK>
+0xF1F9	0x5912	# <CJK>
+0xF1FA	0x5B3D	# <CJK>
+0xF1FB	0x5B3E	# <CJK>
+0xF1FC	0x5B3F	# <CJK>
+0xF1FD	0x5DC3	# <CJK>
+0xF1FE	0x5E70	# <CJK>
+0xF240	0x5FBF	# <CJK>
+0xF241	0x61FB	# <CJK>
+0xF242	0x6507	# <CJK>
+0xF243	0x6510	# <CJK>
+0xF244	0x650D	# <CJK>
+0xF245	0x6509	# <CJK>
+0xF246	0x650C	# <CJK>
+0xF247	0x650E	# <CJK>
+0xF248	0x6584	# <CJK>
+0xF249	0x65DE	# <CJK>
+0xF24A	0x65DD	# <CJK>
+0xF24B	0x66DE	# <CJK>
+0xF24C	0x6AE7	# <CJK>
+0xF24D	0x6AE0	# <CJK>
+0xF24E	0x6ACC	# <CJK>
+0xF24F	0x6AD1	# <CJK>
+0xF250	0x6AD9	# <CJK>
+0xF251	0x6ACB	# <CJK>
+0xF252	0x6ADF	# <CJK>
+0xF253	0x6ADC	# <CJK>
+0xF254	0x6AD0	# <CJK>
+0xF255	0x6AEB	# <CJK>
+0xF256	0x6ACF	# <CJK>
+0xF257	0x6ACD	# <CJK>
+0xF258	0x6ADE	# <CJK>
+0xF259	0x6B60	# <CJK>
+0xF25A	0x6BB0	# <CJK>
+0xF25B	0x6C0C	# <CJK>
+0xF25C	0x7019	# <CJK>
+0xF25D	0x7027	# <CJK>
+0xF25E	0x7020	# <CJK>
+0xF25F	0x7016	# <CJK>
+0xF260	0x702B	# <CJK>
+0xF261	0x7021	# <CJK>
+0xF262	0x7022	# <CJK>
+0xF263	0x7023	# <CJK>
+0xF264	0x7029	# <CJK>
+0xF265	0x7017	# <CJK>
+0xF266	0x7024	# <CJK>
+0xF267	0x701C	# <CJK>
+0xF268	0x702A	# <CJK>
+0xF269	0x720C	# <CJK>
+0xF26A	0x720A	# <CJK>
+0xF26B	0x7207	# <CJK>
+0xF26C	0x7202	# <CJK>
+0xF26D	0x7205	# <CJK>
+0xF26E	0x72A5	# <CJK>
+0xF26F	0x72A6	# <CJK>
+0xF270	0x72A4	# <CJK>
+0xF271	0x72A3	# <CJK>
+0xF272	0x72A1	# <CJK>
+0xF273	0x74CB	# <CJK>
+0xF274	0x74C5	# <CJK>
+0xF275	0x74B7	# <CJK>
+0xF276	0x74C3	# <CJK>
+0xF277	0x7516	# <CJK>
+0xF278	0x7660	# <CJK>
+0xF279	0x77C9	# <CJK>
+0xF27A	0x77CA	# <CJK>
+0xF27B	0x77C4	# <CJK>
+0xF27C	0x77F1	# <CJK>
+0xF27D	0x791D	# <CJK>
+0xF27E	0x791B	# <CJK>
+0xF2A1	0x7921	# <CJK>
+0xF2A2	0x791C	# <CJK>
+0xF2A3	0x7917	# <CJK>
+0xF2A4	0x791E	# <CJK>
+0xF2A5	0x79B0	# <CJK>
+0xF2A6	0x7A67	# <CJK>
+0xF2A7	0x7A68	# <CJK>
+0xF2A8	0x7C33	# <CJK>
+0xF2A9	0x7C3C	# <CJK>
+0xF2AA	0x7C39	# <CJK>
+0xF2AB	0x7C2C	# <CJK>
+0xF2AC	0x7C3B	# <CJK>
+0xF2AD	0x7CEC	# <CJK>
+0xF2AE	0x7CEA	# <CJK>
+0xF2AF	0x7E76	# <CJK>
+0xF2B0	0x7E75	# <CJK>
+0xF2B1	0x7E78	# <CJK>
+0xF2B2	0x7E70	# <CJK>
+0xF2B3	0x7E77	# <CJK>
+0xF2B4	0x7E6F	# <CJK>
+0xF2B5	0x7E7A	# <CJK>
+0xF2B6	0x7E72	# <CJK>
+0xF2B7	0x7E74	# <CJK>
+0xF2B8	0x7E68	# <CJK>
+0xF2B9	0x7F4B	# <CJK>
+0xF2BA	0x7F4A	# <CJK>
+0xF2BB	0x7F83	# <CJK>
+0xF2BC	0x7F86	# <CJK>
+0xF2BD	0x7FB7	# <CJK>
+0xF2BE	0x7FFD	# <CJK>
+0xF2BF	0x7FFE	# <CJK>
+0xF2C0	0x8078	# <CJK>
+0xF2C1	0x81D7	# <CJK>
+0xF2C2	0x81D5	# <CJK>
+0xF2C3	0x8264	# <CJK>
+0xF2C4	0x8261	# <CJK>
+0xF2C5	0x8263	# <CJK>
+0xF2C6	0x85EB	# <CJK>
+0xF2C7	0x85F1	# <CJK>
+0xF2C8	0x85ED	# <CJK>
+0xF2C9	0x85D9	# <CJK>
+0xF2CA	0x85E1	# <CJK>
+0xF2CB	0x85E8	# <CJK>
+0xF2CC	0x85DA	# <CJK>
+0xF2CD	0x85D7	# <CJK>
+0xF2CE	0x85EC	# <CJK>
+0xF2CF	0x85F2	# <CJK>
+0xF2D0	0x85F8	# <CJK>
+0xF2D1	0x85D8	# <CJK>
+0xF2D2	0x85DF	# <CJK>
+0xF2D3	0x85E3	# <CJK>
+0xF2D4	0x85DC	# <CJK>
+0xF2D5	0x85D1	# <CJK>
+0xF2D6	0x85F0	# <CJK>
+0xF2D7	0x85E6	# <CJK>
+0xF2D8	0x85EF	# <CJK>
+0xF2D9	0x85DE	# <CJK>
+0xF2DA	0x85E2	# <CJK>
+0xF2DB	0x8800	# <CJK>
+0xF2DC	0x87FA	# <CJK>
+0xF2DD	0x8803	# <CJK>
+0xF2DE	0x87F6	# <CJK>
+0xF2DF	0x87F7	# <CJK>
+0xF2E0	0x8809	# <CJK>
+0xF2E1	0x880C	# <CJK>
+0xF2E2	0x880B	# <CJK>
+0xF2E3	0x8806	# <CJK>
+0xF2E4	0x87FC	# <CJK>
+0xF2E5	0x8808	# <CJK>
+0xF2E6	0x87FF	# <CJK>
+0xF2E7	0x880A	# <CJK>
+0xF2E8	0x8802	# <CJK>
+0xF2E9	0x8962	# <CJK>
+0xF2EA	0x895A	# <CJK>
+0xF2EB	0x895B	# <CJK>
+0xF2EC	0x8957	# <CJK>
+0xF2ED	0x8961	# <CJK>
+0xF2EE	0x895C	# <CJK>
+0xF2EF	0x8958	# <CJK>
+0xF2F0	0x895D	# <CJK>
+0xF2F1	0x8959	# <CJK>
+0xF2F2	0x8988	# <CJK>
+0xF2F3	0x89B7	# <CJK>
+0xF2F4	0x89B6	# <CJK>
+0xF2F5	0x89F6	# <CJK>
+0xF2F6	0x8B50	# <CJK>
+0xF2F7	0x8B48	# <CJK>
+0xF2F8	0x8B4A	# <CJK>
+0xF2F9	0x8B40	# <CJK>
+0xF2FA	0x8B53	# <CJK>
+0xF2FB	0x8B56	# <CJK>
+0xF2FC	0x8B54	# <CJK>
+0xF2FD	0x8B4B	# <CJK>
+0xF2FE	0x8B55	# <CJK>
+0xF340	0x8B51	# <CJK>
+0xF341	0x8B42	# <CJK>
+0xF342	0x8B52	# <CJK>
+0xF343	0x8B57	# <CJK>
+0xF344	0x8C43	# <CJK>
+0xF345	0x8C77	# <CJK>
+0xF346	0x8C76	# <CJK>
+0xF347	0x8C9A	# <CJK>
+0xF348	0x8D06	# <CJK>
+0xF349	0x8D07	# <CJK>
+0xF34A	0x8D09	# <CJK>
+0xF34B	0x8DAC	# <CJK>
+0xF34C	0x8DAA	# <CJK>
+0xF34D	0x8DAD	# <CJK>
+0xF34E	0x8DAB	# <CJK>
+0xF34F	0x8E6D	# <CJK>
+0xF350	0x8E78	# <CJK>
+0xF351	0x8E73	# <CJK>
+0xF352	0x8E6A	# <CJK>
+0xF353	0x8E6F	# <CJK>
+0xF354	0x8E7B	# <CJK>
+0xF355	0x8EC2	# <CJK>
+0xF356	0x8F52	# <CJK>
+0xF357	0x8F51	# <CJK>
+0xF358	0x8F4F	# <CJK>
+0xF359	0x8F50	# <CJK>
+0xF35A	0x8F53	# <CJK>
+0xF35B	0x8FB4	# <CJK>
+0xF35C	0x9140	# <CJK>
+0xF35D	0x913F	# <CJK>
+0xF35E	0x91B0	# <CJK>
+0xF35F	0x91AD	# <CJK>
+0xF360	0x93DE	# <CJK>
+0xF361	0x93C7	# <CJK>
+0xF362	0x93CF	# <CJK>
+0xF363	0x93C2	# <CJK>
+0xF364	0x93DA	# <CJK>
+0xF365	0x93D0	# <CJK>
+0xF366	0x93F9	# <CJK>
+0xF367	0x93EC	# <CJK>
+0xF368	0x93CC	# <CJK>
+0xF369	0x93D9	# <CJK>
+0xF36A	0x93A9	# <CJK>
+0xF36B	0x93E6	# <CJK>
+0xF36C	0x93CA	# <CJK>
+0xF36D	0x93D4	# <CJK>
+0xF36E	0x93EE	# <CJK>
+0xF36F	0x93E3	# <CJK>
+0xF370	0x93D5	# <CJK>
+0xF371	0x93C4	# <CJK>
+0xF372	0x93CE	# <CJK>
+0xF373	0x93C0	# <CJK>
+0xF374	0x93D2	# <CJK>
+0xF375	0x93E7	# <CJK>
+0xF376	0x957D	# <CJK>
+0xF377	0x95DA	# <CJK>
+0xF378	0x95DB	# <CJK>
+0xF379	0x96E1	# <CJK>
+0xF37A	0x9729	# <CJK>
+0xF37B	0x972B	# <CJK>
+0xF37C	0x972C	# <CJK>
+0xF37D	0x9728	# <CJK>
+0xF37E	0x9726	# <CJK>
+0xF3A1	0x97B3	# <CJK>
+0xF3A2	0x97B7	# <CJK>
+0xF3A3	0x97B6	# <CJK>
+0xF3A4	0x97DD	# <CJK>
+0xF3A5	0x97DE	# <CJK>
+0xF3A6	0x97DF	# <CJK>
+0xF3A7	0x985C	# <CJK>
+0xF3A8	0x9859	# <CJK>
+0xF3A9	0x985D	# <CJK>
+0xF3AA	0x9857	# <CJK>
+0xF3AB	0x98BF	# <CJK>
+0xF3AC	0x98BD	# <CJK>
+0xF3AD	0x98BB	# <CJK>
+0xF3AE	0x98BE	# <CJK>
+0xF3AF	0x9948	# <CJK>
+0xF3B0	0x9947	# <CJK>
+0xF3B1	0x9943	# <CJK>
+0xF3B2	0x99A6	# <CJK>
+0xF3B3	0x99A7	# <CJK>
+0xF3B4	0x9A1A	# <CJK>
+0xF3B5	0x9A15	# <CJK>
+0xF3B6	0x9A25	# <CJK>
+0xF3B7	0x9A1D	# <CJK>
+0xF3B8	0x9A24	# <CJK>
+0xF3B9	0x9A1B	# <CJK>
+0xF3BA	0x9A22	# <CJK>
+0xF3BB	0x9A20	# <CJK>
+0xF3BC	0x9A27	# <CJK>
+0xF3BD	0x9A23	# <CJK>
+0xF3BE	0x9A1E	# <CJK>
+0xF3BF	0x9A1C	# <CJK>
+0xF3C0	0x9A14	# <CJK>
+0xF3C1	0x9AC2	# <CJK>
+0xF3C2	0x9B0B	# <CJK>
+0xF3C3	0x9B0A	# <CJK>
+0xF3C4	0x9B0E	# <CJK>
+0xF3C5	0x9B0C	# <CJK>
+0xF3C6	0x9B37	# <CJK>
+0xF3C7	0x9BEA	# <CJK>
+0xF3C8	0x9BEB	# <CJK>
+0xF3C9	0x9BE0	# <CJK>
+0xF3CA	0x9BDE	# <CJK>
+0xF3CB	0x9BE4	# <CJK>
+0xF3CC	0x9BE6	# <CJK>
+0xF3CD	0x9BE2	# <CJK>
+0xF3CE	0x9BF0	# <CJK>
+0xF3CF	0x9BD4	# <CJK>
+0xF3D0	0x9BD7	# <CJK>
+0xF3D1	0x9BEC	# <CJK>
+0xF3D2	0x9BDC	# <CJK>
+0xF3D3	0x9BD9	# <CJK>
+0xF3D4	0x9BE5	# <CJK>
+0xF3D5	0x9BD5	# <CJK>
+0xF3D6	0x9BE1	# <CJK>
+0xF3D7	0x9BDA	# <CJK>
+0xF3D8	0x9D77	# <CJK>
+0xF3D9	0x9D81	# <CJK>
+0xF3DA	0x9D8A	# <CJK>
+0xF3DB	0x9D84	# <CJK>
+0xF3DC	0x9D88	# <CJK>
+0xF3DD	0x9D71	# <CJK>
+0xF3DE	0x9D80	# <CJK>
+0xF3DF	0x9D78	# <CJK>
+0xF3E0	0x9D86	# <CJK>
+0xF3E1	0x9D8B	# <CJK>
+0xF3E2	0x9D8C	# <CJK>
+0xF3E3	0x9D7D	# <CJK>
+0xF3E4	0x9D6B	# <CJK>
+0xF3E5	0x9D74	# <CJK>
+0xF3E6	0x9D75	# <CJK>
+0xF3E7	0x9D70	# <CJK>
+0xF3E8	0x9D69	# <CJK>
+0xF3E9	0x9D85	# <CJK>
+0xF3EA	0x9D73	# <CJK>
+0xF3EB	0x9D7B	# <CJK>
+0xF3EC	0x9D82	# <CJK>
+0xF3ED	0x9D6F	# <CJK>
+0xF3EE	0x9D79	# <CJK>
+0xF3EF	0x9D7F	# <CJK>
+0xF3F0	0x9D87	# <CJK>
+0xF3F1	0x9D68	# <CJK>
+0xF3F2	0x9E94	# <CJK>
+0xF3F3	0x9E91	# <CJK>
+0xF3F4	0x9EC0	# <CJK>
+0xF3F5	0x9EFC	# <CJK>
+0xF3F6	0x9F2D	# <CJK>
+0xF3F7	0x9F40	# <CJK>
+0xF3F8	0x9F41	# <CJK>
+0xF3F9	0x9F4D	# <CJK>
+0xF3FA	0x9F56	# <CJK>
+0xF3FB	0x9F57	# <CJK>
+0xF3FC	0x9F58	# <CJK>
+0xF3FD	0x5337	# <CJK>
+0xF3FE	0x56B2	# <CJK>
+0xF440	0x56B5	# <CJK>
+0xF441	0x56B3	# <CJK>
+0xF442	0x58E3	# <CJK>
+0xF443	0x5B45	# <CJK>
+0xF444	0x5DC6	# <CJK>
+0xF445	0x5DC7	# <CJK>
+0xF446	0x5EEE	# <CJK>
+0xF447	0x5EEF	# <CJK>
+0xF448	0x5FC0	# <CJK>
+0xF449	0x5FC1	# <CJK>
+0xF44A	0x61F9	# <CJK>
+0xF44B	0x6517	# <CJK>
+0xF44C	0x6516	# <CJK>
+0xF44D	0x6515	# <CJK>
+0xF44E	0x6513	# <CJK>
+0xF44F	0x65DF	# <CJK>
+0xF450	0x66E8	# <CJK>
+0xF451	0x66E3	# <CJK>
+0xF452	0x66E4	# <CJK>
+0xF453	0x6AF3	# <CJK>
+0xF454	0x6AF0	# <CJK>
+0xF455	0x6AEA	# <CJK>
+0xF456	0x6AE8	# <CJK>
+0xF457	0x6AF9	# <CJK>
+0xF458	0x6AF1	# <CJK>
+0xF459	0x6AEE	# <CJK>
+0xF45A	0x6AEF	# <CJK>
+0xF45B	0x703C	# <CJK>
+0xF45C	0x7035	# <CJK>
+0xF45D	0x702F	# <CJK>
+0xF45E	0x7037	# <CJK>
+0xF45F	0x7034	# <CJK>
+0xF460	0x7031	# <CJK>
+0xF461	0x7042	# <CJK>
+0xF462	0x7038	# <CJK>
+0xF463	0x703F	# <CJK>
+0xF464	0x703A	# <CJK>
+0xF465	0x7039	# <CJK>
+0xF466	0x7040	# <CJK>
+0xF467	0x703B	# <CJK>
+0xF468	0x7033	# <CJK>
+0xF469	0x7041	# <CJK>
+0xF46A	0x7213	# <CJK>
+0xF46B	0x7214	# <CJK>
+0xF46C	0x72A8	# <CJK>
+0xF46D	0x737D	# <CJK>
+0xF46E	0x737C	# <CJK>
+0xF46F	0x74BA	# <CJK>
+0xF470	0x76AB	# <CJK>
+0xF471	0x76AA	# <CJK>
+0xF472	0x76BE	# <CJK>
+0xF473	0x76ED	# <CJK>
+0xF474	0x77CC	# <CJK>
+0xF475	0x77CE	# <CJK>
+0xF476	0x77CF	# <CJK>
+0xF477	0x77CD	# <CJK>
+0xF478	0x77F2	# <CJK>
+0xF479	0x7925	# <CJK>
+0xF47A	0x7923	# <CJK>
+0xF47B	0x7927	# <CJK>
+0xF47C	0x7928	# <CJK>
+0xF47D	0x7924	# <CJK>
+0xF47E	0x7929	# <CJK>
+0xF4A1	0x79B2	# <CJK>
+0xF4A2	0x7A6E	# <CJK>
+0xF4A3	0x7A6C	# <CJK>
+0xF4A4	0x7A6D	# <CJK>
+0xF4A5	0x7AF7	# <CJK>
+0xF4A6	0x7C49	# <CJK>
+0xF4A7	0x7C48	# <CJK>
+0xF4A8	0x7C4A	# <CJK>
+0xF4A9	0x7C47	# <CJK>
+0xF4AA	0x7C45	# <CJK>
+0xF4AB	0x7CEE	# <CJK>
+0xF4AC	0x7E7B	# <CJK>
+0xF4AD	0x7E7E	# <CJK>
+0xF4AE	0x7E81	# <CJK>
+0xF4AF	0x7E80	# <CJK>
+0xF4B0	0x7FBA	# <CJK>
+0xF4B1	0x7FFF	# <CJK>
+0xF4B2	0x8079	# <CJK>
+0xF4B3	0x81DB	# <CJK>
+0xF4B4	0x81D9	# <CJK>
+0xF4B5	0x820B	# <CJK>
+0xF4B6	0x8268	# <CJK>
+0xF4B7	0x8269	# <CJK>
+0xF4B8	0x8622	# <CJK>
+0xF4B9	0x85FF	# <CJK>
+0xF4BA	0x8601	# <CJK>
+0xF4BB	0x85FE	# <CJK>
+0xF4BC	0x861B	# <CJK>
+0xF4BD	0x8600	# <CJK>
+0xF4BE	0x85F6	# <CJK>
+0xF4BF	0x8604	# <CJK>
+0xF4C0	0x8609	# <CJK>
+0xF4C1	0x8605	# <CJK>
+0xF4C2	0x860C	# <CJK>
+0xF4C3	0x85FD	# <CJK>
+0xF4C4	0x8819	# <CJK>
+0xF4C5	0x8810	# <CJK>
+0xF4C6	0x8811	# <CJK>
+0xF4C7	0x8817	# <CJK>
+0xF4C8	0x8813	# <CJK>
+0xF4C9	0x8816	# <CJK>
+0xF4CA	0x8963	# <CJK>
+0xF4CB	0x8966	# <CJK>
+0xF4CC	0x89B9	# <CJK>
+0xF4CD	0x89F7	# <CJK>
+0xF4CE	0x8B60	# <CJK>
+0xF4CF	0x8B6A	# <CJK>
+0xF4D0	0x8B5D	# <CJK>
+0xF4D1	0x8B68	# <CJK>
+0xF4D2	0x8B63	# <CJK>
+0xF4D3	0x8B65	# <CJK>
+0xF4D4	0x8B67	# <CJK>
+0xF4D5	0x8B6D	# <CJK>
+0xF4D6	0x8DAE	# <CJK>
+0xF4D7	0x8E86	# <CJK>
+0xF4D8	0x8E88	# <CJK>
+0xF4D9	0x8E84	# <CJK>
+0xF4DA	0x8F59	# <CJK>
+0xF4DB	0x8F56	# <CJK>
+0xF4DC	0x8F57	# <CJK>
+0xF4DD	0x8F55	# <CJK>
+0xF4DE	0x8F58	# <CJK>
+0xF4DF	0x8F5A	# <CJK>
+0xF4E0	0x908D	# <CJK>
+0xF4E1	0x9143	# <CJK>
+0xF4E2	0x9141	# <CJK>
+0xF4E3	0x91B7	# <CJK>
+0xF4E4	0x91B5	# <CJK>
+0xF4E5	0x91B2	# <CJK>
+0xF4E6	0x91B3	# <CJK>
+0xF4E7	0x940B	# <CJK>
+0xF4E8	0x9413	# <CJK>
+0xF4E9	0x93FB	# <CJK>
+0xF4EA	0x9420	# <CJK>
+0xF4EB	0x940F	# <CJK>
+0xF4EC	0x9414	# <CJK>
+0xF4ED	0x93FE	# <CJK>
+0xF4EE	0x9415	# <CJK>
+0xF4EF	0x9410	# <CJK>
+0xF4F0	0x9428	# <CJK>
+0xF4F1	0x9419	# <CJK>
+0xF4F2	0x940D	# <CJK>
+0xF4F3	0x93F5	# <CJK>
+0xF4F4	0x9400	# <CJK>
+0xF4F5	0x93F7	# <CJK>
+0xF4F6	0x9407	# <CJK>
+0xF4F7	0x940E	# <CJK>
+0xF4F8	0x9416	# <CJK>
+0xF4F9	0x9412	# <CJK>
+0xF4FA	0x93FA	# <CJK>
+0xF4FB	0x9409	# <CJK>
+0xF4FC	0x93F8	# <CJK>
+0xF4FD	0x940A	# <CJK>
+0xF4FE	0x93FF	# <CJK>
+0xF540	0x93FC	# <CJK>
+0xF541	0x940C	# <CJK>
+0xF542	0x93F6	# <CJK>
+0xF543	0x9411	# <CJK>
+0xF544	0x9406	# <CJK>
+0xF545	0x95DE	# <CJK>
+0xF546	0x95E0	# <CJK>
+0xF547	0x95DF	# <CJK>
+0xF548	0x972E	# <CJK>
+0xF549	0x972F	# <CJK>
+0xF54A	0x97B9	# <CJK>
+0xF54B	0x97BB	# <CJK>
+0xF54C	0x97FD	# <CJK>
+0xF54D	0x97FE	# <CJK>
+0xF54E	0x9860	# <CJK>
+0xF54F	0x9862	# <CJK>
+0xF550	0x9863	# <CJK>
+0xF551	0x985F	# <CJK>
+0xF552	0x98C1	# <CJK>
+0xF553	0x98C2	# <CJK>
+0xF554	0x9950	# <CJK>
+0xF555	0x994E	# <CJK>
+0xF556	0x9959	# <CJK>
+0xF557	0x994C	# <CJK>
+0xF558	0x994B	# <CJK>
+0xF559	0x9953	# <CJK>
+0xF55A	0x9A32	# <CJK>
+0xF55B	0x9A34	# <CJK>
+0xF55C	0x9A31	# <CJK>
+0xF55D	0x9A2C	# <CJK>
+0xF55E	0x9A2A	# <CJK>
+0xF55F	0x9A36	# <CJK>
+0xF560	0x9A29	# <CJK>
+0xF561	0x9A2E	# <CJK>
+0xF562	0x9A38	# <CJK>
+0xF563	0x9A2D	# <CJK>
+0xF564	0x9AC7	# <CJK>
+0xF565	0x9ACA	# <CJK>
+0xF566	0x9AC6	# <CJK>
+0xF567	0x9B10	# <CJK>
+0xF568	0x9B12	# <CJK>
+0xF569	0x9B11	# <CJK>
+0xF56A	0x9C0B	# <CJK>
+0xF56B	0x9C08	# <CJK>
+0xF56C	0x9BF7	# <CJK>
+0xF56D	0x9C05	# <CJK>
+0xF56E	0x9C12	# <CJK>
+0xF56F	0x9BF8	# <CJK>
+0xF570	0x9C40	# <CJK>
+0xF571	0x9C07	# <CJK>
+0xF572	0x9C0E	# <CJK>
+0xF573	0x9C06	# <CJK>
+0xF574	0x9C17	# <CJK>
+0xF575	0x9C14	# <CJK>
+0xF576	0x9C09	# <CJK>
+0xF577	0x9D9F	# <CJK>
+0xF578	0x9D99	# <CJK>
+0xF579	0x9DA4	# <CJK>
+0xF57A	0x9D9D	# <CJK>
+0xF57B	0x9D92	# <CJK>
+0xF57C	0x9D98	# <CJK>
+0xF57D	0x9D90	# <CJK>
+0xF57E	0x9D9B	# <CJK>
+0xF5A1	0x9DA0	# <CJK>
+0xF5A2	0x9D94	# <CJK>
+0xF5A3	0x9D9C	# <CJK>
+0xF5A4	0x9DAA	# <CJK>
+0xF5A5	0x9D97	# <CJK>
+0xF5A6	0x9DA1	# <CJK>
+0xF5A7	0x9D9A	# <CJK>
+0xF5A8	0x9DA2	# <CJK>
+0xF5A9	0x9DA8	# <CJK>
+0xF5AA	0x9D9E	# <CJK>
+0xF5AB	0x9DA3	# <CJK>
+0xF5AC	0x9DBF	# <CJK>
+0xF5AD	0x9DA9	# <CJK>
+0xF5AE	0x9D96	# <CJK>
+0xF5AF	0x9DA6	# <CJK>
+0xF5B0	0x9DA7	# <CJK>
+0xF5B1	0x9E99	# <CJK>
+0xF5B2	0x9E9B	# <CJK>
+0xF5B3	0x9E9A	# <CJK>
+0xF5B4	0x9EE5	# <CJK>
+0xF5B5	0x9EE4	# <CJK>
+0xF5B6	0x9EE7	# <CJK>
+0xF5B7	0x9EE6	# <CJK>
+0xF5B8	0x9F30	# <CJK>
+0xF5B9	0x9F2E	# <CJK>
+0xF5BA	0x9F5B	# <CJK>
+0xF5BB	0x9F60	# <CJK>
+0xF5BC	0x9F5E	# <CJK>
+0xF5BD	0x9F5D	# <CJK>
+0xF5BE	0x9F59	# <CJK>
+0xF5BF	0x9F91	# <CJK>
+0xF5C0	0x513A	# <CJK>
+0xF5C1	0x5139	# <CJK>
+0xF5C2	0x5298	# <CJK>
+0xF5C3	0x5297	# <CJK>
+0xF5C4	0x56C3	# <CJK>
+0xF5C5	0x56BD	# <CJK>
+0xF5C6	0x56BE	# <CJK>
+0xF5C7	0x5B48	# <CJK>
+0xF5C8	0x5B47	# <CJK>
+0xF5C9	0x5DCB	# <CJK>
+0xF5CA	0x5DCF	# <CJK>
+0xF5CB	0x5EF1	# <CJK>
+0xF5CC	0x61FD	# <CJK>
+0xF5CD	0x651B	# <CJK>
+0xF5CE	0x6B02	# <CJK>
+0xF5CF	0x6AFC	# <CJK>
+0xF5D0	0x6B03	# <CJK>
+0xF5D1	0x6AF8	# <CJK>
+0xF5D2	0x6B00	# <CJK>
+0xF5D3	0x7043	# <CJK>
+0xF5D4	0x7044	# <CJK>
+0xF5D5	0x704A	# <CJK>
+0xF5D6	0x7048	# <CJK>
+0xF5D7	0x7049	# <CJK>
+0xF5D8	0x7045	# <CJK>
+0xF5D9	0x7046	# <CJK>
+0xF5DA	0x721D	# <CJK>
+0xF5DB	0x721A	# <CJK>
+0xF5DC	0x7219	# <CJK>
+0xF5DD	0x737E	# <CJK>
+0xF5DE	0x7517	# <CJK>
+0xF5DF	0x766A	# <CJK>
+0xF5E0	0x77D0	# <CJK>
+0xF5E1	0x792D	# <CJK>
+0xF5E2	0x7931	# <CJK>
+0xF5E3	0x792F	# <CJK>
+0xF5E4	0x7C54	# <CJK>
+0xF5E5	0x7C53	# <CJK>
+0xF5E6	0x7CF2	# <CJK>
+0xF5E7	0x7E8A	# <CJK>
+0xF5E8	0x7E87	# <CJK>
+0xF5E9	0x7E88	# <CJK>
+0xF5EA	0x7E8B	# <CJK>
+0xF5EB	0x7E86	# <CJK>
+0xF5EC	0x7E8D	# <CJK>
+0xF5ED	0x7F4D	# <CJK>
+0xF5EE	0x7FBB	# <CJK>
+0xF5EF	0x8030	# <CJK>
+0xF5F0	0x81DD	# <CJK>
+0xF5F1	0x8618	# <CJK>
+0xF5F2	0x862A	# <CJK>
+0xF5F3	0x8626	# <CJK>
+0xF5F4	0x861F	# <CJK>
+0xF5F5	0x8623	# <CJK>
+0xF5F6	0x861C	# <CJK>
+0xF5F7	0x8619	# <CJK>
+0xF5F8	0x8627	# <CJK>
+0xF5F9	0x862E	# <CJK>
+0xF5FA	0x8621	# <CJK>
+0xF5FB	0x8620	# <CJK>
+0xF5FC	0x8629	# <CJK>
+0xF5FD	0x861E	# <CJK>
+0xF5FE	0x8625	# <CJK>
+0xF640	0x8829	# <CJK>
+0xF641	0x881D	# <CJK>
+0xF642	0x881B	# <CJK>
+0xF643	0x8820	# <CJK>
+0xF644	0x8824	# <CJK>
+0xF645	0x881C	# <CJK>
+0xF646	0x882B	# <CJK>
+0xF647	0x884A	# <CJK>
+0xF648	0x896D	# <CJK>
+0xF649	0x8969	# <CJK>
+0xF64A	0x896E	# <CJK>
+0xF64B	0x896B	# <CJK>
+0xF64C	0x89FA	# <CJK>
+0xF64D	0x8B79	# <CJK>
+0xF64E	0x8B78	# <CJK>
+0xF64F	0x8B45	# <CJK>
+0xF650	0x8B7A	# <CJK>
+0xF651	0x8B7B	# <CJK>
+0xF652	0x8D10	# <CJK>
+0xF653	0x8D14	# <CJK>
+0xF654	0x8DAF	# <CJK>
+0xF655	0x8E8E	# <CJK>
+0xF656	0x8E8C	# <CJK>
+0xF657	0x8F5E	# <CJK>
+0xF658	0x8F5B	# <CJK>
+0xF659	0x8F5D	# <CJK>
+0xF65A	0x9146	# <CJK>
+0xF65B	0x9144	# <CJK>
+0xF65C	0x9145	# <CJK>
+0xF65D	0x91B9	# <CJK>
+0xF65E	0x943F	# <CJK>
+0xF65F	0x943B	# <CJK>
+0xF660	0x9436	# <CJK>
+0xF661	0x9429	# <CJK>
+0xF662	0x943D	# <CJK>
+0xF663	0x943C	# <CJK>
+0xF664	0x9430	# <CJK>
+0xF665	0x9439	# <CJK>
+0xF666	0x942A	# <CJK>
+0xF667	0x9437	# <CJK>
+0xF668	0x942C	# <CJK>
+0xF669	0x9440	# <CJK>
+0xF66A	0x9431	# <CJK>
+0xF66B	0x95E5	# <CJK>
+0xF66C	0x95E4	# <CJK>
+0xF66D	0x95E3	# <CJK>
+0xF66E	0x9735	# <CJK>
+0xF66F	0x973A	# <CJK>
+0xF670	0x97BF	# <CJK>
+0xF671	0x97E1	# <CJK>
+0xF672	0x9864	# <CJK>
+0xF673	0x98C9	# <CJK>
+0xF674	0x98C6	# <CJK>
+0xF675	0x98C0	# <CJK>
+0xF676	0x9958	# <CJK>
+0xF677	0x9956	# <CJK>
+0xF678	0x9A39	# <CJK>
+0xF679	0x9A3D	# <CJK>
+0xF67A	0x9A46	# <CJK>
+0xF67B	0x9A44	# <CJK>
+0xF67C	0x9A42	# <CJK>
+0xF67D	0x9A41	# <CJK>
+0xF67E	0x9A3A	# <CJK>
+0xF6A1	0x9A3F	# <CJK>
+0xF6A2	0x9ACD	# <CJK>
+0xF6A3	0x9B15	# <CJK>
+0xF6A4	0x9B17	# <CJK>
+0xF6A5	0x9B18	# <CJK>
+0xF6A6	0x9B16	# <CJK>
+0xF6A7	0x9B3A	# <CJK>
+0xF6A8	0x9B52	# <CJK>
+0xF6A9	0x9C2B	# <CJK>
+0xF6AA	0x9C1D	# <CJK>
+0xF6AB	0x9C1C	# <CJK>
+0xF6AC	0x9C2C	# <CJK>
+0xF6AD	0x9C23	# <CJK>
+0xF6AE	0x9C28	# <CJK>
+0xF6AF	0x9C29	# <CJK>
+0xF6B0	0x9C24	# <CJK>
+0xF6B1	0x9C21	# <CJK>
+0xF6B2	0x9DB7	# <CJK>
+0xF6B3	0x9DB6	# <CJK>
+0xF6B4	0x9DBC	# <CJK>
+0xF6B5	0x9DC1	# <CJK>
+0xF6B6	0x9DC7	# <CJK>
+0xF6B7	0x9DCA	# <CJK>
+0xF6B8	0x9DCF	# <CJK>
+0xF6B9	0x9DBE	# <CJK>
+0xF6BA	0x9DC5	# <CJK>
+0xF6BB	0x9DC3	# <CJK>
+0xF6BC	0x9DBB	# <CJK>
+0xF6BD	0x9DB5	# <CJK>
+0xF6BE	0x9DCE	# <CJK>
+0xF6BF	0x9DB9	# <CJK>
+0xF6C0	0x9DBA	# <CJK>
+0xF6C1	0x9DAC	# <CJK>
+0xF6C2	0x9DC8	# <CJK>
+0xF6C3	0x9DB1	# <CJK>
+0xF6C4	0x9DAD	# <CJK>
+0xF6C5	0x9DCC	# <CJK>
+0xF6C6	0x9DB3	# <CJK>
+0xF6C7	0x9DCD	# <CJK>
+0xF6C8	0x9DB2	# <CJK>
+0xF6C9	0x9E7A	# <CJK>
+0xF6CA	0x9E9C	# <CJK>
+0xF6CB	0x9EEB	# <CJK>
+0xF6CC	0x9EEE	# <CJK>
+0xF6CD	0x9EED	# <CJK>
+0xF6CE	0x9F1B	# <CJK>
+0xF6CF	0x9F18	# <CJK>
+0xF6D0	0x9F1A	# <CJK>
+0xF6D1	0x9F31	# <CJK>
+0xF6D2	0x9F4E	# <CJK>
+0xF6D3	0x9F65	# <CJK>
+0xF6D4	0x9F64	# <CJK>
+0xF6D5	0x9F92	# <CJK>
+0xF6D6	0x4EB9	# <CJK>
+0xF6D7	0x56C6	# <CJK>
+0xF6D8	0x56C5	# <CJK>
+0xF6D9	0x56CB	# <CJK>
+0xF6DA	0x5971	# <CJK>
+0xF6DB	0x5B4B	# <CJK>
+0xF6DC	0x5B4C	# <CJK>
+0xF6DD	0x5DD5	# <CJK>
+0xF6DE	0x5DD1	# <CJK>
+0xF6DF	0x5EF2	# <CJK>
+0xF6E0	0x6521	# <CJK>
+0xF6E1	0x6520	# <CJK>
+0xF6E2	0x6526	# <CJK>
+0xF6E3	0x6522	# <CJK>
+0xF6E4	0x6B0B	# <CJK>
+0xF6E5	0x6B08	# <CJK>
+0xF6E6	0x6B09	# <CJK>
+0xF6E7	0x6C0D	# <CJK>
+0xF6E8	0x7055	# <CJK>
+0xF6E9	0x7056	# <CJK>
+0xF6EA	0x7057	# <CJK>
+0xF6EB	0x7052	# <CJK>
+0xF6EC	0x721E	# <CJK>
+0xF6ED	0x721F	# <CJK>
+0xF6EE	0x72A9	# <CJK>
+0xF6EF	0x737F	# <CJK>
+0xF6F0	0x74D8	# <CJK>
+0xF6F1	0x74D5	# <CJK>
+0xF6F2	0x74D9	# <CJK>
+0xF6F3	0x74D7	# <CJK>
+0xF6F4	0x766D	# <CJK>
+0xF6F5	0x76AD	# <CJK>
+0xF6F6	0x7935	# <CJK>
+0xF6F7	0x79B4	# <CJK>
+0xF6F8	0x7A70	# <CJK>
+0xF6F9	0x7A71	# <CJK>
+0xF6FA	0x7C57	# <CJK>
+0xF6FB	0x7C5C	# <CJK>
+0xF6FC	0x7C59	# <CJK>
+0xF6FD	0x7C5B	# <CJK>
+0xF6FE	0x7C5A	# <CJK>
+0xF740	0x7CF4	# <CJK>
+0xF741	0x7CF1	# <CJK>
+0xF742	0x7E91	# <CJK>
+0xF743	0x7F4F	# <CJK>
+0xF744	0x7F87	# <CJK>
+0xF745	0x81DE	# <CJK>
+0xF746	0x826B	# <CJK>
+0xF747	0x8634	# <CJK>
+0xF748	0x8635	# <CJK>
+0xF749	0x8633	# <CJK>
+0xF74A	0x862C	# <CJK>
+0xF74B	0x8632	# <CJK>
+0xF74C	0x8636	# <CJK>
+0xF74D	0x882C	# <CJK>
+0xF74E	0x8828	# <CJK>
+0xF74F	0x8826	# <CJK>
+0xF750	0x882A	# <CJK>
+0xF751	0x8825	# <CJK>
+0xF752	0x8971	# <CJK>
+0xF753	0x89BF	# <CJK>
+0xF754	0x89BE	# <CJK>
+0xF755	0x89FB	# <CJK>
+0xF756	0x8B7E	# <CJK>
+0xF757	0x8B84	# <CJK>
+0xF758	0x8B82	# <CJK>
+0xF759	0x8B86	# <CJK>
+0xF75A	0x8B85	# <CJK>
+0xF75B	0x8B7F	# <CJK>
+0xF75C	0x8D15	# <CJK>
+0xF75D	0x8E95	# <CJK>
+0xF75E	0x8E94	# <CJK>
+0xF75F	0x8E9A	# <CJK>
+0xF760	0x8E92	# <CJK>
+0xF761	0x8E90	# <CJK>
+0xF762	0x8E96	# <CJK>
+0xF763	0x8E97	# <CJK>
+0xF764	0x8F60	# <CJK>
+0xF765	0x8F62	# <CJK>
+0xF766	0x9147	# <CJK>
+0xF767	0x944C	# <CJK>
+0xF768	0x9450	# <CJK>
+0xF769	0x944A	# <CJK>
+0xF76A	0x944B	# <CJK>
+0xF76B	0x944F	# <CJK>
+0xF76C	0x9447	# <CJK>
+0xF76D	0x9445	# <CJK>
+0xF76E	0x9448	# <CJK>
+0xF76F	0x9449	# <CJK>
+0xF770	0x9446	# <CJK>
+0xF771	0x973F	# <CJK>
+0xF772	0x97E3	# <CJK>
+0xF773	0x986A	# <CJK>
+0xF774	0x9869	# <CJK>
+0xF775	0x98CB	# <CJK>
+0xF776	0x9954	# <CJK>
+0xF777	0x995B	# <CJK>
+0xF778	0x9A4E	# <CJK>
+0xF779	0x9A53	# <CJK>
+0xF77A	0x9A54	# <CJK>
+0xF77B	0x9A4C	# <CJK>
+0xF77C	0x9A4F	# <CJK>
+0xF77D	0x9A48	# <CJK>
+0xF77E	0x9A4A	# <CJK>
+0xF7A1	0x9A49	# <CJK>
+0xF7A2	0x9A52	# <CJK>
+0xF7A3	0x9A50	# <CJK>
+0xF7A4	0x9AD0	# <CJK>
+0xF7A5	0x9B19	# <CJK>
+0xF7A6	0x9B2B	# <CJK>
+0xF7A7	0x9B3B	# <CJK>
+0xF7A8	0x9B56	# <CJK>
+0xF7A9	0x9B55	# <CJK>
+0xF7AA	0x9C46	# <CJK>
+0xF7AB	0x9C48	# <CJK>
+0xF7AC	0x9C3F	# <CJK>
+0xF7AD	0x9C44	# <CJK>
+0xF7AE	0x9C39	# <CJK>
+0xF7AF	0x9C33	# <CJK>
+0xF7B0	0x9C41	# <CJK>
+0xF7B1	0x9C3C	# <CJK>
+0xF7B2	0x9C37	# <CJK>
+0xF7B3	0x9C34	# <CJK>
+0xF7B4	0x9C32	# <CJK>
+0xF7B5	0x9C3D	# <CJK>
+0xF7B6	0x9C36	# <CJK>
+0xF7B7	0x9DDB	# <CJK>
+0xF7B8	0x9DD2	# <CJK>
+0xF7B9	0x9DDE	# <CJK>
+0xF7BA	0x9DDA	# <CJK>
+0xF7BB	0x9DCB	# <CJK>
+0xF7BC	0x9DD0	# <CJK>
+0xF7BD	0x9DDC	# <CJK>
+0xF7BE	0x9DD1	# <CJK>
+0xF7BF	0x9DDF	# <CJK>
+0xF7C0	0x9DE9	# <CJK>
+0xF7C1	0x9DD9	# <CJK>
+0xF7C2	0x9DD8	# <CJK>
+0xF7C3	0x9DD6	# <CJK>
+0xF7C4	0x9DF5	# <CJK>
+0xF7C5	0x9DD5	# <CJK>
+0xF7C6	0x9DDD	# <CJK>
+0xF7C7	0x9EB6	# <CJK>
+0xF7C8	0x9EF0	# <CJK>
+0xF7C9	0x9F35	# <CJK>
+0xF7CA	0x9F33	# <CJK>
+0xF7CB	0x9F32	# <CJK>
+0xF7CC	0x9F42	# <CJK>
+0xF7CD	0x9F6B	# <CJK>
+0xF7CE	0x9F95	# <CJK>
+0xF7CF	0x9FA2	# <CJK>
+0xF7D0	0x513D	# <CJK>
+0xF7D1	0x5299	# <CJK>
+0xF7D2	0x58E8	# <CJK>
+0xF7D3	0x58E7	# <CJK>
+0xF7D4	0x5972	# <CJK>
+0xF7D5	0x5B4D	# <CJK>
+0xF7D6	0x5DD8	# <CJK>
+0xF7D7	0x882F	# <CJK>
+0xF7D8	0x5F4F	# <CJK>
+0xF7D9	0x6201	# <CJK>
+0xF7DA	0x6203	# <CJK>
+0xF7DB	0x6204	# <CJK>
+0xF7DC	0x6529	# <CJK>
+0xF7DD	0x6525	# <CJK>
+0xF7DE	0x6596	# <CJK>
+0xF7DF	0x66EB	# <CJK>
+0xF7E0	0x6B11	# <CJK>
+0xF7E1	0x6B12	# <CJK>
+0xF7E2	0x6B0F	# <CJK>
+0xF7E3	0x6BCA	# <CJK>
+0xF7E4	0x705B	# <CJK>
+0xF7E5	0x705A	# <CJK>
+0xF7E6	0x7222	# <CJK>
+0xF7E7	0x7382	# <CJK>
+0xF7E8	0x7381	# <CJK>
+0xF7E9	0x7383	# <CJK>
+0xF7EA	0x7670	# <CJK>
+0xF7EB	0x77D4	# <CJK>
+0xF7EC	0x7C67	# <CJK>
+0xF7ED	0x7C66	# <CJK>
+0xF7EE	0x7E95	# <CJK>
+0xF7EF	0x826C	# <CJK>
+0xF7F0	0x863A	# <CJK>
+0xF7F1	0x8640	# <CJK>
+0xF7F2	0x8639	# <CJK>
+0xF7F3	0x863C	# <CJK>
+0xF7F4	0x8631	# <CJK>
+0xF7F5	0x863B	# <CJK>
+0xF7F6	0x863E	# <CJK>
+0xF7F7	0x8830	# <CJK>
+0xF7F8	0x8832	# <CJK>
+0xF7F9	0x882E	# <CJK>
+0xF7FA	0x8833	# <CJK>
+0xF7FB	0x8976	# <CJK>
+0xF7FC	0x8974	# <CJK>
+0xF7FD	0x8973	# <CJK>
+0xF7FE	0x89FE	# <CJK>
+0xF840	0x8B8C	# <CJK>
+0xF841	0x8B8E	# <CJK>
+0xF842	0x8B8B	# <CJK>
+0xF843	0x8B88	# <CJK>
+0xF844	0x8C45	# <CJK>
+0xF845	0x8D19	# <CJK>
+0xF846	0x8E98	# <CJK>
+0xF847	0x8F64	# <CJK>
+0xF848	0x8F63	# <CJK>
+0xF849	0x91BC	# <CJK>
+0xF84A	0x9462	# <CJK>
+0xF84B	0x9455	# <CJK>
+0xF84C	0x945D	# <CJK>
+0xF84D	0x9457	# <CJK>
+0xF84E	0x945E	# <CJK>
+0xF84F	0x97C4	# <CJK>
+0xF850	0x97C5	# <CJK>
+0xF851	0x9800	# <CJK>
+0xF852	0x9A56	# <CJK>
+0xF853	0x9A59	# <CJK>
+0xF854	0x9B1E	# <CJK>
+0xF855	0x9B1F	# <CJK>
+0xF856	0x9B20	# <CJK>
+0xF857	0x9C52	# <CJK>
+0xF858	0x9C58	# <CJK>
+0xF859	0x9C50	# <CJK>
+0xF85A	0x9C4A	# <CJK>
+0xF85B	0x9C4D	# <CJK>
+0xF85C	0x9C4B	# <CJK>
+0xF85D	0x9C55	# <CJK>
+0xF85E	0x9C59	# <CJK>
+0xF85F	0x9C4C	# <CJK>
+0xF860	0x9C4E	# <CJK>
+0xF861	0x9DFB	# <CJK>
+0xF862	0x9DF7	# <CJK>
+0xF863	0x9DEF	# <CJK>
+0xF864	0x9DE3	# <CJK>
+0xF865	0x9DEB	# <CJK>
+0xF866	0x9DF8	# <CJK>
+0xF867	0x9DE4	# <CJK>
+0xF868	0x9DF6	# <CJK>
+0xF869	0x9DE1	# <CJK>
+0xF86A	0x9DEE	# <CJK>
+0xF86B	0x9DE6	# <CJK>
+0xF86C	0x9DF2	# <CJK>
+0xF86D	0x9DF0	# <CJK>
+0xF86E	0x9DE2	# <CJK>
+0xF86F	0x9DEC	# <CJK>
+0xF870	0x9DF4	# <CJK>
+0xF871	0x9DF3	# <CJK>
+0xF872	0x9DE8	# <CJK>
+0xF873	0x9DED	# <CJK>
+0xF874	0x9EC2	# <CJK>
+0xF875	0x9ED0	# <CJK>
+0xF876	0x9EF2	# <CJK>
+0xF877	0x9EF3	# <CJK>
+0xF878	0x9F06	# <CJK>
+0xF879	0x9F1C	# <CJK>
+0xF87A	0x9F38	# <CJK>
+0xF87B	0x9F37	# <CJK>
+0xF87C	0x9F36	# <CJK>
+0xF87D	0x9F43	# <CJK>
+0xF87E	0x9F4F	# <CJK>
+0xF8A1	0x9F71	# <CJK>
+0xF8A2	0x9F70	# <CJK>
+0xF8A3	0x9F6E	# <CJK>
+0xF8A4	0x9F6F	# <CJK>
+0xF8A5	0x56D3	# <CJK>
+0xF8A6	0x56CD	# <CJK>
+0xF8A7	0x5B4E	# <CJK>
+0xF8A8	0x5C6D	# <CJK>
+0xF8A9	0x652D	# <CJK>
+0xF8AA	0x66ED	# <CJK>
+0xF8AB	0x66EE	# <CJK>
+0xF8AC	0x6B13	# <CJK>
+0xF8AD	0x705F	# <CJK>
+0xF8AE	0x7061	# <CJK>
+0xF8AF	0x705D	# <CJK>
+0xF8B0	0x7060	# <CJK>
+0xF8B1	0x7223	# <CJK>
+0xF8B2	0x74DB	# <CJK>
+0xF8B3	0x74E5	# <CJK>
+0xF8B4	0x77D5	# <CJK>
+0xF8B5	0x7938	# <CJK>
+0xF8B6	0x79B7	# <CJK>
+0xF8B7	0x79B6	# <CJK>
+0xF8B8	0x7C6A	# <CJK>
+0xF8B9	0x7E97	# <CJK>
+0xF8BA	0x7F89	# <CJK>
+0xF8BB	0x826D	# <CJK>
+0xF8BC	0x8643	# <CJK>
+0xF8BD	0x8838	# <CJK>
+0xF8BE	0x8837	# <CJK>
+0xF8BF	0x8835	# <CJK>
+0xF8C0	0x884B	# <CJK>
+0xF8C1	0x8B94	# <CJK>
+0xF8C2	0x8B95	# <CJK>
+0xF8C3	0x8E9E	# <CJK>
+0xF8C4	0x8E9F	# <CJK>
+0xF8C5	0x8EA0	# <CJK>
+0xF8C6	0x8E9D	# <CJK>
+0xF8C7	0x91BE	# <CJK>
+0xF8C8	0x91BD	# <CJK>
+0xF8C9	0x91C2	# <CJK>
+0xF8CA	0x946B	# <CJK>
+0xF8CB	0x9468	# <CJK>
+0xF8CC	0x9469	# <CJK>
+0xF8CD	0x96E5	# <CJK>
+0xF8CE	0x9746	# <CJK>
+0xF8CF	0x9743	# <CJK>
+0xF8D0	0x9747	# <CJK>
+0xF8D1	0x97C7	# <CJK>
+0xF8D2	0x97E5	# <CJK>
+0xF8D3	0x9A5E	# <CJK>
+0xF8D4	0x9AD5	# <CJK>
+0xF8D5	0x9B59	# <CJK>
+0xF8D6	0x9C63	# <CJK>
+0xF8D7	0x9C67	# <CJK>
+0xF8D8	0x9C66	# <CJK>
+0xF8D9	0x9C62	# <CJK>
+0xF8DA	0x9C5E	# <CJK>
+0xF8DB	0x9C60	# <CJK>
+0xF8DC	0x9E02	# <CJK>
+0xF8DD	0x9DFE	# <CJK>
+0xF8DE	0x9E07	# <CJK>
+0xF8DF	0x9E03	# <CJK>
+0xF8E0	0x9E06	# <CJK>
+0xF8E1	0x9E05	# <CJK>
+0xF8E2	0x9E00	# <CJK>
+0xF8E3	0x9E01	# <CJK>
+0xF8E4	0x9E09	# <CJK>
+0xF8E5	0x9DFF	# <CJK>
+0xF8E6	0x9DFD	# <CJK>
+0xF8E7	0x9E04	# <CJK>
+0xF8E8	0x9EA0	# <CJK>
+0xF8E9	0x9F1E	# <CJK>
+0xF8EA	0x9F46	# <CJK>
+0xF8EB	0x9F74	# <CJK>
+0xF8EC	0x9F75	# <CJK>
+0xF8ED	0x9F76	# <CJK>
+0xF8EE	0x56D4	# <CJK>
+0xF8EF	0x652E	# <CJK>
+0xF8F0	0x65B8	# <CJK>
+0xF8F1	0x6B18	# <CJK>
+0xF8F2	0x6B19	# <CJK>
+0xF8F3	0x6B17	# <CJK>
+0xF8F4	0x6B1A	# <CJK>
+0xF8F5	0x7062	# <CJK>
+0xF8F6	0x7226	# <CJK>
+0xF8F7	0x72AA	# <CJK>
+0xF8F8	0x77D8	# <CJK>
+0xF8F9	0x77D9	# <CJK>
+0xF8FA	0x7939	# <CJK>
+0xF8FB	0x7C69	# <CJK>
+0xF8FC	0x7C6B	# <CJK>
+0xF8FD	0x7CF6	# <CJK>
+0xF8FE	0x7E9A	# <CJK>
+0xF940	0x7E98	# <CJK>
+0xF941	0x7E9B	# <CJK>
+0xF942	0x7E99	# <CJK>
+0xF943	0x81E0	# <CJK>
+0xF944	0x81E1	# <CJK>
+0xF945	0x8646	# <CJK>
+0xF946	0x8647	# <CJK>
+0xF947	0x8648	# <CJK>
+0xF948	0x8979	# <CJK>
+0xF949	0x897A	# <CJK>
+0xF94A	0x897C	# <CJK>
+0xF94B	0x897B	# <CJK>
+0xF94C	0x89FF	# <CJK>
+0xF94D	0x8B98	# <CJK>
+0xF94E	0x8B99	# <CJK>
+0xF94F	0x8EA5	# <CJK>
+0xF950	0x8EA4	# <CJK>
+0xF951	0x8EA3	# <CJK>
+0xF952	0x946E	# <CJK>
+0xF953	0x946D	# <CJK>
+0xF954	0x946F	# <CJK>
+0xF955	0x9471	# <CJK>
+0xF956	0x9473	# <CJK>
+0xF957	0x9749	# <CJK>
+0xF958	0x9872	# <CJK>
+0xF959	0x995F	# <CJK>
+0xF95A	0x9C68	# <CJK>
+0xF95B	0x9C6E	# <CJK>
+0xF95C	0x9C6D	# <CJK>
+0xF95D	0x9E0B	# <CJK>
+0xF95E	0x9E0D	# <CJK>
+0xF95F	0x9E10	# <CJK>
+0xF960	0x9E0F	# <CJK>
+0xF961	0x9E12	# <CJK>
+0xF962	0x9E11	# <CJK>
+0xF963	0x9EA1	# <CJK>
+0xF964	0x9EF5	# <CJK>
+0xF965	0x9F09	# <CJK>
+0xF966	0x9F47	# <CJK>
+0xF967	0x9F78	# <CJK>
+0xF968	0x9F7B	# <CJK>
+0xF969	0x9F7A	# <CJK>
+0xF96A	0x9F79	# <CJK>
+0xF96B	0x571E	# <CJK>
+0xF96C	0x7066	# <CJK>
+0xF96D	0x7C6F	# <CJK>
+0xF96E	0x883C	# <CJK>
+0xF96F	0x8DB2	# <CJK>
+0xF970	0x8EA6	# <CJK>
+0xF971	0x91C3	# <CJK>
+0xF972	0x9474	# <CJK>
+0xF973	0x9478	# <CJK>
+0xF974	0x9476	# <CJK>
+0xF975	0x9475	# <CJK>
+0xF976	0x9A60	# <CJK>
+0xF977	0x9C74	# <CJK>
+0xF978	0x9C73	# <CJK>
+0xF979	0x9C71	# <CJK>
+0xF97A	0x9C75	# <CJK>
+0xF97B	0x9E14	# <CJK>
+0xF97C	0x9E13	# <CJK>
+0xF97D	0x9EF6	# <CJK>
+0xF97E	0x9F0A	# <CJK>
+0xF9A1	0x9FA4	# <CJK>
+0xF9A2	0x7068	# <CJK>
+0xF9A3	0x7065	# <CJK>
+0xF9A4	0x7CF7	# <CJK>
+0xF9A5	0x866A	# <CJK>
+0xF9A6	0x883E	# <CJK>
+0xF9A7	0x883D	# <CJK>
+0xF9A8	0x883F	# <CJK>
+0xF9A9	0x8B9E	# <CJK>
+0xF9AA	0x8C9C	# <CJK>
+0xF9AB	0x8EA9	# <CJK>
+0xF9AC	0x8EC9	# <CJK>
+0xF9AD	0x974B	# <CJK>
+0xF9AE	0x9873	# <CJK>
+0xF9AF	0x9874	# <CJK>
+0xF9B0	0x98CC	# <CJK>
+0xF9B1	0x9961	# <CJK>
+0xF9B2	0x99AB	# <CJK>
+0xF9B3	0x9A64	# <CJK>
+0xF9B4	0x9A66	# <CJK>
+0xF9B5	0x9A67	# <CJK>
+0xF9B6	0x9B24	# <CJK>
+0xF9B7	0x9E15	# <CJK>
+0xF9B8	0x9E17	# <CJK>
+0xF9B9	0x9F48	# <CJK>
+0xF9BA	0x6207	# <CJK>
+0xF9BB	0x6B1E	# <CJK>
+0xF9BC	0x7227	# <CJK>
+0xF9BD	0x864C	# <CJK>
+0xF9BE	0x8EA8	# <CJK>
+0xF9BF	0x9482	# <CJK>
+0xF9C0	0x9480	# <CJK>
+0xF9C1	0x9481	# <CJK>
+0xF9C2	0x9A69	# <CJK>
+0xF9C3	0x9A68	# <CJK>
+0xF9C4	0x9B2E	# <CJK>
+0xF9C5	0x9E19	# <CJK>
+0xF9C6	0x7229	# <CJK>
+0xF9C7	0x864B	# <CJK>
+0xF9C8	0x8B9F	# <CJK>
+0xF9C9	0x9483	# <CJK>
+0xF9CA	0x9C79	# <CJK>
+0xF9CB	0x9EB7	# <CJK>
+0xF9CC	0x7675	# <CJK>
+0xF9CD	0x9A6B	# <CJK>
+0xF9CE	0x9C7A	# <CJK>
+0xF9CF	0x9E1D	# <CJK>
+0xF9D0	0x7069	# <CJK>
+0xF9D1	0x706A	# <CJK>
+0xF9D2	0x9EA4	# <CJK>
+0xF9D3	0x9F7E	# <CJK>
+0xF9D4	0x9F49	# <CJK>
+0xF9D5	0x9F98	# <CJK>
+#
+0xA15A	0xFF3F #SPACING UNDERSCORE
+0xA1FE	0x2571 #LT DIAG UP RIGHT TO LOW LEFT
+0xA240	0x2572 #LT DIAG UP LEFT TO LOW RIGHTG
+0xA2CC	0x5341 #HANGHZOU NUMERAL TEN
+0xA2CE	0x5345 #HANGZHOU NUMERAL THIRTY
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/Big5.nr	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,5 @@
+0xA15A	0xFF3F #SPACING UNDERSCORE
+0xA1FE	0x2571 #LT DIAG UP RIGHT TO LOW LEFT
+0xA240	0x2572 #LT DIAG UP LEFT TO LOW RIGHTG
+0xA2CC	0x5341 #HANGHZOU NUMERAL TEN
+0xA2CE	0x5345 #HANGZHOU NUMERAL THIRTY
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/HKSCS2001.c2b	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,2187 @@
+#  Generated from HKSCS2001.Encoder
+#
+#  "0xc074 0x9f9c" is the only entry commented out because it
+#  exists in Big.map already, so should not be in c2b mapping
+#
+#  0xC074    0x9F9C
+#
+0x8845    0xF308
+0x8847    0xF30A
+0x8848    0xF30B
+0x884B    0xF30E
+0x884C    0xF30F
+0x884E    0xF311
+0x8853    0xF316
+0x8940    0xF3A0
+0x8941    0xF3A1
+0x894C    0xF3AC
+0x89B2    0xF3F0
+0x89B7    0xF3F5
+0x89BA    0xF3F8
+0x89BB    0xF3F9
+0x89BC    0xF3FA
+0x89BE    0xF3FC
+0x89BF    0xF3FD
+0x89C5    0xF403
+0x89CA    0xF408
+0x89CB    0xF409
+0x89CC    0xF40A
+0x89CD    0xF40B
+0x89D5    0xF413
+0x89D7    0xF415
+0x89DA    0xF418
+0x89DB    0xF419
+0x89DC    0xF41A
+0x89E6    0xF424
+0x89E8    0xF426
+0x89EA    0xF428
+0x89ED    0xF42B
+0x89EE    0xF42C
+0x89EF    0xF42D
+0x89F9    0xF437
+0x89FB    0xF439
+0x89FC    0xF43A
+0x89FE    0xF43C
+0x8A40    0xF43D
+0x8A43    0xF440
+0x8A44    0xF441
+0x8A45    0xF442
+0x8A47    0xF444
+0x8A48    0xF445
+0x8A49    0xF446
+0x8A4B    0xF448
+0x8A4C    0xF449
+0x8A4D    0xF44A
+0x8A4E    0xF44B
+0x8A50    0xF44D
+0x8A51    0xF44E
+0x8A52    0xF44F
+0x8A53    0xF450
+0x8A54    0xF451
+0x8A55    0xF452
+0x8A57    0xF454
+0x8A58    0xF455
+0x8A59    0xF456
+0x8A5A    0xF457
+0x8A5D    0xF45A
+0x8A5E    0xF45B
+0x8A5F    0xF45C
+0x8A60    0xF45D
+0x8A61    0xF45E
+0x8A62    0xF45F
+0x8A64    0xF461
+0x8A65    0xF462
+0x8A66    0xF463
+0x8A67    0xF464
+0x8A68    0xF465
+0x8A69    0xF466
+0x8A6B    0xF468
+0x8A6C    0xF469
+0x8A6D    0xF46A
+0x8A6E    0xF46B
+0x8A6F    0xF46C
+0x8A70    0xF46D
+0x8A71    0xF46E
+0x8A72    0xF46F
+0x8A76    0xF473
+0x8A77    0xF474
+0x8A7A    0xF477
+0x8A7B    0xF478
+0x8A7C    0xF479
+0x8A7D    0xF47A
+0x8A7E    0xF47B
+0x8AA1    0xF47C
+0x8AA2    0xF47D
+0x8AA3    0xF47E
+0x8AA5    0xF480
+0x8AA6    0xF481
+0x8AA8    0xF483
+0x8AA9    0xF484
+0x8AAA    0xF485
+0x8AAC    0xF487
+0x8AAD    0xF488
+0x8AAE    0xF489
+0x8AB0    0xF48B
+0x8AB2    0xF48D
+0x8AB3    0xF48E
+0x8AB4    0xF48F
+0x8AB5    0xF490
+0x8AB6    0xF491
+0x8AB8    0xF493
+0x8AB9    0xF494
+0x8ABB    0xF496
+0x8ABC    0xF497
+0x8ABD    0xF498
+0x8AC0    0xF49B
+0x8AC2    0xF49D
+0x8AC3    0xF49E
+0x8AC7    0xF4A2
+0x8AC9    0xF4A4
+0x8ACA    0xF4A5
+0x8ACB    0xF4A6
+0x8ACC    0xF4A7
+0x8ACE    0xF4A9
+0x8ACF    0xF4AA
+0x8AD0    0xF4AB
+0x8AD1    0xF4AC
+0x8AD2    0xF4AD
+0x8AD3    0xF4AE
+0x8AD4    0xF4AF
+0x8AD5    0xF4B0
+0x8AD7    0xF4B2
+0x8AD8    0xF4B3
+0x8AD9    0xF4B4
+0x8ADA    0xF4B5
+0x8ADC    0xF4B7
+0x8ADF    0xF4BA
+0x8AE0    0xF4BB
+0x8AE1    0xF4BC
+0x8AE2    0xF4BD
+0x8AE3    0xF4BE
+0x8AE4    0xF4BF
+0x8AE5    0xF4C0
+0x8AE6    0xF4C1
+0x8AE8    0xF4C3
+0x8AE9    0xF4C4
+0x8AEA    0xF4C5
+0x8AEB    0xF4C6
+0x8AEC    0xF4C7
+0x8AED    0xF4C8
+0x8AEE    0xF4C9
+0x8AEF    0xF4CA
+0x8AF0    0xF4CB
+0x8AF1    0xF4CC
+0x8AF2    0xF4CD
+0x8AF3    0xF4CE
+0x8AF4    0xF4CF
+0x8AF6    0xF4D1
+0x8AF7    0xF4D2
+0x8AF8    0xF4D3
+0x8AF9    0xF4D4
+0x8AFA    0xF4D5
+0x8AFB    0xF4D6
+0x8AFC    0xF4D7
+0x8AFE    0xF4D9
+0x8B40    0xF4DA
+0x8B41    0xF4DB
+0x8B42    0xF4DC
+0x8B43    0xF4DD
+0x8B44    0xF4DE
+0x8B45    0xF4DF
+0x8B46    0xF4E0
+0x8B47    0xF4E1
+0x8B48    0xF4E2
+0x8B49    0xF4E3
+0x8B4A    0xF4E4
+0x8B4B    0xF4E5
+0x8B4C    0xF4E6
+0x8B4D    0xF4E7
+0x8B4E    0xF4E8
+0x8B4F    0xF4E9
+0x8B55    0xF4EF
+0x8B58    0xF4F2
+0x8B59    0xF4F3
+0x8B5E    0xF4F8
+0x8B60    0xF4FA
+0x8B62    0xF4FC
+0x8B64    0xF4FE
+0x8B65    0xF4FF
+0x8B66    0xF500
+0x8B67    0xF501
+0x8B68    0xF502
+0x8B69    0xF503
+0x8B6A    0xF504
+0x8B6B    0xF505
+0x8B6D    0xF507
+0x8B6E    0xF508
+0x8B6F    0xF509
+0x8B70    0xF50A
+0x8B71    0xF50B
+0x8B72    0xF50C
+0x8B73    0xF50D
+0x8B74    0xF50E
+0x8B75    0xF50F
+0x8B76    0xF510
+0x8B77    0xF511
+0x8B79    0xF513
+0x8B7A    0xF514
+0x8B7B    0xF515
+0x8B7C    0xF516
+0x8B7E    0xF518
+0x8BA1    0xF519
+0x8BA2    0xF51A
+0x8BA3    0xF51B
+0x8BA4    0xF51C
+0x8BA5    0xF51D
+0x8BA6    0xF51E
+0x8BA7    0xF51F
+0x8BA8    0xF520
+0x8BA9    0xF521
+0x8BAA    0xF522
+0x8BAB    0xF523
+0x8BAC    0xF524
+0x8BAD    0xF525
+0x8BAE    0xF526
+0x8BB1    0xF529
+0x8BB2    0xF52A
+0x8BB5    0xF52D
+0x8BB6    0xF52E
+0x8BB8    0xF530
+0x8BBB    0xF533
+0x8BBC    0xF534
+0x8BBE    0xF536
+0x8BC2    0xF53A
+0x8BC3    0xF53B
+0x8BC5    0xF53D
+0x8BC8    0xF540
+0x8BCC    0xF544
+0x8BD6    0xF54E
+0x8BDB    0xF553
+0x8BDC    0xF554
+0x8BDE    0xF556
+0x8BE1    0xF559
+0x8BE2    0xF55A
+0x8BE6    0xF55E
+0x8BED    0xF565
+0x8BF3    0xF56B
+0x8BF8    0xF907
+0x8BFA    0xF572
+0x8C42    0xF579
+0x8C46    0xF57D
+0x8C4A    0xF581
+0x8C4C    0xF583
+0x8C4E    0xF585
+0x8C54    0xF58B
+0x8C55    0xF58C
+0x8C57    0xF58E
+0x8C5C    0xF593
+0x8C5F    0xF596
+0x8C64    0xF59B
+0x8C65    0xF59C
+0x8C69    0xF5A0
+0x8C6C    0xF5A3
+0x8C79    0xF5B0
+0x8C7D    0xF5B4
+0x8CA1    0xF5B6
+0x8CA4    0xF5B9
+0x8CA8    0xF5BD
+0x8CAB    0xF5C0
+0x8CAF    0xF5C4
+0x8CB0    0xF5C5
+0x8CC1    0xF5D6
+0x8CC2    0xF5D7
+0x8CCF    0xF5E4
+0x8CD1    0xF5E6
+0x8CD3    0xF5E8
+0x8CD5    0xF5EA
+0x8CD6    0xF5EB
+0x8D63    0xF637
+0x8D64    0xF638
+0x8D67    0xF63B
+0x8D68    0xF63C
+0x8D6D    0xF641
+0x8D6E    0xF642
+0x8D6F    0xF643
+0x8D70    0xF644
+0x8D74    0xF648
+0x8D78    0xF64C
+0x8D7D    0xF651
+0x8DA1    0xF653
+0x8DA6    0xF658
+0x8DAB    0xF65D
+0x8DAD    0xF65F
+0x8DB0    0xF662
+0x8DB2    0xF664
+0x8DB4    0xF666
+0x8DB7    0xF669
+0x8DBA    0xF66C
+0x8DBB    0xF66D
+0x8DBC    0xF66E
+0x8DC3    0xF675
+0x8DC5    0xF677
+0x8DCA    0xF67C
+0x8DCC    0xF67E
+0x8DD6    0xF688
+0x8DDB    0xF68D
+0x8DE2    0xF694
+0x8DEB    0xF69D
+0x8DEC    0xF69E
+0x8DEF    0xF6A1
+0x8DF0    0xF6A2
+0x8DF3    0xF6A5
+0x8DF5    0xF6A7
+0x8DFB    0xF6AD
+0x8DFC    0xF6AE
+0x8DFD    0xF6AF
+0x8DFE    0xF6B0
+0x8E40    0xE311
+0x8E42    0xE313
+0x8E44    0xE315
+0x8E45    0xE316
+0x8E47    0xE318
+0x8E4A    0xE31B
+0x8E4B    0xE31C
+0x8E4E    0xE31F
+0x8E54    0xE325
+0x8E55    0xE326
+0x8E59    0xE32A
+0x8E5B    0xE32C
+0x8E5F    0xE330
+0x8E60    0xE331
+0x8E64    0xE335
+0x8E65    0xE336
+0x8E6A    0xE33B
+0x8E6B    0xE33C
+0x8E6C    0xE33D
+0x8E71    0xE342
+0x8E74    0xE345
+0x8E77    0xE348
+0x8EA2    0xE351
+0x8EA3    0xE352
+0x8EA5    0xE354
+0x8EAC    0xE35B
+0x8EAD    0xE35C
+0x8EAF    0xE35E
+0x8EB1    0xE360
+0x8EB3    0xE362
+0x8EB5    0xE364
+0x8EB6    0xE365
+0x8EB9    0xE368
+0x8EC0    0xE36F
+0x8EC3    0xE372
+0x8EC5    0xE374
+0x8EC6    0xE375
+0x8EC7    0xE376
+0x8EC8    0xE377
+0x8EC9    0xE378
+0x8ECA    0xE379
+0x8ECC    0xE37B
+0x8ED2    0xE381
+0x8ED3    0xE382
+0x8ED7    0xE386
+0x8ED8    0xE387
+0x8ED9    0xE388
+0x8EDA    0xE389
+0x8EDB    0xE38A
+0x8EDE    0xE38D
+0x8EE2    0xE391
+0x8EE4    0xE393
+0x8EE5    0xE394
+0x8EE7    0xE396
+0x8EE9    0xE398
+0x8EEB    0xE39A
+0x8EEC    0xE39B
+0x8EED    0xE39C
+0x8EEF    0xE39E
+0x8EF0    0xE39F
+0x8EF1    0xE3A0
+0x8EF3    0xE3A2
+0x8EF6    0xE3A5
+0x8EF7    0xE3A6
+0x8EF8    0xE3A7
+0x8EF9    0xE3A8
+0x8EFA    0xE3A9
+0x8EFD    0xE3AC
+0x8EFE    0xE3AD
+0x8F43    0xE3B1
+0x8F44    0xE3B2
+0x8F45    0xE3B3
+0x8F46    0xE3B4
+0x8F47    0xE3B5
+0x8F4B    0xE3B9
+0x8F4C    0xE3BA
+0x8F4D    0xE3BB
+0x8F4E    0xE3BC
+0x8F4F    0xE3BD
+0x8F50    0xE3BE
+0x8F54    0xE3C2
+0x8F55    0xE3C3
+0x8F59    0xE3C7
+0x8F5A    0xE3C8
+0x8F5D    0xE3CB
+0x8F5E    0xE3CC
+0x8F5F    0xE3CD
+0x8F61    0xE3CF
+0x8F63    0xE3D1
+0x8F64    0xE3D2
+0x8F67    0xE3D5
+0x8F6A    0xE3D8
+0x8F6B    0xE3D9
+0x8F6C    0xE3DA
+0x8F70    0xE3DE
+0x8F73    0xE3E1
+0x8F74    0xE3E2
+0x8F75    0xE3E3
+0x8F76    0xE3E4
+0x8F79    0xE3E7
+0x8F7A    0xE3E8
+0x8F7C    0xE3EA
+0x8FA1    0xE3ED
+0x8FA2    0xE3EE
+0x8FA4    0xE3F0
+0x8FA6    0xE3F2
+0x8FA7    0xE3F3
+0x8FA8    0xE3F4
+0x8FA9    0xE3F5
+0x8FAB    0xE3F7
+0x8FAC    0xE3F8
+0x8FAE    0xE3FA
+0x8FB1    0xE3FD
+0x8FB3    0xE3FF
+0x8FBA    0xE406
+0x8FBD    0xE409
+0x8FBE    0xE40A
+0x8FBF    0xE40B
+0x8FC2    0xE40E
+0x8FC8    0xE414
+0x8FCF    0xE41B
+0x8FD1    0xE41D
+0x8FD2    0xE41E
+0x8FD7    0xE423
+0x8FD9    0xE425
+0x8FDA    0xE426
+0x8FDB    0xE427
+0x8FDC    0xE428
+0x8FE0    0xE42C
+0x8FE1    0xE42D
+0x8FE6    0xE432
+0x8FEA    0xE436
+0x8FEB    0xE437
+0x8FEE    0xE43A
+0x8FEF    0xE43B
+0x8FF0    0xE43C
+0x8FF1    0xE43D
+0x8FF2    0xE43E
+0x8FF4    0xE440
+0x8FF5    0xE441
+0x8FF8    0xE444
+0x8FFC    0xE448
+0x8FFD    0xE449
+0x9041    0xE44C
+0x9042    0xE44D
+0x9043    0xE44E
+0x9044    0xE44F
+0x9045    0xE450
+0x9046    0xE451
+0x904E    0xE459
+0x904F    0xE45A
+0x9052    0xE45D
+0x9053    0xE45E
+0x9055    0xE460
+0x9056    0xE461
+0x9057    0xE462
+0x9058    0xE463
+0x905A    0xE465
+0x905C    0xE467
+0x905D    0xE468
+0x905E    0xE469
+0x905F    0xE46A
+0x9060    0xE46B
+0x9061    0xE46C
+0x9063    0xE46E
+0x9064    0xE46F
+0x9066    0xE471
+0x9067    0xE472
+0x9069    0xE474
+0x906B    0xE476
+0x906F    0xE47A
+0x9073    0xE47E
+0x9074    0xE47F
+0x9079    0xE484
+0x907B    0xE486
+0x907C    0xE487
+0x907D    0xE488
+0x907E    0xE489
+0x90A1    0xE48A
+0x90A4    0xE48D
+0x90A5    0xE48E
+0x90A8    0xE491
+0x90A9    0xE492
+0x90AA    0xE493
+0x90AC    0xE495
+0x90AD    0xE496
+0x90AE    0xE497
+0x90B7    0xE4A0
+0x90B8    0xE4A1
+0x90B9    0xE4A2
+0x90BA    0xE4A3
+0x90BB    0xE4A4
+0x90BC    0xE4A5
+0x90C0    0xE4A9
+0x90C2    0xE4AB
+0x90C6    0xE4AF
+0x90C9    0xE4B2
+0x90CA    0xE4B3
+0x90CB    0xE4B4
+0x90CC    0xE4B5
+0x90CD    0xE4B6
+0x90CE    0xE4B7
+0x90CF    0xE4B8
+0x90D0    0xE4B9
+0x90D1    0xE4BA
+0x90D5    0xE4BE
+0x90D6    0xE4BF
+0x90D7    0xE4C0
+0x90D8    0xE4C1
+0x90DD    0xE4C6
+0x90E0    0xE4C9
+0x90E4    0xE4CD
+0x90E5    0xE4CE
+0x90ED    0xE4D6
+0x90F0    0xE4D9
+0x90F3    0xE4DC
+0x90F4    0xE4DD
+0x90F5    0xE4DE
+0x90FA    0xE4E3
+0x90FB    0xE4E4
+0x90FC    0xE4E5
+0x90FD    0xE4E6
+0x90FE    0xE4E7
+0x9140    0xE4E8
+0x9145    0xE4ED
+0x9146    0xE4EE
+0x9147    0xE4EF
+0x914E    0xE4F6
+0x914F    0xE4F7
+0x9150    0xE4F8
+0x9151    0xE4F9
+0x9157    0xE4FF
+0x9158    0xE500
+0x9159    0xE501
+0x915A    0xE502
+0x915D    0xE505
+0x915F    0xE507
+0x9162    0xE50A
+0x9165    0xE50D
+0x9166    0xE50E
+0x9167    0xE50F
+0x916A    0xE512
+0x916C    0xE514
+0x916E    0xE516
+0x9172    0xE51A
+0x9174    0xE51C
+0x9175    0xE51D
+0x9176    0xE51E
+0x9177    0xE51F
+0x9178    0xE520
+0x9179    0xE521
+0x917C    0xE524
+0x91A2    0xE528
+0x91A3    0xE529
+0x91A4    0xE52A
+0x91A5    0xE52B
+0x91A6    0xE52C
+0x91A8    0xE52E
+0x91A9    0xE52F
+0x91AE    0xE534
+0x91B1    0xE537
+0x91B3    0xE539
+0x91B4    0xE53A
+0x91B5    0xE53B
+0x91B7    0xE53D
+0x91B8    0xE53E
+0x91BB    0xE541
+0x91BD    0xE543
+0x91C5    0xE54B
+0x91CD    0xE553
+0x91CE    0xE554
+0x91CF    0xE555
+0x91D1    0xE557
+0x91D2    0xE558
+0x91D3    0xE559
+0x91D5    0xE55B
+0x91D6    0xE55C
+0x91D8    0xE55E
+0x91D9    0xE55F
+0x91DC    0xE562
+0x91E0    0xE566
+0x91E1    0xE567
+0x91E3    0xE569
+0x91E7    0xE56D
+0x91E8    0xE56E
+0x91EA    0xE570
+0x91EC    0xE572
+0x91ED    0xE573
+0x91EE    0xE574
+0x91EF    0xE575
+0x91F0    0xE576
+0x91F1    0xE577
+0x91F2    0xE578
+0x91F3    0xE579
+0x91F4    0xE57A
+0x91F5    0xE57B
+0x91F6    0xE57C
+0x91F7    0xE57D
+0x91F8    0xE57E
+0x91F9    0xE57F
+0x91FA    0xE580
+0x91FC    0xE582
+0x91FD    0xE583
+0x91FE    0xE584
+0x9240    0xE585
+0x9241    0xE586
+0x9243    0xE588
+0x9246    0xE58B
+0x9247    0xE58C
+0x9248    0xE58D
+0x9249    0xE58E
+0x924A    0xE58F
+0x924B    0xE590
+0x924C    0xE591
+0x924D    0xE592
+0x924E    0xE593
+0x924F    0xE594
+0x9251    0xE596
+0x9252    0xE597
+0x9253    0xE598
+0x9255    0xE59A
+0x9257    0xE59C
+0x9258    0xE59D
+0x9259    0xE59E
+0x925A    0xE59F
+0x925B    0xE5A0
+0x925C    0xE5A1
+0x925F    0xE5A4
+0x9261    0xE5A6
+0x9262    0xE5A7
+0x9263    0xE5A8
+0x9265    0xE5AA
+0x9269    0xE5AE
+0x926A    0xE5AF
+0x926C    0xE5B1
+0x926D    0xE5B2
+0x9270    0xE5B5
+0x9272    0xE5B7
+0x9273    0xE5B8
+0x9274    0xE5B9
+0x9275    0xE5BA
+0x9276    0xE5BB
+0x9277    0xE5BC
+0x9279    0xE5BE
+0x927A    0xE5BF
+0x927B    0xE5C0
+0x927D    0xE5C2
+0x92A5    0xE5C8
+0x92A6    0xE5C9
+0x92B4    0xE5D7
+0x92B5    0xE5D8
+0x92B6    0xE5D9
+0x92B8    0xE5DB
+0x92B9    0xE5DC
+0x92BC    0xE5DF
+0x92BD    0xE5E0
+0x92BE    0xE5E1
+0x92BF    0xE5E2
+0x92C0    0xE5E3
+0x92C2    0xE5E5
+0x92C3    0xE5E6
+0x92C6    0xE5E9
+0x92C9    0xE5EC
+0x92CB    0xE5EE
+0x92CC    0xE5EF
+0x92CD    0xE5F0
+0x92CE    0xE5F1
+0x92D0    0xE5F3
+0x92D2    0xE5F5
+0x92D7    0xE5FA
+0x92D8    0xE5FB
+0x92D9    0xE5FC
+0x92DB    0xE5FE
+0x92DD    0xE600
+0x92DF    0xE602
+0x92E1    0xE604
+0x92E9    0xE60C
+0x92EC    0xE60F
+0x92ED    0xE610
+0x92EE    0xE611
+0x92EF    0xE612
+0x92F6    0xE619
+0x92F7    0xE61A
+0x92F8    0xE61B
+0x92F9    0xE61C
+0x92FA    0xE61D
+0x92FE    0xE621
+0x9341    0xE623
+0x9342    0xE624
+0x9345    0xE627
+0x9347    0xE629
+0x9349    0xE62B
+0x934B    0xE62D
+0x9350    0xE632
+0x9351    0xE633
+0x9352    0xE634
+0x9355    0xE637
+0x9356    0xE638
+0x9357    0xE639
+0x9358    0xE63A
+0x9359    0xE63B
+0x935A    0xE63C
+0x935B    0xE63D
+0x935D    0xE63F
+0x935E    0xE640
+0x935F    0xE641
+0x9360    0xE642
+0x9363    0xE645
+0x9364    0xE646
+0x9366    0xE648
+0x9369    0xE64B
+0x936C    0xE64E
+0x936D    0xE64F
+0x936F    0xE651
+0x9370    0xE652
+0x9371    0xE653
+0x9372    0xE654
+0x9373    0xE655
+0x9375    0xE657
+0x9376    0xE658
+0x9377    0xE659
+0x937B    0xE65D
+0x937C    0xE65E
+0x937D    0xE65F
+0x937E    0xE660
+0x93A2    0xE662
+0x93A3    0xE663
+0x93A4    0xE664
+0x93A5    0xE665
+0x93A6    0xE666
+0x93A7    0xE667
+0x93A8    0xE668
+0x93AA    0xE66A
+0x93AE    0xE66E
+0x93AF    0xE66F
+0x93B1    0xE671
+0x93B5    0xE675
+0x93B6    0xE676
+0x93B7    0xE677
+0x93B8    0xE678
+0x93B9    0xE679
+0x93BB    0xE67B
+0x93BC    0xE67C
+0x93BD    0xE67D
+0x93BF    0xE67F
+0x93C0    0xE680
+0x93C1    0xE681
+0x93C2    0xE682
+0x93C3    0xE683
+0x93C4    0xE684
+0x93C5    0xE685
+0x93C6    0xE686
+0x93C7    0xE687
+0x93C8    0xE688
+0x93CA    0xE68A
+0x93CB    0xE68B
+0x93CC    0xE68C
+0x93CD    0xE68D
+0x93CE    0xE68E
+0x93CF    0xE68F
+0x93D0    0xE690
+0x93D2    0xE692
+0x93D4    0xE694
+0x93D6    0xE696
+0x93D7    0xE697
+0x93D9    0xE699
+0x93DA    0xE69A
+0x93DC    0xE69C
+0x93DD    0xE69D
+0x93DE    0xE69E
+0x93DF    0xE69F
+0x93E0    0xE6A0
+0x93E1    0xE6A1
+0x93E2    0xE6A2
+0x93E4    0xE6A4
+0x93E6    0xE6A6
+0x93E9    0xE6A9
+0x93EB    0xE6AB
+0x93EC    0xE6AC
+0x93ED    0xE6AD
+0x93F2    0xE6B2
+0x93F6    0xE6B6
+0x93F9    0xE6B9
+0x93FA    0xE6BA
+0x93FD    0xE6BD
+0x93FE    0xE6BE
+0x9441    0xE6C0
+0x9442    0xE6C1
+0x9446    0xE6C5
+0x9448    0xE6C7
+0x9449    0xE6C8
+0x944B    0xE6CA
+0x9452    0xE6D1
+0x9453    0xE6D2
+0x9458    0xE6D7
+0x9459    0xE6D8
+0x945B    0xE6DA
+0x945C    0xE6DB
+0x945E    0xE6DD
+0x945F    0xE6DE
+0x9460    0xE6DF
+0x9461    0xE6E0
+0x9462    0xE6E1
+0x9463    0xE6E2
+0x9464    0xE6E3
+0x9465    0xE6E4
+0x9466    0xE6E5
+0x9467    0xE6E6
+0x9469    0xE6E8
+0x946E    0xE6ED
+0x946F    0xE6EE
+0x9470    0xE6EF
+0x9472    0xE6F1
+0x9473    0xE6F2
+0x9474    0xE6F3
+0x9475    0xE6F4
+0x9478    0xE6F7
+0x9479    0xE6F8
+0x947B    0xE6FA
+0x947C    0xE6FB
+0x947D    0xE6FC
+0x947E    0xE6FD
+0x94A1    0xE6FE
+0x94A2    0xE6FF
+0x94A3    0xE700
+0x94A4    0xE701
+0x94A5    0xE702
+0x94A9    0xE706
+0x94AA    0xE707
+0x94AC    0xE709
+0x94AD    0xE70A
+0x94AF    0xE70C
+0x94B3    0xE710
+0x94B4    0xE711
+0x94B5    0xE712
+0x94B6    0xE713
+0x94B9    0xE716
+0x94BA    0xE717
+0x94BB    0xE718
+0x94BC    0xE719
+0x94BD    0xE71A
+0x94BE    0xE71B
+0x94C0    0xE71D
+0x94C7    0xE724
+0x94C8    0xE725
+0x94C9    0xE726
+0x94CE    0xE72B
+0x94D1    0xE72E
+0x94D2    0xE72F
+0x94D3    0xE730
+0x94D6    0xE733
+0x94D7    0xE734
+0x94D8    0xE735
+0x94D9    0xE736
+0x94DA    0xE737
+0x94DB    0xE738
+0x94DD    0xE73A
+0x94DE    0xE73B
+0x94DF    0xE73C
+0x94E0    0xE73D
+0x94E3    0xE740
+0x94E4    0xE741
+0x94E5    0xE742
+0x94E7    0xE744
+0x94EA    0xE747
+0x94EC    0xE749
+0x94EF    0xE74C
+0x94F0    0xE74D
+0x94F1    0xE74E
+0x94F2    0xE74F
+0x94F4    0xE751
+0x94F5    0xE752
+0x94FE    0xE75B
+0x9540    0xE75C
+0x9541    0xE75D
+0x9543    0xE75F
+0x9544    0xE760
+0x9545    0xE761
+0x9546    0xE762
+0x9548    0xE764
+0x9549    0xE765
+0x954B    0xE767
+0x954C    0xE768
+0x954D    0xE769
+0x9550    0xE76C
+0x9551    0xE76D
+0x9552    0xE76E
+0x9554    0xE770
+0x9559    0xE775
+0x955A    0xE776
+0x955B    0xE777
+0x955C    0xE778
+0x955E    0xE77A
+0x9560    0xE77C
+0x9561    0xE77D
+0x9562    0xE77E
+0x9564    0xE780
+0x9568    0xE784
+0x956A    0xE786
+0x956D    0xE789
+0x956F    0xE78B
+0x9571    0xE78D
+0x9573    0xE78F
+0x9574    0xE790
+0x9576    0xE792
+0x9578    0xE794
+0x957A    0xE796
+0x957B    0xE797
+0x957D    0xE799
+0x95A8    0xE7A2
+0x95AA    0xE7A4
+0x95AB    0xE7A5
+0x95AC    0xE7A6
+0x95AD    0xE7A7
+0x95AE    0xE7A8
+0x95AF    0xE7A9
+0x95B0    0xE7AA
+0x95B2    0xE7AC
+0x95B3    0xE7AD
+0x95B4    0xE7AE
+0x95B7    0xE7B1
+0x95BA    0xE7B4
+0x95BE    0xE7B8
+0x95C2    0xE7BC
+0x95C6    0xE7C0
+0x95C7    0xE7C1
+0x95CA    0xE7C4
+0x95CD    0xE7C7
+0x95D0    0xE7CA
+0x95D1    0xE7CB
+0x95D4    0xE7CE
+0x95D6    0xE7D0
+0x95D7    0xE7D1
+0x95DB    0xE7D5
+0x95DE    0xE7D8
+0x95DF    0xE7D9
+0x95E0    0xE7DA
+0x95E2    0xE7DC
+0x95E3    0xE7DD
+0x95EA    0xE7E4
+0x95EC    0xE7E6
+0x95ED    0xE7E7
+0x95EE    0xE7E8
+0x95EF    0xE7E9
+0x95F0    0xE7EA
+0x95F1    0xE7EB
+0x95F3    0xE7ED
+0x95F4    0xE7EE
+0x95F5    0xE7EF
+0x95F6    0xE7F0
+0x95F7    0xE7F1
+0x95F8    0xE7F2
+0x95F9    0xE7F3
+0x95FC    0xE7F6
+0x95FE    0xE7F8
+0x9641    0xE7FA
+0x9642    0xE7FB
+0x9643    0xE7FC
+0x9646    0xE7FF
+0x9647    0xE800
+0x9648    0xE801
+0x9649    0xE802
+0x964D    0xE806
+0x964F    0xE808
+0x9653    0xE80C
+0x9655    0xE80E
+0x9656    0xE80F
+0x9658    0xE811
+0x965A    0xE813
+0x965C    0xE815
+0x965D    0xE816
+0x965E    0xE817
+0x965F    0xE818
+0x9661    0xE81A
+0x9662    0xE81B
+0x9664    0xE81D
+0x9668    0xE821
+0x9669    0xE822
+0x966B    0xE824
+0x966E    0xE827
+0x966F    0xE828
+0x9674    0xE82D
+0x9675    0xE82E
+0x9676    0xE82F
+0x9678    0xE831
+0x9679    0xE832
+0x967C    0xE835
+0x967E    0xE837
+0x96A1    0xE838
+0x96A3    0xE83A
+0x96A4    0xE83B
+0x96A6    0xE83D
+0x96A8    0xE83F
+0x96AA    0xE841
+0x96AB    0xE842
+0x96B4    0xE84B
+0x96B6    0xE84D
+0x96B7    0xE84E
+0x96B9    0xE850
+0x96BA    0xE851
+0x96BC    0xE853
+0x96BE    0xE855
+0x96BF    0xE856
+0x96C0    0xE857
+0x96C1    0xE858
+0x96C4    0xE85B
+0x96C5    0xE85C
+0x96C6    0xE85D
+0x96C8    0xE85F
+0x96C9    0xE860
+0x96CA    0xE861
+0x96CB    0xE862
+0x96CE    0xE865
+0x96CF    0xE866
+0x96D0    0xE867
+0x96D2    0xE869
+0x96D3    0xE86A
+0x96D4    0xE86B
+0x96D5    0xE86C
+0x96D6    0xE86D
+0x96DA    0xE871
+0x96DF    0xE876
+0x96E1    0xE878
+0x96E6    0xE87D
+0x96E7    0xE87E
+0x96E8    0xE87F
+0x96E9    0xE880
+0x96F0    0xE887
+0x96F7    0xE88E
+0x96F8    0xE88F
+0x96FA    0xE891
+0x96FB    0xE892
+0x96FD    0xE894
+0x96FE    0xE895
+0x9743    0xE899
+0x9744    0xE89A
+0x9745    0xE89B
+0x9746    0xE89C
+0x9747    0xE89D
+0x974A    0xE8A0
+0x974B    0xE8A1
+0x974D    0xE8A3
+0x974E    0xE8A4
+0x974F    0xE8A5
+0x9750    0xE8A6
+0x9751    0xE8A7
+0x9753    0xE8A9
+0x9754    0xE8AA
+0x9756    0xE8AC
+0x9757    0xE8AD
+0x9758    0xE8AE
+0x9759    0xE8AF
+0x975A    0xE8B0
+0x975D    0xE8B3
+0x975F    0xE8B5
+0x9760    0xE8B6
+0x9761    0xE8B7
+0x9762    0xE8B8
+0x9766    0xE8BC
+0x9767    0xE8BD
+0x9768    0xE8BE
+0x9769    0xE8BF
+0x976A    0xE8C0
+0x976B    0xE8C1
+0x976C    0xE8C2
+0x976D    0xE8C3
+0x976F    0xE8C5
+0x9771    0xE8C7
+0x9775    0xE8CB
+0x9777    0xE8CD
+0x9778    0xE8CE
+0x977A    0xE8D0
+0x977B    0xE8D1
+0x977C    0xE8D2
+0x977D    0xE8D3
+0x97A1    0xE8D5
+0x97A2    0xE8D6
+0x97A4    0xE8D8
+0x97A5    0xE8D9
+0x97A6    0xE8DA
+0x97A9    0xE8DD
+0x97AB    0xE8DF
+0x97AC    0xE8E0
+0x97AD    0xE8E1
+0x97AE    0xE8E2
+0x97B0    0xE8E4
+0x97B1    0xE8E5
+0x97B2    0xE8E6
+0x97B4    0xE8E8
+0x97B5    0xE8E9
+0x97B6    0xE8EA
+0x97B8    0xE8EC
+0x97B9    0xE8ED
+0x97BA    0xE8EE
+0x97BD    0xE8F1
+0x97BE    0xE8F2
+0x97C0    0xE8F4
+0x97C1    0xE8F5
+0x97C2    0xE8F6
+0x97C3    0xE8F7
+0x97C5    0xE8F9
+0x97C6    0xE8FA
+0x97C7    0xE8FB
+0x97C9    0xE8FD
+0x97CA    0xE8FE
+0x97CC    0xE900
+0x97CD    0xE901
+0x97CF    0xE903
+0x97D2    0xE906
+0x97D3    0xE907
+0x97D4    0xE908
+0x97D7    0xE90B
+0x97D8    0xE90C
+0x97DA    0xE90E
+0x97DB    0xE90F
+0x97DC    0xE910
+0x97DD    0xE911
+0x97DE    0xE912
+0x97E1    0xE915
+0x97E3    0xE917
+0x97E4    0xE918
+0x97E7    0xE91B
+0x97E8    0xE91C
+0x97EA    0xE91E
+0x97EB    0xE91F
+0x97EC    0xE920
+0x97ED    0xE921
+0x97EE    0xE922
+0x97F1    0xE925
+0x97F2    0xE926
+0x97F3    0xE927
+0x97F4    0xE928
+0x97F5    0xE929
+0x97F6    0xE92A
+0x97F7    0xE92B
+0x97F8    0xE92C
+0x97FA    0xE92E
+0x97FB    0xE92F
+0x97FD    0xE931
+0x97FE    0xE932
+0x9840    0xE933
+0x9841    0xE934
+0x9842    0xE935
+0x9843    0xE936
+0x9845    0xE938
+0x9847    0xE93A
+0x9849    0xE93C
+0x984A    0xE93D
+0x984B    0xE93E
+0x984E    0xE941
+0x9851    0xE944
+0x9852    0xE945
+0x9853    0xE946
+0x9855    0xE948
+0x9856    0xE949
+0x985A    0xE94D
+0x985D    0xE950
+0x985F    0xE952
+0x9860    0xE953
+0x9861    0xE954
+0x9862    0xE955
+0x9864    0xE957
+0x9865    0xE958
+0x9867    0xE95A
+0x9869    0xE95C
+0x986A    0xE95D
+0x986B    0xE95E
+0x986D    0xE960
+0x986E    0xE961
+0x9871    0xE964
+0x9872    0xE965
+0x9874    0xE967
+0x9875    0xE968
+0x9879    0xE96C
+0x987B    0xE96E
+0x987C    0xE96F
+0x98A2    0xE973
+0x98A3    0xE974
+0x98A4    0xE975
+0x98A6    0xE977
+0x98A7    0xE978
+0x98A8    0xE979
+0x98A9    0xE97A
+0x98AA    0xE97B
+0x98AC    0xE97D
+0x98B0    0xE981
+0x98B1    0xE982
+0x98B6    0xE987
+0x98B9    0xE98A
+0x98BC    0xE98D
+0x98BD    0xE98E
+0x98C0    0xE991
+0x98C3    0xE994
+0x98C5    0xE996
+0x98CB    0xE99C
+0x98CC    0xE99D
+0x98CD    0xE99E
+0x98CE    0xE99F
+0x98D0    0xE9A1
+0x98D1    0xE9A2
+0x98D6    0xE9A7
+0x98D9    0xE9AA
+0x98DB    0xE9AC
+0x98DD    0xE9AE
+0x98DF    0xE9B0
+0x98E4    0xE9B5
+0x98E6    0xE9B7
+0x98E8    0xE9B9
+0x98E9    0xE9BA
+0x98EB    0xE9BC
+0x98EC    0xE9BD
+0x98F4    0xE9C5
+0x98FA    0xE9CB
+0x98FE    0xE9CF
+0x9940    0xE9D0
+0x9946    0xE9D6
+0x9948    0xE9D8
+0x994B    0xE9DB
+0x994E    0xE9DE
+0x9955    0xE9E5
+0x9956    0xE9E6
+0x9959    0xE9E9
+0x995B    0xE9EB
+0x995F    0xE9EF
+0x9967    0xE9F7
+0x996E    0xE9FE
+0x9973    0xEA03
+0x997A    0xEA0A
+0x997B    0xEA0B
+0x99A1    0xEA0F
+0x99A5    0xEA13
+0x99A7    0xEA15
+0x99AD    0xEA1B
+0x99B3    0xEA21
+0x99BC    0xEA2A
+0x99C3    0xEA31
+0x99C7    0xEA35
+0x99CE    0xEA3C
+0x99CF    0xEA3D
+0x99D5    0xEA43
+0x99DE    0xEA4C
+0x99E1    0xEA4F
+0x99E9    0xEA57
+0x99F5    0xEA63
+0x99F8    0xEA66
+0x9A48    0xEA75
+0x9A49    0xEA76
+0x9A50    0xEA7D
+0x9A55    0xEA82
+0x9A58    0xEA85
+0x9A5A    0xEA87
+0x9A5C    0xEA89
+0x9A60    0xEA8D
+0x9A63    0xEA90
+0x9A6E    0xEA9B
+0x9A70    0xEA9D
+0x9A79    0xEAA6
+0x9A7B    0xEAA8
+0x9A7C    0xEAA9
+0x9AB4    0xEABF
+0x9AB5    0xEAC0
+0x9AB6    0xEAC1
+0x9ABA    0xEAC5
+0x9ABD    0xEAC8
+0x9ABE    0xEAC9
+0x9ABF    0xEACA
+0x9AC0    0xEACB
+0x9AC1    0xEACC
+0x9AC4    0xEACF
+0x9AC5    0xEAD0
+0x9AC6    0xEAD1
+0x9AC8    0xEAD3
+0x9AC9    0xEAD4
+0x9ACB    0xEAD6
+0x9ACC    0xEAD7
+0x9ACD    0xEAD8
+0x9ACE    0xEAD9
+0x9ACF    0xEADA
+0x9AD1    0xEADC
+0x9AD3    0xEADE
+0x9AD4    0xEADF
+0x9AD5    0xEAE0
+0x9AD6    0xEAE1
+0x9AD7    0xEAE2
+0x9AD8    0xEAE3
+0x9ADC    0xEAE7
+0x9ADD    0xEAE8
+0x9ADE    0xEAE9
+0x9ADF    0xEAEA
+0x9AE0    0xEAEB
+0x9AE1    0xEAEC
+0x9AE3    0xEAEE
+0x9AE5    0xEAF0
+0x9AE6    0xEAF1
+0x9AE7    0xEAF2
+0x9AE9    0xEAF4
+0x9AEA    0xEAF5
+0x9AEB    0xEAF6
+0x9AEC    0xEAF7
+0x9AED    0xEAF8
+0x9AEE    0xEAF9
+0x9AEF    0xEAFA
+0x9AF0    0xEAFB
+0x9AF3    0xEAFE
+0x9AF4    0xEAFF
+0x9AF5    0xEB00
+0x9AF7    0xEB02
+0x9AF8    0xEB03
+0x9AF9    0xEB04
+0x9AFA    0xEB05
+0x9AFD    0xEB08
+0x9AFE    0xEB09
+0x9B40    0xEB0A
+0x9B41    0xEB0B
+0x9B42    0xEB0C
+0x9B43    0xEB0D
+0x9B44    0xEB0E
+0x9B45    0xEB0F
+0x9B47    0xEB11
+0x9B48    0xEB12
+0x9B4B    0xEB15
+0x9B4D    0xEB17
+0x9B4E    0xEB18
+0x9B4F    0xEB19
+0x9B50    0xEB1A
+0x9B51    0xEB1B
+0x9B52    0xEB1C
+0x9B53    0xEB1D
+0x9B55    0xEB1F
+0x9B56    0xEB20
+0x9B57    0xEB21
+0x9B59    0xEB23
+0x9B5B    0xEB25
+0x9B5D    0xEB27
+0x9B60    0xEB2A
+0x9B62    0xEB2C
+0x9B63    0xEB2D
+0x9B64    0xEB2E
+0x9B65    0xEB2F
+0x9B66    0xEB30
+0x9B67    0xEB31
+0x9B68    0xEB32
+0x9B69    0xEB33
+0x9B6A    0xEB34
+0x9B6B    0xEB35
+0x9B6C    0xEB36
+0x9B6D    0xEB37
+0x9B6E    0xEB38
+0x9B6F    0xEB39
+0x9B73    0xEB3D
+0x9B74    0xEB3E
+0x9B75    0xEB3F
+0x9B77    0xEB41
+0x9B79    0xEB43
+0x9B7A    0xEB44
+0x9B7C    0xEB46
+0x9BA2    0xEB4A
+0x9BA3    0xEB4B
+0x9BA4    0xEB4C
+0x9BA5    0xEB4D
+0x9BA6    0xEB4E
+0x9BA7    0xEB4F
+0x9BA8    0xEB50
+0x9BA9    0xEB51
+0x9BAA    0xEB52
+0x9BAB    0xEB53
+0x9BAC    0xEB54
+0x9BAD    0xEB55
+0x9BAE    0xEB56
+0x9BAF    0xEB57
+0x9BB0    0xEB58
+0x9BB1    0xEB59
+0x9BB2    0xEB5A
+0x9BB3    0xEB5B
+0x9BB5    0xEB5D
+0x9BB7    0xEB5F
+0x9BB8    0xEB60
+0x9BB9    0xEB61
+0x9BBA    0xEB62
+0x9BBB    0xEB63
+0x9BBD    0xEB65
+0x9BBE    0xEB66
+0x9BBF    0xEB67
+0x9BC0    0xEB68
+0x9BC1    0xEB69
+0x9BC2    0xEB6A
+0x9BC3    0xEB6B
+0x9BC5    0xEB6D
+0x9BC7    0xEB6F
+0x9BC8    0xEB70
+0x9BC9    0xEB71
+0x9BCB    0xEB73
+0x9BCC    0xEB74
+0x9BCE    0xEB76
+0x9BCF    0xEB77
+0x9BD0    0xEB78
+0x9BD2    0xEB7A
+0x9BD6    0xEB7E
+0x9BD7    0xEB7F
+0x9BD8    0xEB80
+0x9BD9    0xEB81
+0x9BDB    0xEB83
+0x9BDC    0xEB84
+0x9BDD    0xEB85
+0x9BDF    0xEB87
+0x9BE0    0xEB88
+0x9BE1    0xEB89
+0x9BE2    0xEB8A
+0x9BE3    0xEB8B
+0x9BE4    0xEB8C
+0x9BE5    0xEB8D
+0x9BE6    0xEB8E
+0x9BE7    0xEB8F
+0x9BE8    0xEB90
+0x9BEA    0xEB92
+0x9BEB    0xEB93
+0x9BED    0xEB95
+0x9BEE    0xEB96
+0x9BEF    0xEB97
+0x9BF0    0xEB98
+0x9BF1    0xEB99
+0x9BF2    0xEB9A
+0x9BF3    0xEB9B
+0x9BF7    0xEB9F
+0x9BF8    0xEBA0
+0x9BFA    0xEBA2
+0x9BFB    0xEBA3
+0x9BFD    0xEBA5
+0x9BFE    0xEBA6
+0x9C41    0xEBA8
+0x9C43    0xEBAA
+0x9C44    0xEBAB
+0x9C46    0xEBAD
+0x9C47    0xEBAE
+0x9C48    0xEBAF
+0x9C49    0xEBB0
+0x9C4A    0xEBB1
+0x9C4B    0xEBB2
+0x9C4C    0xEBB3
+0x9C4D    0xEBB4
+0x9C4F    0xEBB6
+0x9C52    0xEBB9
+0x9C55    0xEBBC
+0x9C56    0xEBBD
+0x9C58    0xEBBF
+0x9C5B    0xEBC2
+0x9C5C    0xEBC3
+0x9C5E    0xEBC5
+0x9C5F    0xEBC6
+0x9C60    0xEBC7
+0x9C61    0xEBC8
+0x9C63    0xEBCA
+0x9C65    0xEBCC
+0x9C66    0xEBCD
+0x9C67    0xEBCE
+0x9C69    0xEBD0
+0x9C6C    0xEBD3
+0x9C6E    0xEBD5
+0x9C6F    0xEBD6
+0x9C70    0xEBD7
+0x9C71    0xEBD8
+0x9C73    0xEBDA
+0x9C74    0xEBDB
+0x9C76    0xEBDD
+0x9C78    0xEBDF
+0x9C79    0xEBE0
+0x9C7A    0xEBE1
+0x9C7D    0xEBE4
+0x9CA1    0xEBE6
+0x9CA2    0xEBE7
+0x9CA3    0xEBE8
+0x9CA4    0xEBE9
+0x9CA5    0xEBEA
+0x9CA6    0xEBEB
+0x9CA7    0xEBEC
+0x9CA9    0xEBEE
+0x9CAA    0xEBEF
+0x9CAC    0xEBF1
+0x9CAD    0xEBF2
+0x9CB0    0xEBF5
+0x9CB1    0xEBF6
+0x9CB4    0xEBF9
+0x9CB5    0xEBFA
+0x9CB6    0xEBFB
+0x9CB8    0xEBFD
+0x9CB9    0xEBFE
+0x9CBA    0xEBFF
+0x9CBB    0xEC00
+0x9CBE    0xEC03
+0x9CC0    0xEC05
+0x9CC1    0xEC06
+0x9CC3    0xEC08
+0x9CC4    0xEC09
+0x9CC6    0xEC0B
+0x9CC7    0xEC0C
+0x9CC8    0xEC0D
+0x9CC9    0xEC0E
+0x9CCA    0xEC0F
+0x9CCB    0xEC10
+0x9CCE    0xEC13
+0x9CCF    0xEC14
+0x9CD1    0xEC16
+0x9CD2    0xEC17
+0x9CD3    0xEC18
+0x9CD4    0xEC19
+0x9CD5    0xEC1A
+0x9CD6    0xEC1B
+0x9CD7    0xEC1C
+0x9CD8    0xEC1D
+0x9CDB    0xEC20
+0x9CDD    0xEC22
+0x9CDF    0xEC24
+0x9CE1    0xEC26
+0x9CE5    0xEC2A
+0x9CE6    0xEC2B
+0x9CE7    0xEC2C
+0x9CE8    0xEC2D
+0x9CE9    0xEC2E
+0x9CEA    0xEC2F
+0x9CEC    0xEC31
+0x9CED    0xEC32
+0x9CF0    0xEC35
+0x9CF2    0xEC37
+0x9CF6    0xEC3B
+0x9CF7    0xEC3C
+0x9CF8    0xEC3D
+0x9CFA    0xEC3F
+0x9CFB    0xEC40
+0x9CFC    0xEC41
+0x9CFD    0xEC42
+0x9CFE    0xEC43
+0x9D40    0xEC44
+0x9D41    0xEC45
+0x9D42    0xEC46
+0x9D43    0xEC47
+0x9D44    0xEC48
+0x9D45    0xEC49
+0x9D46    0xEC4A
+0x9D47    0xEC4B
+0x9D48    0xEC4C
+0x9D49    0xEC4D
+0x9D4B    0xEC4F
+0x9D4E    0xEC52
+0x9D4F    0xEC53
+0x9D50    0xEC54
+0x9D51    0xEC55
+0x9D52    0xEC56
+0x9D53    0xEC57
+0x9D54    0xEC58
+0x9D56    0xEC5A
+0x9D58    0xEC5C
+0x9D59    0xEC5D
+0x9D5B    0xEC5F
+0x9D5C    0xEC60
+0x9D5D    0xEC61
+0x9D5E    0xEC62
+0x9D5F    0xEC63
+0x9D63    0xEC67
+0x9D64    0xEC68
+0x9D65    0xEC69
+0x9D66    0xEC6A
+0x9D67    0xEC6B
+0x9D68    0xEC6C
+0x9D69    0xEC6D
+0x9D6A    0xEC6E
+0x9D6B    0xEC6F
+0x9D6C    0xEC70
+0x9D6D    0xEC71
+0x9D6E    0xEC72
+0x9D6F    0xEC73
+0x9D71    0xEC75
+0x9D72    0xEC76
+0x9D73    0xEC77
+0x9D75    0xEC79
+0x9D77    0xEC7B
+0x9D78    0xEC7C
+0x9D7A    0xEC7E
+0x9D7B    0xEC7F
+0x9D7C    0xEC80
+0x9DA2    0xEC84
+0x9DA4    0xEC86
+0x9DA5    0xEC87
+0x9DAA    0xEC8C
+0x9DAB    0xEC8D
+0x9DAC    0xEC8E
+0x9DAD    0xEC8F
+0x9DAF    0xEC91
+0x9DB0    0xEC92
+0x9DB1    0xEC93
+0x9DB2    0xEC94
+0x9DB3    0xEC95
+0x9DB4    0xEC96
+0x9DB5    0xEC97
+0x9DB6    0xEC98
+0x9DB7    0xEC99
+0x9DB8    0xEC9A
+0x9DB9    0xEC9B
+0x9DBB    0xEC9D
+0x9DBC    0xEC9E
+0x9DBE    0xECA0
+0x9DC1    0xECA3
+0x9DC2    0xECA4
+0x9DC5    0xECA7
+0x9DC6    0xECA8
+0x9DC9    0xECAB
+0x9DCB    0xECAD
+0x9DCC    0xECAE
+0x9DCD    0xECAF
+0x9DCE    0xECB0
+0x9DD2    0xECB4
+0x9DD4    0xECB6
+0x9DD7    0xECB9
+0x9DD8    0xECBA
+0x9DD9    0xECBB
+0x9DED    0xECCF
+0x9DEE    0xECD0
+0x9DF2    0xECD4
+0x9DF3    0xECD5
+0x9DF9    0xECDB
+0x9DFA    0xECDC
+0x9DFC    0xECDE
+0x9DFD    0xECDF
+0x9DFE    0xECE0
+0x9E40    0xECE1
+0x9E44    0xECE5
+0x9E4F    0xECF0
+0x9E51    0xECF2
+0x9E53    0xECF4
+0x9E54    0xECF5
+0x9E5B    0xECFC
+0x9E63    0xED04
+0x9E64    0xED05
+0x9E66    0xED07
+0x9E69    0xED0A
+0x9E6B    0xED0C
+0x9E6C    0xED0D
+0x9E6D    0xED0E
+0x9E6E    0xED0F
+0x9E6F    0xED10
+0x9E70    0xED11
+0x9E72    0xED13
+0x9E74    0xED15
+0x9E75    0xED16
+0x9E76    0xED17
+0x9E77    0xED18
+0x9E79    0xED1A
+0x9E7A    0xED1B
+0x9E7B    0xED1C
+0x9E7C    0xED1D
+0x9E7D    0xED1E
+0x9E7E    0xED1F
+0x9EA3    0xED22
+0x9EA4    0xED23
+0x9EA5    0xED24
+0x9EA6    0xED25
+0x9EA7    0xED26
+0x9EA8    0xED27
+0x9EAA    0xED29
+0x9EAB    0xED2A
+0x9EAD    0xED2C
+0x9EAE    0xED2D
+0x9EB4    0xED33
+0x9EB8    0xED37
+0x9EB9    0xED38
+0x9EBB    0xED3A
+0x9EBC    0xED3B
+0x9EBE    0xED3D
+0x9EC2    0xED41
+0x9EC3    0xED42
+0x9EC5    0xED44
+0x9EC6    0xED45
+0x9EC8    0xED47
+0x9EC9    0xED48
+0x9ECB    0xED4A
+0x9ECC    0xED4B
+0x9ECD    0xED4C
+0x9ECE    0xED4D
+0x9ECF    0xED4E
+0x9ED0    0xED4F
+0x9ED2    0xED51
+0x9ED3    0xED52
+0x9ED4    0xED53
+0x9ED5    0xED54
+0x9ED8    0xED57
+0x9ED9    0xED58
+0x9EDA    0xED59
+0x9EDD    0xED5C
+0x9EDE    0xED5D
+0x9EDF    0xED5E
+0x9EE0    0xED5F
+0x9EE3    0xED62
+0x9EE5    0xED64
+0x9EE7    0xED66
+0x9EEC    0xED6B
+0x9EEE    0xED6D
+0x9EF0    0xED6F
+0x9EF2    0xED71
+0x9EF3    0xED72
+0x9EF6    0xED75
+0x9EF8    0xED77
+0x9EF9    0xED78
+0x9EFB    0xED7A
+0x9EFC    0xED7B
+0x9F43    0xED81
+0x9F46    0xED84
+0x9F47    0xED85
+0x9F48    0xED86
+0x9F4A    0xED88
+0x9F4B    0xED89
+0x9F4C    0xED8A
+0x9F4D    0xED8B
+0x9F50    0xED8E
+0x9F53    0xED91
+0x9F68    0xEDA6
+0x9F70    0xEDAE
+0x9FA5    0xEDC1
+0x9FAA    0xEDC6
+0x9FB3    0xEDCF
+0x9FB5    0xEDD1
+0x9FBB    0xEDD7
+0x9FBE    0xEDDA
+0x9FBF    0xEDDB
+0x9FC1    0xEDDD
+0x9FC5    0xEDE1
+0x9FD1    0xEDED
+0x9FD7    0xEDF3
+0x9FD9    0xEDF5
+0x9FEC    0xEE08
+0x9FF5    0xEE11
+0x9FF9    0xEE15
+0xA040    0xEE1B
+0xA045    0xEE20
+0xA047    0xEE22
+0xA04F    0xEE2A
+0xA053    0xEE2E
+0xA055    0xEE30
+0xA056    0xEE31
+0xA059    0xEE34
+0xA068    0xEE43
+0xA06A    0xEE45
+0xA06D    0xEE48
+0xA06F    0xEE4A
+0xA078    0xEE53
+0xA07B    0xEE56
+0xA07E    0xEE59
+0xA0A2    0xEE5B
+0xA0A4    0xEE5D
+0xA0A7    0xEE60
+0xA0AB    0xEE64
+0xA0AC    0xEE65
+0xA0B1    0xEE6A
+0xA0BD    0xEE76
+0xA0C3    0xEE7C
+0xA0C5    0xEE7E
+0xA0D0    0xEE89
+0xA0D8    0xEE91
+0xA0DA    0xEE93
+0xA0DE    0xEE97
+0xA0E3    0xEE9C
+0xA0E6    0xEE9F
+0xA0E8    0xEEA1
+0xA0E9    0xEEA2
+0xA0EA    0xEEA3
+0xA0EB    0xEEA4
+0xA0EC    0xEEA5
+0xA0ED    0xEEA6
+0xA0EE    0xEEA7
+0xA0EF    0xEEA8
+0xA0F0    0xEEA9
+0xA0F1    0xEEAA
+0xA0F3    0xEEAC
+0xA0F4    0xEEAD
+0xA0F5    0xEEAE
+0xA0F6    0xEEAF
+0xA0F7    0xEEB0
+0xA0F8    0xEEB1
+0xA0F9    0xEEB2
+0xA0FB    0xEEB4
+0xA0FE    0xEEB7
+0xC6CD    0xF6DD
+0xC87A    0xF7E6
+0xC87C    0xF7E8
+0xC8A4    0xF7EE
+0xC8D6    0xF920
+0xC8D7    0xF921
+0xC8D8    0xF922
+0xC8D9    0xF923
+0xC8DA    0xF924
+0xC8DB    0xF925
+0xC8DC    0xF926
+0xC8DD    0xF927
+0xC8DE    0xF928
+0xC8DF    0xF929
+0xC8E0    0xF92A
+0xC8E1    0xF92B
+0xC8E2    0xF92C
+0xC8E3    0xF92D
+0xC8E4    0xF92E
+0xC8E5    0xF92F
+0xC8E6    0xF930
+0xC8E7    0xF931
+0xC8E8    0xF932
+0xC8E9    0xF933
+0xC8EA    0xF934
+0xC8EB    0xF935
+0xC8EC    0xF936
+0xC8ED    0xF937
+0xC8EE    0xF938
+0xC8EF    0xF939
+0xC8F0    0xF93A
+0xC8F1    0xF93B
+0xFA40    0xE000
+0xFA42    0xE002
+0xFA43    0xE003
+0xFA45    0xE005
+0xFA48    0xE008
+0xFA49    0xE009
+0xFA4A    0xE00A
+0xFA4C    0xE00C
+0xFA4E    0xE00E
+0xFA52    0xE012
+0xFA53    0xE013
+0xFA54    0xE014
+0xFA55    0xE015
+0xFA56    0xE016
+0xFA58    0xE018
+0xFA5A    0xE01A
+0xFA5B    0xE01B
+0xFA5C    0xE01C
+0xFA5D    0xE01D
+0xFA5E    0xE01E
+0xFA60    0xE020
+0xFA62    0xE022
+0xFA63    0xE023
+0xFA65    0xE025
+0xFA68    0xE028
+0xFA6B    0xE02B
+0xFA6D    0xE02D
+0xFA6E    0xE02E
+0xFA70    0xE030
+0xFA72    0xE032
+0xFA73    0xE033
+0xFA74    0xE034
+0xFA75    0xE035
+0xFA76    0xE036
+0xFA77    0xE037
+0xFA78    0xE038
+0xFA7B    0xE03B
+0xFA7C    0xE03C
+0xFAA5    0xE043
+0xFAA7    0xE045
+0xFAAE    0xE04C
+0xFABC    0xE05A
+0xFABE    0xE05C
+0xFAC1    0xE05F
+0xFAC2    0xE060
+0xFAC3    0xE061
+0xFAC6    0xE064
+0xFAC8    0xE066
+0xFACC    0xE06A
+0xFACD    0xE06B
+0xFACE    0xE06C
+0xFAD0    0xE06E
+0xFAD3    0xE071
+0xFAD6    0xE074
+0xFAD7    0xE075
+0xFADA    0xE078
+0xFADF    0xE07D
+0xFAE0    0xE07E
+0xFAE8    0xE086
+0xFAE9    0xE087
+0xFAEB    0xE089
+0xFAEC    0xE08A
+0xFAEE    0xE08C
+0xFAF5    0xE093
+0xFAF6    0xE094
+0xFAFA    0xE098
+0xFAFB    0xE099
+0xFAFC    0xE09A
+0xFAFD    0xE09B
+0xFAFE    0xE09C
+0xFB40    0xE09D
+0xFB41    0xE09E
+0xFB43    0xE0A0
+0xFB49    0xE0A6
+0xFB4A    0xE0A7
+0xFB4B    0xE0A8
+0xFB4C    0xE0A9
+0xFB4E    0xE0AB
+0xFB51    0xE0AE
+0xFB5D    0xE0BA
+0xFB5E    0xE0BB
+0xFB5F    0xE0BC
+0xFB61    0xE0BE
+0xFB65    0xE0C2
+0xFB66    0xE0C3
+0xFB68    0xE0C5
+0xFB6A    0xE0C7
+0xFB6B    0xE0C8
+0xFB6D    0xE0CA
+0xFB70    0xE0CD
+0xFB73    0xE0D0
+0xFB77    0xE0D4
+0xFB78    0xE0D5
+0xFB7A    0xE0D7
+0xFB7D    0xE0DA
+0xFBA1    0xE0DC
+0xFBA4    0xE0DF
+0xFBA7    0xE0E2
+0xFBA8    0xE0E3
+0xFBA9    0xE0E4
+0xFBAA    0xE0E5
+0xFBAC    0xE0E7
+0xFBAD    0xE0E8
+0xFBAE    0xE0E9
+0xFBB0    0xE0EB
+0xFBB1    0xE0EC
+0xFBB3    0xE0EE
+0xFBB6    0xE0F1
+0xFBB7    0xE0F2
+0xFBB9    0xE0F4
+0xFBBD    0xE0F8
+0xFBBE    0xE0F9
+0xFBBF    0xE0FA
+0xFBC0    0xE0FB
+0xFBC1    0xE0FC
+0xFBC2    0xE0FD
+0xFBC8    0xE103
+0xFBC9    0xE104
+0xFBCA    0xE105
+0xFBCB    0xE106
+0xFBCE    0xE109
+0xFBCF    0xE10A
+0xFBD0    0xE10B
+0xFBD3    0xE10E
+0xFBD5    0xE110
+0xFBD9    0xE114
+0xFBDA    0xE115
+0xFBDC    0xE117
+0xFBE1    0xE11C
+0xFBE2    0xE11D
+0xFBE6    0xE121
+0xFBEA    0xE125
+0xFBEB    0xE126
+0xFBEC    0xE127
+0xFBED    0xE128
+0xFBEF    0xE12A
+0xFBF0    0xE12B
+0xFBF5    0xE130
+0xFBF6    0xE131
+0xFBFB    0xE136
+0xFBFE    0xE139
+0xFC42    0xE13C
+0xFC47    0xE141
+0xFC48    0xE142
+0xFC49    0xE143
+0xFC4A    0xE144
+0xFC4B    0xE145
+0xFC4D    0xE147
+0xFC4E    0xE148
+0xFC50    0xE14A
+0xFC53    0xE14D
+0xFC56    0xE150
+0xFC59    0xE153
+0xFC5A    0xE154
+0xFC5B    0xE155
+0xFC5C    0xE156
+0xFC5D    0xE157
+0xFC5F    0xE159
+0xFC60    0xE15A
+0xFC63    0xE15D
+0xFC64    0xE15E
+0xFC65    0xE15F
+0xFC66    0xE160
+0xFC68    0xE162
+0xFC6A    0xE164
+0xFC6E    0xE168
+0xFC6F    0xE169
+0xFC70    0xE16A
+0xFC77    0xE171
+0xFC78    0xE172
+0xFC7B    0xE175
+0xFC7E    0xE178
+0xFCA1    0xE179
+0xFCA3    0xE17B
+0xFCA4    0xE17C
+0xFCA6    0xE17E
+0xFCA7    0xE17F
+0xFCA8    0xE180
+0xFCAD    0xE185
+0xFCAF    0xE187
+0xFCB1    0xE189
+0xFCB3    0xE18B
+0xFCB4    0xE18C
+0xFCB7    0xE18F
+0xFCB8    0xE190
+0xFCBB    0xE193
+0xFCBD    0xE195
+0xFCBE    0xE196
+0xFCC2    0xE19A
+0xFCC4    0xE19C
+0xFCC7    0xE19F
+0xFCC8    0xE1A0
+0xFCCC    0xE1A4
+0xFCCE    0xE1A6
+0xFCCF    0xE1A7
+0xFCD1    0xE1A9
+0xFCD2    0xE1AA
+0xFCD6    0xE1AE
+0xFCD8    0xE1B0
+0xFCD9    0xE1B1
+0xFCDB    0xE1B3
+0xFCDC    0xE1B4
+0xFCDE    0xE1B6
+0xFCE0    0xE1B8
+0xFCE3    0xE1BB
+0xFCE4    0xE1BC
+0xFCE5    0xE1BD
+0xFCE6    0xE1BE
+0xFCE7    0xE1BF
+0xFCE9    0xE1C1
+0xFCEC    0xE1C4
+0xFCED    0xE1C5
+0xFCEE    0xE1C6
+0xFCF0    0xE1C8
+0xFCF4    0xE1CC
+0xFCF5    0xE1CD
+0xFCF7    0xE1CF
+0xFCFC    0xE1D4
+0xFCFD    0xE1D5
+0xFD40    0xE1D7
+0xFD43    0xE1DA
+0xFD46    0xE1DD
+0xFD49    0xE1E0
+0xFD4A    0xE1E1
+0xFD4B    0xE1E2
+0xFD4C    0xE1E3
+0xFD4F    0xE1E6
+0xFD50    0xE1E7
+0xFD53    0xE1EA
+0xFD54    0xE1EB
+0xFD58    0xE1EF
+0xFD59    0xE1F0
+0xFD5B    0xE1F2
+0xFD5D    0xE1F4
+0xFD60    0xE1F7
+0xFD61    0xE1F8
+0xFD63    0xE1FA
+0xFD67    0xE1FE
+0xFD69    0xE200
+0xFD6A    0xE201
+0xFD6B    0xE202
+0xFD6C    0xE203
+0xFD6E    0xE205
+0xFD70    0xE207
+0xFD73    0xE20A
+0xFD74    0xE20B
+0xFD75    0xE20C
+0xFD79    0xE210
+0xFD7A    0xE211
+0xFD7B    0xE212
+0xFD7C    0xE213
+0xFD7D    0xE214
+0xFD7E    0xE215
+0xFDA1    0xE216
+0xFDA2    0xE217
+0xFDA3    0xE218
+0xFDA4    0xE219
+0xFDA6    0xE21B
+0xFDA7    0xE21C
+0xFDAA    0xE21F
+0xFDAB    0xE220
+0xFDAC    0xE221
+0xFDB1    0xE226
+0xFDB2    0xE227
+0xFDB3    0xE228
+0xFDB5    0xE22A
+0xFDBA    0xE22F
+0xFDBC    0xE231
+0xFDBE    0xE233
+0xFDC2    0xE237
+0xFDC4    0xE239
+0xFDC6    0xE23B
+0xFDC8    0xE23D
+0xFDC9    0xE23E
+0xFDCA    0xE23F
+0xFDCE    0xE243
+0xFDD0    0xE245
+0xFDD1    0xE246
+0xFDD3    0xE248
+0xFDD5    0xE24A
+0xFDD6    0xE24B
+0xFDD7    0xE24C
+0xFDD8    0xE24D
+0xFDD9    0xE24E
+0xFDDA    0xE24F
+0xFDDC    0xE251
+0xFDDD    0xE252
+0xFDDE    0xE253
+0xFDDF    0xE254
+0xFDE8    0xE25D
+0xFDE9    0xE25E
+0xFDEC    0xE261
+0xFDF3    0xE268
+0xFDF6    0xE26B
+0xFDF8    0xE26D
+0xFDF9    0xE26E
+0xFDFA    0xE26F
+0xFDFC    0xE271
+0xFE46    0xE27A
+0xFE49    0xE27D
+0xFE4D    0xE281
+0xFE4E    0xE282
+0xFE54    0xE288
+0xFE55    0xE289
+0xFE56    0xE28A
+0xFE57    0xE28B
+0xFE5C    0xE290
+0xFE5D    0xE291
+0xFE60    0xE294
+0xFE61    0xE295
+0xFE62    0xE296
+0xFE64    0xE298
+0xFE65    0xE299
+0xFE66    0xE29A
+0xFE67    0xE29B
+0xFE6B    0xE29F
+0xFE6D    0xE2A1
+0xFE6E    0xE2A2
+0xFE70    0xE2A4
+0xFE72    0xE2A6
+0xFE78    0xE2AC
+0xFE7D    0xE2B1
+0xFE7E    0xE2B2
+0xFEA1    0xE2B3
+0xFEA2    0xE2B4
+0xFEA3    0xE2B5
+0xFEA5    0xE2B7
+0xFEA6    0xE2B8
+0xFEA8    0xE2BA
+0xFEAC    0xE2BE
+0xFEAD    0xE2BF
+0xFEAF    0xE2C1
+0xFEB5    0xE2C7
+0xFEB6    0xE2C8
+0xFEB7    0xE2C9
+0xFEC2    0xE2D4
+0xFEC5    0xE2D7
+0xFEC6    0xE2D8
+0xFEC7    0xE2D9
+0xFECC    0xE2DE
+0xFECE    0xE2E0
+0xFECF    0xE2E1
+0xFED0    0xE2E2
+0xFED5    0xE2E7
+0xFED7    0xE2E9
+0xFED9    0xE2EB
+0xFEDA    0xE2EC
+0xFEDB    0xE2ED
+0xFEDE    0xE2F0
+0xFEDF    0xE2F1
+0xFEE6    0xE2F8
+0xFEEA    0xE2FC
+0xFEED    0xE2FF
+0xFEEE    0xE300
+0xFEEF    0xE301
+0xFEF4    0xE306
+0xFEF6    0xE308
+0xFEFA    0xE30C
+0xFEFB    0xE30D
+0xFEFD    0xE30F
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/HKSCS2001.map	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,4821 @@
+# Generated from HKSCS2001.Encoder
+#
+#
+0x8840    0xF303
+0x8841    0xF304
+0x8842    0xF305
+0x8843    0xF306
+0x8844    0xF307
+0x8845    0x2010C
+0x8846    0xF309
+0x8847    0x200D1
+0x8848    0x200CD
+0x8849    0xF30C
+0x884A    0xF30D
+0x884B    0x200CB
+0x884C    0x21FE8
+0x884D    0xF310
+0x884E    0x200CA
+0x884F    0xF312
+0x8850    0xF313
+0x8851    0xF314
+0x8852    0xF315
+0x8853    0x2010E
+0x8854    0xF317
+0x8855    0xF318
+0x8856    0x100
+0x8857    0xC1
+0x8858    0x1CD
+0x8859    0xC0
+0x885A    0x112
+0x885B    0xC9
+0x885C    0x11A
+0x885D    0xC8
+0x885E    0x14C
+0x885F    0xD3
+0x8860    0x1D1
+0x8861    0xD2
+0x8862    0xF325
+0x8863    0x1EBE
+0x8864    0xF327
+0x8865    0x1EC0
+0x8866    0xCA
+0x8867    0x101
+0x8868    0xE1
+0x8869    0x1CE
+0x886A    0xE0
+0x886B    0x251
+0x886C    0x113
+0x886D    0xE9
+0x886E    0x11B
+0x886F    0xE8
+0x8870    0x12B
+0x8871    0xED
+0x8872    0x1D0
+0x8873    0xEC
+0x8874    0x14D
+0x8875    0xF3
+0x8876    0x1D2
+0x8877    0xF2
+0x8878    0x16B
+0x8879    0xFA
+0x887A    0x1D4
+0x887B    0xF9
+0x887C    0x1D6
+0x887D    0x1D8
+0x887E    0x1DA
+0x88A1    0x1DC
+0x88A2    0xFC
+0x88A3    0xF344
+0x88A4    0x1EBF
+0x88A5    0xF346
+0x88A6    0x1EC1
+0x88A7    0xEA
+0x88A8    0x261
+0x88A9    0xF34A
+0x88AA    0xF34B
+0x8940    0x2A3A9
+0x8941    0x21145
+0x8943    0x650A
+0x8946    0x4E3D
+0x8947    0x6EDD
+0x8948    0x9D4E
+0x8949    0x91DF
+0x894C    0x27735
+0x894D    0x6491
+0x894E    0x4F1A
+0x894F    0x4F28
+0x8950    0x4FA8
+0x8951    0x5156
+0x8952    0x5174
+0x8953    0x519C
+0x8954    0x51E4
+0x8955    0x52A1
+0x8956    0x52A8
+0x8957    0x533B
+0x8958    0x534E
+0x8959    0x53D1
+0x895A    0x53D8
+0x895B    0x56E2
+0x895C    0x58F0
+0x895D    0x5904
+0x895E    0x5907
+0x895F    0x5932
+0x8960    0x5934
+0x8961    0x5B66
+0x8962    0x5B9E
+0x8963    0x5B9F
+0x8964    0x5C9A
+0x8965    0x5E86
+0x8966    0x603B
+0x8967    0x6589
+0x8968    0x67FE
+0x8969    0x6804
+0x896A    0x6865
+0x896B    0x6D4E
+0x896C    0x70BC
+0x896D    0x7535
+0x896E    0x7EA4
+0x896F    0x7EAC
+0x8970    0x7EBA
+0x8971    0x7EC7
+0x8972    0x7ECF
+0x8973    0x7EDF
+0x8974    0x7F06
+0x8975    0x7F37
+0x8976    0x827A
+0x8977    0x82CF
+0x8978    0x836F
+0x8979    0x89C6
+0x897A    0x8BBE
+0x897B    0x8BE2
+0x897C    0x8F66
+0x897D    0x8F67
+0x897E    0x8F6E
+0x89A1    0x7411
+0x89A2    0x7CFC
+0x89A3    0x7DCD
+0x89A4    0x6946
+0x89A5    0x7AC9
+0x89A6    0x5227
+0x89AB    0x918C
+0x89AC    0x78B8
+0x89AD    0x915E
+0x89AE    0x80BC
+0x89B0    0x8D0B
+0x89B1    0x80F6
+0x89B2    0x209E7
+0x89B5    0x809F
+0x89B6    0x9EC7
+0x89B7    0x4CCD
+0x89B8    0x9DC9
+0x89B9    0x9E0C
+0x89BA    0x4C3E
+0x89BB    0x29DF6
+0x89BC    0x2700E
+0x89BD    0x9E0A
+0x89BE    0x2A133
+0x89BF    0x35C1
+0x89C1    0x6E9A
+0x89C2    0x823E
+0x89C3    0x7519
+0x89C5    0x4911
+0x89C6    0x9A6C
+0x89C7    0x9A8F
+0x89C8    0x9F99
+0x89C9    0x7987
+0x89CA    0x2846C
+0x89CB    0x21DCA
+0x89CC    0x205D0
+0x89CD    0x22AE6
+0x89CE    0x4E24
+0x89CF    0x4E81
+0x89D0    0x4E80
+0x89D1    0x4E87
+0x89D2    0x4EBF
+0x89D3    0x4EEB
+0x89D4    0x4F37
+0x89D5    0x344C
+0x89D6    0x4FBD
+0x89D7    0x3E48
+0x89D8    0x5003
+0x89D9    0x5088
+0x89DA    0x347D
+0x89DB    0x3493
+0x89DC    0x34A5
+0x89DD    0x5186
+0x89DE    0x5905
+0x89DF    0x51DB
+0x89E0    0x51FC
+0x89E1    0x5205
+0x89E2    0x4E89
+0x89E3    0x5279
+0x89E4    0x5290
+0x89E5    0x5327
+0x89E6    0x35C7
+0x89E7    0x53A9
+0x89E8    0x3551
+0x89E9    0x53B0
+0x89EA    0x3553
+0x89EB    0x53C2
+0x89EC    0x5423
+0x89ED    0x356D
+0x89EE    0x3572
+0x89EF    0x3681
+0x89F0    0x5493
+0x89F1    0x54A3
+0x89F2    0x54B4
+0x89F3    0x54B9
+0x89F4    0x54D0
+0x89F5    0x54EF
+0x89F6    0x5518
+0x89F7    0x5523
+0x89F8    0x5528
+0x89F9    0x3598
+0x89FA    0x553F
+0x89FB    0x35A5
+0x89FC    0x35BF
+0x89FD    0x55D7
+0x89FE    0x35C5
+0x8A40    0x27D84
+0x8A41    0x5525
+0x8A43    0x20C42
+0x8A44    0x20D15
+0x8A45    0x2512B
+0x8A46    0x5590
+0x8A47    0x22CC6
+0x8A48    0x39EC
+0x8A49    0x20341
+0x8A4A    0x8E46
+0x8A4B    0x24DB8
+0x8A4C    0x294E5
+0x8A4D    0x4053
+0x8A4E    0x280BE
+0x8A4F    0x777A
+0x8A50    0x22C38
+0x8A51    0x3A34
+0x8A52    0x47D5
+0x8A53    0x2815D
+0x8A54    0x269F2
+0x8A55    0x24DEA
+0x8A56    0x64DD
+0x8A57    0x20D7C
+0x8A58    0x20FB4
+0x8A59    0x20CD5
+0x8A5A    0x210F4
+0x8A5B    0x648D
+0x8A5C    0x8E7E
+0x8A5D    0x20E96
+0x8A5E    0x20C0B
+0x8A5F    0x20F64
+0x8A60    0x22CA9
+0x8A61    0x28256
+0x8A62    0x244D3
+0x8A64    0x20D46
+0x8A65    0x29A4D
+0x8A66    0x280E9
+0x8A67    0x47F4
+0x8A68    0x24EA7
+0x8A69    0x22CC2
+0x8A6A    0x9AB2
+0x8A6B    0x3A67
+0x8A6C    0x295F4
+0x8A6D    0x3FED
+0x8A6E    0x3506
+0x8A6F    0x252C7
+0x8A70    0x297D4
+0x8A71    0x278C8
+0x8A72    0x22D44
+0x8A73    0x9D6E
+0x8A74    0x9815
+0x8A76    0x43D9
+0x8A77    0x260A5
+0x8A78    0x64B4
+0x8A79    0x54E3
+0x8A7A    0x22D4C
+0x8A7B    0x22BCA
+0x8A7C    0x21077
+0x8A7D    0x39FB
+0x8A7E    0x2106F
+0x8AA1    0x266DA
+0x8AA2    0x26716
+0x8AA3    0x279A0
+0x8AA4    0x64EA
+0x8AA5    0x25052
+0x8AA6    0x20C43
+0x8AA7    0x8E68
+0x8AA8    0x221A1
+0x8AA9    0x28B4C
+0x8AAA    0x20731
+0x8AAC    0x480B
+0x8AAD    0x201A9
+0x8AAE    0x3FFA
+0x8AAF    0x5873
+0x8AB0    0x22D8D
+0x8AB2    0x245C8
+0x8AB3    0x204FC
+0x8AB4    0x26097
+0x8AB5    0x20F4C
+0x8AB6    0x20D96
+0x8AB7    0x5579
+0x8AB8    0x40BB
+0x8AB9    0x43BA
+0x8ABB    0x4AB4
+0x8ABC    0x22A66
+0x8ABD    0x2109D
+0x8ABE    0x81AA
+0x8ABF    0x98F5
+0x8AC0    0x20D9C
+0x8AC1    0x6379
+0x8AC2    0x39FE
+0x8AC3    0x22775
+0x8AC4    0x8DC0
+0x8AC5    0x56A1
+0x8AC6    0x647C
+0x8AC7    0x3E43
+0x8AC9    0x2A601
+0x8ACA    0x20E09
+0x8ACB    0x22ACF
+0x8ACC    0x22CC9
+0x8ACE    0x210C8
+0x8ACF    0x239C2
+0x8AD0    0x3992
+0x8AD1    0x3A06
+0x8AD2    0x2829B
+0x8AD3    0x3578
+0x8AD4    0x25E49
+0x8AD5    0x220C7
+0x8AD6    0x5652
+0x8AD7    0x20F31
+0x8AD8    0x22CB2
+0x8AD9    0x29720
+0x8ADA    0x34BC
+0x8ADB    0x6C3D
+0x8ADC    0x24E3B
+0x8ADF    0x27574
+0x8AE0    0x22E8B
+0x8AE1    0x22208
+0x8AE2    0x2A65B
+0x8AE3    0x28CCD
+0x8AE4    0x20E7A
+0x8AE5    0x20C34
+0x8AE6    0x2681C
+0x8AE7    0x7F93
+0x8AE8    0x210CF
+0x8AE9    0x22803
+0x8AEA    0x22939
+0x8AEB    0x35FB
+0x8AEC    0x251E3
+0x8AED    0x20E8C
+0x8AEE    0x20F8D
+0x8AEF    0x20EAA
+0x8AF0    0x3F93
+0x8AF1    0x20F30
+0x8AF2    0x20D47
+0x8AF3    0x2114F
+0x8AF4    0x20E4C
+0x8AF6    0x20EAB
+0x8AF7    0x20BA9
+0x8AF8    0x20D48
+0x8AF9    0x210C0
+0x8AFA    0x2113D
+0x8AFB    0x3FF9
+0x8AFC    0x22696
+0x8AFD    0x6432
+0x8AFE    0x20FAD
+0x8B40    0x233F4
+0x8B41    0x27639
+0x8B42    0x22BCE
+0x8B43    0x20D7E
+0x8B44    0x20D7F
+0x8B45    0x22C51
+0x8B46    0x22C55
+0x8B47    0x3A18
+0x8B48    0x20E98
+0x8B49    0x210C7
+0x8B4A    0x20F2E
+0x8B4B    0x2A632
+0x8B4C    0x26B50
+0x8B4D    0x28CD2
+0x8B4E    0x28D99
+0x8B4F    0x28CCA
+0x8B50    0x95AA
+0x8B51    0x54CC
+0x8B52    0x82C4
+0x8B53    0x55B9
+0x8B55    0x29EC3
+0x8B56    0x9C26
+0x8B57    0x9AB6
+0x8B58    0x2775E
+0x8B59    0x22DEE
+0x8B5A    0x7140
+0x8B5B    0x816D
+0x8B5C    0x80EC
+0x8B5D    0x5C1C
+0x8B5E    0x26572
+0x8B5F    0x8134
+0x8B60    0x3797
+0x8B61    0x535F
+0x8B62    0x280BD
+0x8B63    0x91B6
+0x8B64    0x20EFA
+0x8B65    0x20E0F
+0x8B66    0x20E77
+0x8B67    0x20EFB
+0x8B68    0x35DD
+0x8B69    0x24DEB
+0x8B6A    0x3609
+0x8B6B    0x20CD6
+0x8B6C    0x56AF
+0x8B6D    0x227B5
+0x8B6E    0x210C9
+0x8B6F    0x20E10
+0x8B70    0x20E78
+0x8B71    0x21078
+0x8B72    0x21148
+0x8B73    0x28207
+0x8B74    0x21455
+0x8B75    0x20E79
+0x8B76    0x24E50
+0x8B77    0x22DA4
+0x8B78    0x5A54
+0x8B79    0x2101D
+0x8B7A    0x2101E
+0x8B7B    0x210F5
+0x8B7C    0x210F6
+0x8B7D    0x579C
+0x8B7E    0x20E11
+0x8BA1    0x27694
+0x8BA2    0x282CD
+0x8BA3    0x20FB5
+0x8BA4    0x20E7B
+0x8BA5    0x2517E
+0x8BA6    0x3703
+0x8BA7    0x20FB6
+0x8BA8    0x21180
+0x8BA9    0x252D8
+0x8BAA    0x2A2BD
+0x8BAB    0x249DA
+0x8BAC    0x2183A
+0x8BAD    0x24177
+0x8BAE    0x2827C
+0x8BAF    0x5899
+0x8BB0    0x5268
+0x8BB1    0x361A
+0x8BB2    0x2573D
+0x8BB3    0x7BB2
+0x8BB4    0x5B68
+0x8BB5    0x4800
+0x8BB6    0x4B2C
+0x8BB7    0x9F27
+0x8BB8    0x49E7
+0x8BB9    0x9C1F
+0x8BBA    0x9B8D
+0x8BBB    0x25B74
+0x8BBC    0x2313D
+0x8BBD    0x55FB
+0x8BBE    0x35F2
+0x8BBF    0x5689
+0x8BC0    0x4E28
+0x8BC1    0x5902
+0x8BC2    0x21BC1
+0x8BC3    0x2F878
+0x8BC4    0x9751
+0x8BC5    0x20086
+0x8BC6    0x4E5B
+0x8BC7    0x4EBB
+0x8BC8    0x353E
+0x8BC9    0x5C23
+0x8BCA    0x5F51
+0x8BCB    0x5FC4
+0x8BCC    0x38FA
+0x8BCD    0x624C
+0x8BCE    0x6535
+0x8BCF    0x6B7A
+0x8BD0    0x6C35
+0x8BD1    0x6C3A
+0x8BD2    0x706C
+0x8BD3    0x722B
+0x8BD4    0x4E2C
+0x8BD5    0x72AD
+0x8BD6    0x248E9
+0x8BD7    0x7F52
+0x8BD8    0x793B
+0x8BD9    0x7CF9
+0x8BDA    0x7F53
+0x8BDB    0x2626A
+0x8BDC    0x34C1
+0x8BDE    0x2634B
+0x8BDF    0x8002
+0x8BE0    0x8080
+0x8BE1    0x26612
+0x8BE2    0x26951
+0x8BE3    0x535D
+0x8BE4    0x8864
+0x8BE5    0x89C1
+0x8BE6    0x278B2
+0x8BE7    0x8BA0
+0x8BE8    0x8D1D
+0x8BE9    0x9485
+0x8BEA    0x9578
+0x8BEB    0x957F
+0x8BEC    0x95E8
+0x8BED    0x28E0F
+0x8BEE    0x97E6
+0x8BEF    0x9875
+0x8BF0    0x98CE
+0x8BF1    0x98DE
+0x8BF2    0x9963
+0x8BF3    0x29810
+0x8BF4    0x9C7C
+0x8BF5    0x9E1F
+0x8BF6    0x9EC4
+0x8BF7    0x6B6F
+0x8BF8    0xF907
+0x8BF9    0x4E37
+0x8BFA    0x20087
+0x8BFB    0x961D
+0x8BFC    0x6237
+0x8BFD    0x94A2
+0x8C40    0x503B
+0x8C41    0x6DFE
+0x8C42    0x29C73
+0x8C43    0xF57A
+0x8C44    0x3DC9
+0x8C45    0x888F
+0x8C46    0x2414E
+0x8C47    0x7077
+0x8C48    0x5CF5
+0x8C49    0x4B20
+0x8C4A    0x251CD
+0x8C4B    0x3559
+0x8C4C    0x25D30
+0x8C4D    0x6122
+0x8C4E    0x28A32
+0x8C4F    0x8FA7
+0x8C50    0x91F6
+0x8C51    0x7191
+0x8C52    0x6719
+0x8C53    0x73BA
+0x8C54    0x23281
+0x8C55    0x2A107
+0x8C56    0x3C8B
+0x8C57    0x21980
+0x8C58    0x4B10
+0x8C59    0x78E4
+0x8C5A    0x7402
+0x8C5B    0x51AE
+0x8C5C    0x2870F
+0x8C5D    0x4009
+0x8C5E    0x6A63
+0x8C5F    0x2A2BA
+0x8C60    0x4223
+0x8C61    0x860F
+0x8C63    0x7A2A
+0x8C64    0x29947
+0x8C65    0x28AEA
+0x8C66    0x9755
+0x8C67    0x704D
+0x8C68    0x5324
+0x8C69    0x2207E
+0x8C6A    0x93F4
+0x8C6B    0x76D9
+0x8C6C    0x289E3
+0x8C6D    0xF5A4
+0x8C6E    0x77DD
+0x8C6F    0x4EA3
+0x8C70    0x4FF0
+0x8C71    0x50BC
+0x8C72    0x4E2F
+0x8C73    0x4F17
+0x8C74    0xF5AB
+0x8C75    0x5434
+0x8C76    0x7D8B
+0x8C77    0x5892
+0x8C78    0x58D0
+0x8C79    0x21DB6
+0x8C7A    0x5E92
+0x8C7B    0x5E99
+0x8C7C    0x5FC2
+0x8C7D    0x22712
+0x8C7E    0x658B
+0x8CA1    0x233F9
+0x8CA2    0x6919
+0x8CA3    0x6A43
+0x8CA4    0x23C63
+0x8CA5    0x6CFF
+0x8CA7    0x7200
+0x8CA8    0x24505
+0x8CA9    0x738C
+0x8CAA    0x3EDB
+0x8CAB    0x24A13
+0x8CAC    0x5B15
+0x8CAD    0x74B9
+0x8CAE    0x8B83
+0x8CAF    0x25CA4
+0x8CB0    0x25695
+0x8CB1    0x7A93
+0x8CB2    0x7BEC
+0x8CB3    0x7CC3
+0x8CB4    0x7E6C
+0x8CB5    0x82F8
+0x8CB6    0x8597
+0x8CB7    0xF5CC
+0x8CB8    0x8890
+0x8CB9    0xF5CE
+0x8CBA    0x8EB9
+0x8CBB    0xF5D0
+0x8CBC    0x8FCF
+0x8CBD    0x855F
+0x8CBE    0x99E0
+0x8CBF    0x9221
+0x8CC0    0xF5D5
+0x8CC1    0x28DB9
+0x8CC2    0x2143F
+0x8CC3    0x4071
+0x8CC4    0x42A2
+0x8CC5    0x5A1A
+0x8CC9    0x9868
+0x8CCA    0x676B
+0x8CCB    0x4276
+0x8CCC    0x573D
+0x8CCE    0x85D6
+0x8CCF    0x2497B
+0x8CD0    0x82BF
+0x8CD1    0x2710D
+0x8CD2    0x4C81
+0x8CD3    0x26D74
+0x8CD4    0x5D7B
+0x8CD5    0x26B15
+0x8CD6    0x26FBE
+0x8CD7    0xF5EC
+0x8CD8    0xF5ED
+0x8CD9    0x5B96
+0x8CDA    0xF5EF
+0x8CDC    0x7E5B
+0x8D60    0x5D3E
+0x8D61    0x5D48
+0x8D62    0x5D56
+0x8D63    0x3DFC
+0x8D64    0x380F
+0x8D65    0x5DA4
+0x8D66    0x5DB9
+0x8D67    0x3820
+0x8D68    0x3838
+0x8D69    0x5E42
+0x8D6A    0x5EBD
+0x8D6B    0x5F25
+0x8D6C    0x5F83
+0x8D6D    0x3908
+0x8D6E    0x3914
+0x8D6F    0x393F
+0x8D70    0x394D
+0x8D71    0x60D7
+0x8D72    0x613D
+0x8D73    0x5CE5
+0x8D74    0x3989
+0x8D75    0x61B7
+0x8D76    0x61B9
+0x8D77    0x61CF
+0x8D78    0x39B8
+0x8D79    0x622C
+0x8D7A    0x6290
+0x8D7B    0x62E5
+0x8D7C    0x6318
+0x8D7D    0x39F8
+0x8D7E    0x56B1
+0x8DA1    0x3A03
+0x8DA2    0x63E2
+0x8DA3    0x63FB
+0x8DA4    0x6407
+0x8DA5    0x645A
+0x8DA6    0x3A4B
+0x8DA7    0x64C0
+0x8DA8    0x5D15
+0x8DA9    0x5621
+0x8DAA    0x9F9F
+0x8DAB    0x3A97
+0x8DAC    0x6586
+0x8DAD    0x3ABD
+0x8DAE    0x65FF
+0x8DAF    0x6653
+0x8DB0    0x3AF2
+0x8DB1    0x6692
+0x8DB2    0x3B22
+0x8DB3    0x6716
+0x8DB4    0x3B42
+0x8DB5    0x67A4
+0x8DB6    0x6800
+0x8DB7    0x3B58
+0x8DB8    0x684A
+0x8DB9    0x6884
+0x8DBA    0x3B72
+0x8DBB    0x3B71
+0x8DBC    0x3B7B
+0x8DBD    0x6909
+0x8DBE    0x6943
+0x8DBF    0x725C
+0x8DC0    0x6964
+0x8DC1    0x699F
+0x8DC2    0x6985
+0x8DC3    0x3BBC
+0x8DC4    0x69D6
+0x8DC5    0x3BDD
+0x8DC6    0x6A65
+0x8DC7    0x6A74
+0x8DC8    0x6A71
+0x8DC9    0x6A82
+0x8DCA    0x3BEC
+0x8DCB    0x6A99
+0x8DCC    0x3BF2
+0x8DCD    0x6AAB
+0x8DCE    0x6AB5
+0x8DCF    0x6AD4
+0x8DD0    0x6AF6
+0x8DD1    0x6B81
+0x8DD2    0x6BC1
+0x8DD3    0x6BEA
+0x8DD4    0x6C75
+0x8DD5    0x6CAA
+0x8DD6    0x3CCB
+0x8DD7    0x6D02
+0x8DD8    0x6D06
+0x8DD9    0x6D26
+0x8DDA    0x6D81
+0x8DDB    0x3CEF
+0x8DDC    0x6DA4
+0x8DDD    0x6DB1
+0x8DDE    0x6E15
+0x8DDF    0x6E18
+0x8DE0    0x6E29
+0x8DE1    0x6E86
+0x8DE2    0x289C0
+0x8DE3    0x6EBB
+0x8DE4    0x6EE2
+0x8DE5    0x6EDA
+0x8DE6    0x9F7F
+0x8DE7    0x6EE8
+0x8DE8    0x6EE9
+0x8DE9    0x6F24
+0x8DEA    0x6F34
+0x8DEB    0x3D46
+0x8DEC    0x23F41
+0x8DED    0x6F81
+0x8DEE    0x6FBE
+0x8DEF    0x3D6A
+0x8DF0    0x3D75
+0x8DF1    0x71B7
+0x8DF2    0x5C99
+0x8DF3    0x3D8A
+0x8DF4    0x702C
+0x8DF5    0x3D91
+0x8DF6    0x7050
+0x8DF7    0x7054
+0x8DF8    0x706F
+0x8DF9    0x707F
+0x8DFA    0x7089
+0x8DFB    0x20325
+0x8DFC    0x43C1
+0x8DFD    0x35F1
+0x8DFE    0x20ED8
+0x8E40    0x23ED7
+0x8E41    0x57BE
+0x8E42    0x26ED3
+0x8E43    0x713E
+0x8E44    0x257E0
+0x8E45    0x364E
+0x8E46    0x69A2
+0x8E47    0x28BE9
+0x8E48    0x5B74
+0x8E49    0x7A49
+0x8E4A    0x258E1
+0x8E4B    0x294D9
+0x8E4C    0x7A65
+0x8E4D    0x7A7D
+0x8E4E    0x259AC
+0x8E4F    0x7ABB
+0x8E50    0x7AB0
+0x8E51    0x7AC2
+0x8E52    0x7AC3
+0x8E53    0x71D1
+0x8E54    0x2648D
+0x8E55    0x41CA
+0x8E56    0x7ADA
+0x8E57    0x7ADD
+0x8E58    0x7AEA
+0x8E59    0x41EF
+0x8E5A    0x54B2
+0x8E5B    0x25C01
+0x8E5C    0x7B0B
+0x8E5D    0x7B55
+0x8E5E    0x7B29
+0x8E5F    0x2530E
+0x8E60    0x25CFE
+0x8E61    0x7BA2
+0x8E62    0x7B6F
+0x8E63    0x839C
+0x8E64    0x25BB4
+0x8E65    0x26C7F
+0x8E66    0x7BD0
+0x8E67    0x8421
+0x8E68    0x7B92
+0x8E6A    0x25D20
+0x8E6B    0x3DAD
+0x8E6C    0x25C65
+0x8E6D    0x8492
+0x8E6E    0x7BFA
+0x8E70    0x7C35
+0x8E71    0x25CC1
+0x8E72    0x7C44
+0x8E73    0x7C83
+0x8E74    0x24882
+0x8E75    0x7CA6
+0x8E76    0x667D
+0x8E77    0x24578
+0x8E78    0x7CC9
+0x8E79    0x7CC7
+0x8E7A    0x7CE6
+0x8E7B    0x7C74
+0x8E7C    0x7CF3
+0x8E7D    0x7CF5
+0x8EA1    0x7E67
+0x8EA2    0x451D
+0x8EA3    0x26E44
+0x8EA4    0x7D5D
+0x8EA5    0x26ED6
+0x8EA6    0x748D
+0x8EA7    0x7D89
+0x8EA8    0x7DAB
+0x8EA9    0x7135
+0x8EAA    0x7DB3
+0x8EAC    0x24057
+0x8EAD    0x26029
+0x8EAE    0x7DE4
+0x8EAF    0x3D13
+0x8EB0    0x7DF5
+0x8EB1    0x217F9
+0x8EB2    0x7DE5
+0x8EB3    0x2836D
+0x8EB5    0x26121
+0x8EB6    0x2615A
+0x8EB7    0x7E6E
+0x8EB8    0x7E92
+0x8EB9    0x432B
+0x8EBA    0x946C
+0x8EBB    0x7E27
+0x8EBC    0x7F40
+0x8EBD    0x7F41
+0x8EBE    0x7F47
+0x8EBF    0x7936
+0x8EC0    0x262D0
+0x8EC1    0x99E1
+0x8EC2    0x7F97
+0x8EC3    0x26351
+0x8EC4    0x7FA3
+0x8EC5    0x21661
+0x8EC6    0x20068
+0x8EC7    0x455C
+0x8EC8    0x23766
+0x8EC9    0x4503
+0x8ECA    0x2833A
+0x8ECB    0x7FFA
+0x8ECC    0x26489
+0x8ECE    0x8008
+0x8ECF    0x801D
+0x8ED1    0x802F
+0x8ED2    0x2A087
+0x8ED3    0x26CC3
+0x8ED4    0x803B
+0x8ED5    0x803C
+0x8ED6    0x8061
+0x8ED7    0x22714
+0x8ED8    0x4989
+0x8ED9    0x26626
+0x8EDA    0x23DE3
+0x8EDB    0x266E8
+0x8EDC    0x6725
+0x8EDD    0x80A7
+0x8EDE    0x28A48
+0x8EDF    0x8107
+0x8EE0    0x811A
+0x8EE1    0x58B0
+0x8EE2    0x226F6
+0x8EE3    0x6C7F
+0x8EE4    0x26498
+0x8EE5    0x24FB8
+0x8EE6    0x64E7
+0x8EE7    0x2148A
+0x8EE8    0x8218
+0x8EE9    0x2185E
+0x8EEA    0x6A53
+0x8EEB    0x24A65
+0x8EEC    0x24A95
+0x8EED    0x447A
+0x8EEE    0x8229
+0x8EEF    0x20B0D
+0x8EF0    0x26A52
+0x8EF1    0x23D7E
+0x8EF2    0x4FF9
+0x8EF3    0x214FD
+0x8EF4    0x84E2
+0x8EF5    0x8362
+0x8EF6    0x26B0A
+0x8EF7    0x249A7
+0x8EF8    0x23530
+0x8EF9    0x21773
+0x8EFA    0x23DF8
+0x8EFB    0x82AA
+0x8EFC    0x691B
+0x8EFD    0x2F994
+0x8EFE    0x41DB
+0x8F40    0x854B
+0x8F41    0x82D0
+0x8F42    0x831A
+0x8F43    0x20E16
+0x8F44    0x217B4
+0x8F45    0x36C1
+0x8F46    0x2317D
+0x8F47    0x2355A
+0x8F48    0x827B
+0x8F49    0x82E2
+0x8F4A    0x8318
+0x8F4B    0x23E8B
+0x8F4C    0x26DA3
+0x8F4D    0x26B05
+0x8F4E    0x26B97
+0x8F4F    0x235CE
+0x8F50    0x3DBF
+0x8F51    0x831D
+0x8F52    0x55EC
+0x8F53    0x8385
+0x8F54    0x450B
+0x8F55    0x26DA5
+0x8F56    0x83AC
+0x8F58    0x83D3
+0x8F59    0x347E
+0x8F5A    0x26ED4
+0x8F5B    0x6A57
+0x8F5C    0x855A
+0x8F5D    0x3496
+0x8F5E    0x26E42
+0x8F5F    0x22EEF
+0x8F60    0x8458
+0x8F61    0x25BE4
+0x8F62    0x8471
+0x8F63    0x3DD3
+0x8F64    0x44E4
+0x8F65    0x6AA7
+0x8F66    0x844A
+0x8F67    0x23CB5
+0x8F68    0x7958
+0x8F6A    0x26B96
+0x8F6B    0x26E77
+0x8F6C    0x26E43
+0x8F6D    0x84DE
+0x8F6F    0x8391
+0x8F70    0x44A0
+0x8F71    0x8493
+0x8F72    0x84E4
+0x8F73    0x25C91
+0x8F74    0x4240
+0x8F75    0x25CC0
+0x8F76    0x4543
+0x8F77    0x8534
+0x8F78    0x5AF2
+0x8F79    0x26E99
+0x8F7A    0x4527
+0x8F7B    0x8573
+0x8F7C    0x4516
+0x8F7D    0x67BF
+0x8F7E    0x8616
+0x8FA1    0x28625
+0x8FA2    0x2863B
+0x8FA3    0x85C1
+0x8FA4    0x27088
+0x8FA5    0x8602
+0x8FA6    0x21582
+0x8FA7    0x270CD
+0x8FA8    0x2F9B2
+0x8FA9    0x456A
+0x8FAA    0x8628
+0x8FAB    0x3648
+0x8FAC    0x218A2
+0x8FAD    0x53F7
+0x8FAE    0x2739A
+0x8FAF    0x867E
+0x8FB0    0x8771
+0x8FB1    0x2A0F8
+0x8FB2    0x87EE
+0x8FB3    0x22C27
+0x8FB4    0x87B1
+0x8FB5    0x87DA
+0x8FB6    0x880F
+0x8FB7    0x5661
+0x8FB8    0x866C
+0x8FB9    0x6856
+0x8FBA    0x460F
+0x8FBB    0x8845
+0x8FBC    0x8846
+0x8FBD    0x275E0
+0x8FBE    0x23DB9
+0x8FBF    0x275E4
+0x8FC0    0x885E
+0x8FC1    0x889C
+0x8FC2    0x465B
+0x8FC3    0x88B4
+0x8FC4    0x88B5
+0x8FC5    0x63C1
+0x8FC6    0x88C5
+0x8FC7    0x7777
+0x8FC8    0x2770F
+0x8FC9    0x8987
+0x8FCA    0x898A
+0x8FCD    0x89A7
+0x8FCE    0x89BC
+0x8FCF    0x28A25
+0x8FD0    0x89E7
+0x8FD1    0x27924
+0x8FD2    0x27ABD
+0x8FD3    0x8A9C
+0x8FD4    0x7793
+0x8FD5    0x91FE
+0x8FD6    0x8A90
+0x8FD7    0x27A59
+0x8FD8    0x7AE9
+0x8FD9    0x27B3A
+0x8FDA    0x23F8F
+0x8FDB    0x4713
+0x8FDC    0x27B38
+0x8FDD    0x717C
+0x8FDE    0x8B0C
+0x8FDF    0x8B1F
+0x8FE0    0x25430
+0x8FE1    0x25565
+0x8FE2    0x8B3F
+0x8FE3    0x8B4C
+0x8FE4    0x8B4D
+0x8FE5    0x8AA9
+0x8FE6    0x24A7A
+0x8FE7    0x8B90
+0x8FE8    0x8B9B
+0x8FE9    0x8AAF
+0x8FEA    0x216DF
+0x8FEB    0x4615
+0x8FEC    0x884F
+0x8FED    0x8C9B
+0x8FEE    0x27D54
+0x8FEF    0x27D8F
+0x8FF0    0x2F9D4
+0x8FF1    0x3725
+0x8FF2    0x27D53
+0x8FF3    0x8CD6
+0x8FF4    0x27D98
+0x8FF5    0x27DBD
+0x8FF6    0x8D12
+0x8FF7    0x8D03
+0x8FF8    0x21910
+0x8FF9    0x8CDB
+0x8FFA    0x705C
+0x8FFB    0x8D11
+0x8FFC    0x24CC9
+0x8FFD    0x3ED0
+0x9040    0x8DA9
+0x9041    0x28002
+0x9042    0x21014
+0x9043    0x2498A
+0x9044    0x3B7C
+0x9045    0x281BC
+0x9046    0x2710C
+0x9047    0x7AE7
+0x9048    0x8EAD
+0x9049    0x8EB6
+0x904A    0x8EC3
+0x904B    0x92D4
+0x904C    0x8F19
+0x904D    0x8F2D
+0x904E    0x28365
+0x904F    0x28412
+0x9050    0x8FA5
+0x9051    0x9303
+0x9052    0x2A29F
+0x9053    0x20A50
+0x9054    0x8FB3
+0x9055    0x492A
+0x9056    0x289DE
+0x9057    0x2853D
+0x9058    0x23DBB
+0x9059    0x5EF8
+0x905A    0x23262
+0x905B    0x8FF9
+0x905C    0x2A014
+0x905D    0x286BC
+0x905E    0x28501
+0x905F    0x22325
+0x9060    0x3980
+0x9061    0x26ED7
+0x9062    0x9037
+0x9063    0x2853C
+0x9064    0x27ABE
+0x9065    0x9061
+0x9066    0x2856C
+0x9067    0x2860B
+0x9068    0x90A8
+0x9069    0x28713
+0x906A    0x90C4
+0x906B    0x286E6
+0x906C    0x90AE
+0x906E    0x9167
+0x906F    0x3AF0
+0x9070    0x91A9
+0x9071    0x91C4
+0x9072    0x7CAC
+0x9073    0x28933
+0x9074    0x21E89
+0x9075    0x920E
+0x9076    0x6C9F
+0x9077    0x9241
+0x9078    0x9262
+0x9079    0x255B9
+0x907B    0x28AC6
+0x907C    0x23C9B
+0x907D    0x28B0C
+0x907E    0x255DB
+0x90A1    0x20D31
+0x90A2    0x932C
+0x90A3    0x936B
+0x90A4    0x28AE1
+0x90A5    0x28BEB
+0x90A6    0x708F
+0x90A7    0x5AC3
+0x90A8    0x28AE2
+0x90A9    0x28AE5
+0x90AA    0x4965
+0x90AB    0x9244
+0x90AC    0x28BEC
+0x90AD    0x28C39
+0x90AE    0x28BFF
+0x90AF    0x9373
+0x90B0    0x945B
+0x90B1    0x8EBC
+0x90B2    0x9585
+0x90B3    0x95A6
+0x90B4    0x9426
+0x90B5    0x95A0
+0x90B6    0x6FF6
+0x90B7    0x42B9
+0x90B8    0x2267A
+0x90B9    0x286D8
+0x90BA    0x2127C
+0x90BB    0x23E2E
+0x90BC    0x49DF
+0x90BD    0x6C1C
+0x90BE    0x967B
+0x90BF    0x9696
+0x90C0    0x416C
+0x90C1    0x96A3
+0x90C2    0x26ED5
+0x90C3    0x61DA
+0x90C4    0x96B6
+0x90C5    0x78F5
+0x90C6    0x28AE0
+0x90C7    0x96BD
+0x90C8    0x53CC
+0x90C9    0x49A1
+0x90CA    0x26CB8
+0x90CB    0x20274
+0x90CC    0x26410
+0x90CD    0x290AF
+0x90CE    0x290E5
+0x90CF    0x24AD1
+0x90D0    0x21915
+0x90D1    0x2330A
+0x90D2    0x9731
+0x90D3    0x8642
+0x90D4    0x9736
+0x90D5    0x4A0F
+0x90D6    0x453D
+0x90D7    0x4585
+0x90D8    0x24AE9
+0x90D9    0x7075
+0x90DA    0x5B41
+0x90DB    0x971B
+0x90DD    0x291D5
+0x90DE    0x9757
+0x90DF    0x5B4A
+0x90E0    0x291EB
+0x90E1    0x975F
+0x90E2    0x9425
+0x90E3    0x50D0
+0x90E4    0x230B7
+0x90E5    0x230BC
+0x90E6    0x9789
+0x90E7    0x979F
+0x90E8    0x97B1
+0x90E9    0x97BE
+0x90EA    0x97C0
+0x90EB    0x97D2
+0x90EC    0x97E0
+0x90ED    0x2546C
+0x90EE    0x97EE
+0x90EF    0x741C
+0x90F0    0x29433
+0x90F2    0x97F5
+0x90F3    0x2941D
+0x90F4    0x2797A
+0x90F5    0x4AD1
+0x90F6    0x9834
+0x90F7    0x9833
+0x90F8    0x984B
+0x90F9    0x9866
+0x90FA    0x3B0E
+0x90FB    0x27175
+0x90FC    0x3D51
+0x90FD    0x20630
+0x90FE    0x2415C
+0x9140    0x25706
+0x9141    0x98CA
+0x9142    0x98B7
+0x9143    0x98C8
+0x9144    0x98C7
+0x9145    0x4AFF
+0x9146    0x26D27
+0x9147    0x216D3
+0x9148    0x55B0
+0x9149    0x98E1
+0x914A    0x98E6
+0x914B    0x98EC
+0x914C    0x9378
+0x914D    0x9939
+0x914E    0x24A29
+0x914F    0x4B72
+0x9150    0x29857
+0x9151    0x29905
+0x9152    0x99F5
+0x9153    0x9A0C
+0x9154    0x9A3B
+0x9155    0x9A10
+0x9156    0x9A58
+0x9157    0x25725
+0x9158    0x36C4
+0x9159    0x290B1
+0x915A    0x29BD5
+0x915B    0x9AE0
+0x915C    0x9AE2
+0x915D    0x29B05
+0x915E    0x9AF4
+0x915F    0x4C0E
+0x9160    0x9B14
+0x9161    0x9B2D
+0x9162    0x28600
+0x9163    0x5034
+0x9164    0x9B34
+0x9165    0x269A8
+0x9166    0x38C3
+0x9167    0x2307D
+0x9168    0x9B50
+0x9169    0x9B40
+0x916A    0x29D3E
+0x916B    0x5A45
+0x916C    0x21863
+0x916D    0x9B8E
+0x916E    0x2424B
+0x916F    0x9C02
+0x9170    0x9BFF
+0x9171    0x9C0C
+0x9172    0x29E68
+0x9173    0x9DD4
+0x9174    0x29FB7
+0x9175    0x2A192
+0x9176    0x2A1AB
+0x9177    0x2A0E1
+0x9178    0x2A123
+0x9179    0x2A1DF
+0x917A    0x9D7E
+0x917B    0x9D83
+0x917C    0x2A134
+0x917D    0x9E0E
+0x917E    0x6888
+0x91A1    0x9DC4
+0x91A2    0x2215B
+0x91A3    0x2A193
+0x91A4    0x2A220
+0x91A5    0x2193B
+0x91A6    0x2A233
+0x91A7    0x9D39
+0x91A8    0x2A0B9
+0x91A9    0x2A2B4
+0x91AA    0x9E90
+0x91AB    0x9E95
+0x91AC    0x9E9E
+0x91AD    0x9EA2
+0x91AE    0x4D34
+0x91AF    0x9EAA
+0x91B0    0x9EAF
+0x91B1    0x24364
+0x91B2    0x9EC1
+0x91B3    0x3B60
+0x91B4    0x39E5
+0x91B5    0x3D1D
+0x91B6    0x4F32
+0x91B7    0x37BE
+0x91B8    0x28C2B
+0x91B9    0x9F02
+0x91BA    0x9F08
+0x91BB    0x4B96
+0x91BC    0x9424
+0x91BD    0x26DA2
+0x91BE    0x9F17
+0x91C0    0x9F39
+0x91C1    0x569F
+0x91C2    0x568A
+0x91C3    0x9F45
+0x91C4    0x99B8
+0x91C5    0x2908B
+0x91C6    0x97F2
+0x91C7    0x847F
+0x91C8    0x9F62
+0x91C9    0x9F69
+0x91CA    0x7ADC
+0x91CB    0x9F8E
+0x91CC    0x7216
+0x91CD    0x4BBE
+0x91CE    0x24975
+0x91CF    0x249BB
+0x91D0    0x7177
+0x91D1    0x249F8
+0x91D2    0x24348
+0x91D3    0x24A51
+0x91D4    0x739E
+0x91D5    0x28BDA
+0x91D6    0x218FA
+0x91D7    0x799F
+0x91D8    0x2897E
+0x91D9    0x28E36
+0x91DA    0x9369
+0x91DB    0x93F3
+0x91DC    0x28A44
+0x91DD    0x92EC
+0x91DE    0x9381
+0x91DF    0x93CB
+0x91E0    0x2896C
+0x91E1    0x244B9
+0x91E2    0x7217
+0x91E3    0x3EEB
+0x91E4    0x7772
+0x91E5    0x7A43
+0x91E6    0x70D0
+0x91E7    0x24473
+0x91E8    0x243F8
+0x91E9    0x717E
+0x91EA    0x217EF
+0x91EB    0x70A3
+0x91EC    0x218BE
+0x91ED    0x23599
+0x91EE    0x3EC7
+0x91EF    0x21885
+0x91F0    0x2542F
+0x91F1    0x217F8
+0x91F2    0x3722
+0x91F3    0x216FB
+0x91F4    0x21839
+0x91F5    0x36E1
+0x91F6    0x21774
+0x91F7    0x218D1
+0x91F8    0x25F4B
+0x91F9    0x3723
+0x91FA    0x216C0
+0x91FB    0x575B
+0x91FC    0x24A25
+0x91FD    0x213FE
+0x91FE    0x212A8
+0x9240    0x213C6
+0x9241    0x214B6
+0x9242    0x8503
+0x9243    0x236A6
+0x9245    0x8455
+0x9246    0x24994
+0x9247    0x27165
+0x9248    0x23E31
+0x9249    0x2555C
+0x924A    0x23EFB
+0x924B    0x27052
+0x924C    0x44F4
+0x924D    0x236EE
+0x924E    0x2999D
+0x924F    0x26F26
+0x9250    0x67F9
+0x9251    0x3733
+0x9252    0x3C15
+0x9253    0x3DE7
+0x9254    0x586C
+0x9255    0x21922
+0x9256    0x6810
+0x9257    0x4057
+0x9258    0x2373F
+0x9259    0x240E1
+0x925A    0x2408B
+0x925B    0x2410F
+0x925C    0x26C21
+0x925D    0x54CB
+0x925E    0x569E
+0x925F    0x266B1
+0x9260    0x5692
+0x9261    0x20FDF
+0x9262    0x20BA8
+0x9263    0x20E0D
+0x9264    0x93C6
+0x9265    0x28B13
+0x9266    0x939C
+0x9267    0x4EF8
+0x9268    0x512B
+0x9269    0x3819
+0x926A    0x24436
+0x926B    0x4EBC
+0x926C    0x20465
+0x926D    0x2037F
+0x926E    0x4F4B
+0x926F    0x4F8A
+0x9270    0x25651
+0x9271    0x5A68
+0x9272    0x201AB
+0x9273    0x203CB
+0x9274    0x3999
+0x9275    0x2030A
+0x9276    0x20414
+0x9277    0x3435
+0x9278    0x4F29
+0x9279    0x202C0
+0x927A    0x28EB3
+0x927B    0x20275
+0x927C    0x8ADA
+0x927D    0x2020C
+0x927E    0x4E98
+0x92A1    0x50CD
+0x92A2    0x510D
+0x92A3    0x4FA2
+0x92A4    0x4F03
+0x92A5    0x24A0E
+0x92A6    0x23E8A
+0x92A7    0x4F42
+0x92A8    0x502E
+0x92A9    0x506C
+0x92AA    0x5081
+0x92AB    0x4FCC
+0x92AC    0x4FE5
+0x92AD    0x5058
+0x92AE    0x50FC
+0x92B3    0x6E76
+0x92B4    0x23595
+0x92B5    0x23E39
+0x92B6    0x23EBF
+0x92B7    0x6D72
+0x92B8    0x21884
+0x92B9    0x23E89
+0x92BA    0x51A8
+0x92BB    0x51C3
+0x92BC    0x205E0
+0x92BD    0x44DD
+0x92BE    0x204A3
+0x92BF    0x20492
+0x92C0    0x20491
+0x92C1    0x8D7A
+0x92C2    0x28A9C
+0x92C3    0x2070E
+0x92C4    0x5259
+0x92C5    0x52A4
+0x92C6    0x20873
+0x92C7    0x52E1
+0x92C9    0x467A
+0x92CA    0x718C
+0x92CB    0x2438C
+0x92CC    0x20C20
+0x92CD    0x249AC
+0x92CE    0x210E4
+0x92CF    0x69D1
+0x92D0    0x20E1D
+0x92D2    0x3EDE
+0x92D3    0x7499
+0x92D4    0x7414
+0x92D5    0x7456
+0x92D6    0x7398
+0x92D7    0x4B8E
+0x92D8    0x24ABC
+0x92D9    0x2408D
+0x92DA    0x53D0
+0x92DB    0x3584
+0x92DC    0x720F
+0x92DD    0x240C9
+0x92DE    0x55B4
+0x92DF    0x20345
+0x92E0    0x54CD
+0x92E1    0x20BC6
+0x92E2    0x571D
+0x92E3    0x925D
+0x92E4    0x96F4
+0x92E5    0x9366
+0x92E6    0x57DD
+0x92E7    0x578D
+0x92E8    0x577F
+0x92E9    0x363E
+0x92EA    0x58CB
+0x92EB    0x5A99
+0x92EC    0x28A46
+0x92ED    0x216FA
+0x92EE    0x2176F
+0x92EF    0x21710
+0x92F0    0x5A2C
+0x92F1    0x59B8
+0x92F2    0x928F
+0x92F3    0x5A7E
+0x92F4    0x5ACF
+0x92F5    0x5A12
+0x92F6    0x25946
+0x92F7    0x219F3
+0x92F8    0x21861
+0x92F9    0x24295
+0x92FA    0x36F5
+0x92FB    0x6D05
+0x92FC    0x7443
+0x92FD    0x5A21
+0x92FE    0x25E83
+0x9340    0x5A81
+0x9341    0x28BD7
+0x9342    0x20413
+0x9343    0x93E0
+0x9344    0x748C
+0x9345    0x21303
+0x9346    0x7105
+0x9347    0x4972
+0x9348    0x9408
+0x9349    0x289FB
+0x934A    0x93BD
+0x934B    0x37A0
+0x934C    0x5C1E
+0x934D    0x5C9E
+0x934E    0x5E5E
+0x934F    0x5E48
+0x9350    0x21996
+0x9351    0x2197C
+0x9352    0x23AEE
+0x9353    0x5ECD
+0x9354    0x5B4F
+0x9355    0x21903
+0x9356    0x21904
+0x9357    0x3701
+0x9358    0x218A0
+0x9359    0x36DD
+0x935A    0x216FE
+0x935B    0x36D3
+0x935C    0x812A
+0x935D    0x28A47
+0x935E    0x21DBA
+0x935F    0x23472
+0x9360    0x289A8
+0x9361    0x5F0C
+0x9362    0x5F0E
+0x9363    0x21927
+0x9364    0x217AB
+0x9365    0x5A6B
+0x9366    0x2173B
+0x9367    0x5B44
+0x9368    0x8614
+0x9369    0x275FD
+0x936A    0x8860
+0x936B    0x607E
+0x936C    0x22860
+0x936D    0x2262B
+0x936E    0x5FDB
+0x936F    0x3EB8
+0x9370    0x225AF
+0x9371    0x225BE
+0x9372    0x29088
+0x9373    0x26F73
+0x9374    0x61C0
+0x9375    0x2003E
+0x9376    0x20046
+0x9377    0x2261B
+0x9378    0x6199
+0x9379    0x6198
+0x937A    0x6075
+0x937B    0x22C9B
+0x937C    0x22D07
+0x937D    0x246D4
+0x937E    0x2914D
+0x93A1    0x6471
+0x93A2    0x24665
+0x93A3    0x22B6A
+0x93A4    0x3A29
+0x93A5    0x22B22
+0x93A6    0x23450
+0x93A7    0x298EA
+0x93A8    0x22E78
+0x93A9    0x6337
+0x93AA    0x2A45B
+0x93AB    0x64B6
+0x93AC    0x6331
+0x93AD    0x63D1
+0x93AE    0x249E3
+0x93AF    0x22D67
+0x93B0    0x62A4
+0x93B1    0x22CA1
+0x93B2    0x643B
+0x93B3    0x656B
+0x93B4    0x6972
+0x93B5    0x3BF4
+0x93B6    0x2308E
+0x93B7    0x232AD
+0x93B8    0x24989
+0x93B9    0x232AB
+0x93BA    0x550D
+0x93BB    0x232E0
+0x93BC    0x218D9
+0x93BD    0x2943F
+0x93BE    0x66CE
+0x93BF    0x23289
+0x93C0    0x231B3
+0x93C1    0x3AE0
+0x93C2    0x4190
+0x93C3    0x25584
+0x93C4    0x28B22
+0x93C5    0x2558F
+0x93C6    0x216FC
+0x93C7    0x2555B
+0x93C8    0x25425
+0x93C9    0x78EE
+0x93CA    0x23103
+0x93CB    0x2182A
+0x93CC    0x23234
+0x93CD    0x3464
+0x93CE    0x2320F
+0x93CF    0x23182
+0x93D0    0x242C9
+0x93D1    0x668E
+0x93D2    0x26D24
+0x93D3    0x666B
+0x93D4    0x4B93
+0x93D5    0x6630
+0x93D6    0x27870
+0x93D7    0x21DEB
+0x93D8    0x6663
+0x93D9    0x232D2
+0x93DA    0x232E1
+0x93DB    0x661E
+0x93DC    0x25872
+0x93DD    0x38D1
+0x93DE    0x2383A
+0x93DF    0x237BC
+0x93E0    0x3B99
+0x93E1    0x237A2
+0x93E2    0x233FE
+0x93E3    0x74D0
+0x93E4    0x3B96
+0x93E5    0x678F
+0x93E6    0x2462A
+0x93E7    0x68B6
+0x93E8    0x681E
+0x93E9    0x3BC4
+0x93EA    0x6ABE
+0x93EB    0x3863
+0x93EC    0x237D5
+0x93ED    0x24487
+0x93EE    0x6A33
+0x93EF    0x6A52
+0x93F0    0x6AC9
+0x93F1    0x6B05
+0x93F2    0x21912
+0x93F3    0x6511
+0x93F4    0x6898
+0x93F5    0x6A4C
+0x93F6    0x3BD7
+0x93F7    0x6A7A
+0x93F8    0x6B57
+0x93F9    0x23FC0
+0x93FA    0x23C9A
+0x93FB    0x93A0
+0x93FC    0x92F2
+0x93FD    0x28BEA
+0x93FE    0x28ACB
+0x9440    0x9289
+0x9441    0x2801E
+0x9442    0x289DC
+0x9443    0x9467
+0x9444    0x6DA5
+0x9445    0x6F0B
+0x9446    0x249EC
+0x9448    0x23F7F
+0x9449    0x3D8F
+0x944A    0x6E04
+0x944B    0x2403C
+0x944C    0x5A3D
+0x944D    0x6E0A
+0x944E    0x5847
+0x944F    0x6D24
+0x9450    0x7842
+0x9451    0x713B
+0x9452    0x2431A
+0x9453    0x24276
+0x9454    0x70F1
+0x9455    0x7250
+0x9456    0x7287
+0x9457    0x7294
+0x9458    0x2478F
+0x9459    0x24725
+0x945A    0x5179
+0x945B    0x24AA4
+0x945C    0x205EB
+0x945D    0x747A
+0x945E    0x23EF8
+0x945F    0x2365F
+0x9460    0x24A4A
+0x9461    0x24917
+0x9462    0x25FE1
+0x9463    0x3F06
+0x9464    0x3EB1
+0x9465    0x24ADF
+0x9466    0x28C23
+0x9467    0x23F35
+0x9468    0x60A7
+0x9469    0x3EF3
+0x946A    0x74CC
+0x946B    0x743C
+0x946C    0x9387
+0x946D    0x7437
+0x946E    0x449F
+0x946F    0x26DEA
+0x9470    0x4551
+0x9471    0x7583
+0x9472    0x3F63
+0x9473    0x24CD9
+0x9474    0x24D06
+0x9475    0x3F58
+0x9476    0x7555
+0x9477    0x7673
+0x9478    0x2A5C6
+0x9479    0x3B19
+0x947A    0x7468
+0x947B    0x28ACC
+0x947C    0x249AB
+0x947D    0x2498E
+0x947E    0x3AFB
+0x94A1    0x3DCD
+0x94A2    0x24A4E
+0x94A3    0x3EFF
+0x94A4    0x249C5
+0x94A5    0x248F3
+0x94A6    0x91FA
+0x94A7    0x5732
+0x94A8    0x9342
+0x94A9    0x28AE3
+0x94AA    0x21864
+0x94AB    0x50DF
+0x94AC    0x25221
+0x94AD    0x251E7
+0x94AE    0x7778
+0x94AF    0x23232
+0x94B0    0x770E
+0x94B1    0x770F
+0x94B2    0x777B
+0x94B3    0x24697
+0x94B4    0x23781
+0x94B5    0x3A5E
+0x94B6    0x248F0
+0x94B7    0x7438
+0x94B8    0x749B
+0x94B9    0x3EBF
+0x94BA    0x24ABA
+0x94BB    0x24AC7
+0x94BC    0x40C8
+0x94BD    0x24A96
+0x94BE    0x261AE
+0x94BF    0x9307
+0x94C0    0x25581
+0x94C1    0x781E
+0x94C2    0x788D
+0x94C3    0x7888
+0x94C4    0x78D2
+0x94C5    0x73D0
+0x94C6    0x7959
+0x94C7    0x27741
+0x94C8    0x256E3
+0x94C9    0x410E
+0x94CB    0x8496
+0x94CC    0x79A5
+0x94CD    0x6A2D
+0x94CE    0x23EFA
+0x94CF    0x7A3A
+0x94D0    0x79F4
+0x94D1    0x416E
+0x94D2    0x216E6
+0x94D3    0x4132
+0x94D4    0x9235
+0x94D5    0x79F1
+0x94D6    0x20D4C
+0x94D7    0x2498C
+0x94D8    0x20299
+0x94D9    0x23DBA
+0x94DA    0x2176E
+0x94DB    0x3597
+0x94DC    0x556B
+0x94DD    0x3570
+0x94DE    0x36AA
+0x94DF    0x201D4
+0x94E0    0x20C0D
+0x94E1    0x7AE2
+0x94E2    0x5A59
+0x94E3    0x226F5
+0x94E4    0x25AAF
+0x94E5    0x25A9C
+0x94E6    0x5A0D
+0x94E7    0x2025B
+0x94E8    0x78F0
+0x94E9    0x5A2A
+0x94EA    0x25BC6
+0x94EB    0x7AFE
+0x94EC    0x41F9
+0x94ED    0x7C5D
+0x94EE    0x7C6D
+0x94EF    0x4211
+0x94F0    0x25BB3
+0x94F1    0x25EBC
+0x94F2    0x25EA6
+0x94F3    0x7CCD
+0x94F4    0x249F9
+0x94F5    0x217B0
+0x94F6    0x7C8E
+0x94F7    0x7C7C
+0x94F8    0x7CAE
+0x94F9    0x6AB2
+0x94FA    0x7DDC
+0x94FB    0x7E07
+0x94FC    0x7DD3
+0x94FD    0x7F4E
+0x94FE    0x26261
+0x9540    0x2615C
+0x9541    0x27B48
+0x9542    0x7D97
+0x9543    0x25E82
+0x9544    0x426A
+0x9545    0x26B75
+0x9546    0x20916
+0x9547    0x67D6
+0x9548    0x2004E
+0x9549    0x235CF
+0x954A    0x57C4
+0x954B    0x26412
+0x954C    0x263F8
+0x954D    0x24962
+0x954E    0x7FDD
+0x954F    0x7B27
+0x9550    0x2082C
+0x9551    0x25AE9
+0x9552    0x25D43
+0x9553    0x7B0C
+0x9554    0x25E0E
+0x9555    0x99E6
+0x9556    0x8645
+0x9557    0x9A63
+0x9558    0x6A1C
+0x9559    0x2343F
+0x955A    0x39E2
+0x955B    0x249F7
+0x955C    0x265AD
+0x955D    0x9A1F
+0x955E    0x265A0
+0x955F    0x8480
+0x9560    0x27127
+0x9561    0x26CD1
+0x9562    0x44EA
+0x9563    0x8137
+0x9564    0x4402
+0x9565    0x80C6
+0x9566    0x8109
+0x9567    0x8142
+0x9568    0x267B4
+0x9569    0x98C3
+0x956A    0x26A42
+0x956B    0x8262
+0x956C    0x8265
+0x956D    0x26A51
+0x956E    0x8453
+0x956F    0x26DA7
+0x9570    0x8610
+0x9571    0x2721B
+0x9572    0x5A86
+0x9573    0x417F
+0x9574    0x21840
+0x9575    0x5B2B
+0x9576    0x218A1
+0x9577    0x5AE4
+0x9578    0x218D8
+0x9579    0x86A0
+0x957A    0x2F9BC
+0x957B    0x23D8F
+0x957C    0x882D
+0x957D    0x27422
+0x957E    0x5A02
+0x95A1    0x886E
+0x95A2    0x4F45
+0x95A3    0x8887
+0x95A4    0x88BF
+0x95A5    0x88E6
+0x95A6    0x8965
+0x95A7    0x894D
+0x95A8    0x25683
+0x95A9    0x8954
+0x95AA    0x27785
+0x95AB    0x27784
+0x95AC    0x28BF5
+0x95AD    0x28BD9
+0x95AE    0x28B9C
+0x95AF    0x289F9
+0x95B0    0x3EAD
+0x95B1    0x84A3
+0x95B2    0x46F5
+0x95B3    0x46CF
+0x95B4    0x37F2
+0x95B5    0x8A3D
+0x95B6    0x8A1C
+0x95B7    0x29448
+0x95B8    0x5F4D
+0x95B9    0x922B
+0x95BA    0x24284
+0x95BB    0x65D4
+0x95BC    0x7129
+0x95BD    0x70C4
+0x95BE    0x21845
+0x95BF    0x9D6D
+0x95C0    0x8C9F
+0x95C1    0x8CE9
+0x95C2    0x27DDC
+0x95C3    0x599A
+0x95C4    0x77C3
+0x95C5    0x59F0
+0x95C6    0x436E
+0x95C7    0x36D4
+0x95C8    0x8E2A
+0x95C9    0x8EA7
+0x95CA    0x24C09
+0x95CB    0x8F30
+0x95CC    0x8F4A
+0x95CD    0x42F4
+0x95CE    0x6C58
+0x95CF    0x6FBB
+0x95D0    0x22321
+0x95D1    0x489B
+0x95D2    0x6F79
+0x95D3    0x6E8B
+0x95D4    0x217DA
+0x95D5    0x9BE9
+0x95D6    0x36B5
+0x95D7    0x2492F
+0x95D8    0x90BB
+0x95DA    0x5571
+0x95DB    0x4906
+0x95DC    0x91BB
+0x95DD    0x9404
+0x95DE    0x28A4B
+0x95DF    0x4062
+0x95E0    0x28AFC
+0x95E1    0x9427
+0x95E2    0x28C1D
+0x95E3    0x28C3B
+0x95E4    0x84E5
+0x95E5    0x8A2B
+0x95E6    0x9599
+0x95E7    0x95A7
+0x95E8    0x9597
+0x95E9    0x9596
+0x95EA    0x28D34
+0x95EB    0x7445
+0x95EC    0x3EC2
+0x95ED    0x248FF
+0x95EE    0x24A42
+0x95EF    0x243EA
+0x95F0    0x3EE7
+0x95F1    0x23225
+0x95F2    0x968F
+0x95F3    0x28EE7
+0x95F4    0x28E66
+0x95F5    0x28E65
+0x95F6    0x3ECC
+0x95F7    0x249ED
+0x95F8    0x24A78
+0x95F9    0x23FEE
+0x95FA    0x7412
+0x95FB    0x746B
+0x95FC    0x3EFC
+0x95FD    0x9741
+0x95FE    0x290B0
+0x9640    0x6847
+0x9641    0x4A1D
+0x9642    0x29093
+0x9643    0x257DF
+0x9645    0x9368
+0x9646    0x28989
+0x9647    0x28C26
+0x9648    0x28B2F
+0x9649    0x263BE
+0x964A    0x92BA
+0x964B    0x5B11
+0x964C    0x8B69
+0x964D    0x493C
+0x964E    0x73F9
+0x964F    0x2421B
+0x9650    0x979B
+0x9651    0x9771
+0x9652    0x9938
+0x9653    0x20F26
+0x9654    0x5DC1
+0x9655    0x28BC5
+0x9656    0x24AB2
+0x9657    0x981F
+0x9658    0x294DA
+0x9659    0x92F6
+0x965A    0x295D7
+0x965B    0x91E5
+0x965C    0x44C0
+0x965D    0x28B50
+0x965E    0x24A67
+0x965F    0x28B64
+0x9660    0x98DC
+0x9661    0x28A45
+0x9662    0x3F00
+0x9663    0x922A
+0x9664    0x4925
+0x9665    0x8414
+0x9666    0x993B
+0x9667    0x994D
+0x9668    0x27B06
+0x9669    0x3DFD
+0x966A    0x999B
+0x966B    0x4B6F
+0x966C    0x99AA
+0x966D    0x9A5C
+0x966E    0x28B65
+0x966F    0x258C8
+0x9670    0x6A8F
+0x9671    0x9A21
+0x9672    0x5AFE
+0x9673    0x9A2F
+0x9674    0x298F1
+0x9675    0x4B90
+0x9676    0x29948
+0x9677    0x99BC
+0x9678    0x4BBD
+0x9679    0x4B97
+0x967A    0x937D
+0x967B    0x5872
+0x967C    0x21302
+0x967D    0x5822
+0x967E    0x249B8
+0x96A1    0x214E8
+0x96A2    0x7844
+0x96A3    0x2271F
+0x96A4    0x23DB8
+0x96A5    0x68C5
+0x96A6    0x3D7D
+0x96A7    0x9458
+0x96A8    0x3927
+0x96A9    0x6150
+0x96AA    0x22781
+0x96AB    0x2296B
+0x96AC    0x6107
+0x96AD    0x9C4F
+0x96AE    0x9C53
+0x96AF    0x9C7B
+0x96B0    0x9C35
+0x96B1    0x9C10
+0x96B2    0x9B7F
+0x96B3    0x9BCF
+0x96B4    0x29E2D
+0x96B5    0x9B9F
+0x96B6    0x2A1F5
+0x96B7    0x2A0FE
+0x96B8    0x9D21
+0x96B9    0x4CAE
+0x96BA    0x24104
+0x96BB    0x9E18
+0x96BC    0x4CB0
+0x96BD    0x9D0C
+0x96BE    0x2A1B4
+0x96BF    0x2A0ED
+0x96C0    0x2A0F3
+0x96C1    0x2992F
+0x96C2    0x9DA5
+0x96C3    0x84BD
+0x96C4    0x26E12
+0x96C5    0x26FDF
+0x96C6    0x26B82
+0x96C7    0x85FC
+0x96C8    0x4533
+0x96C9    0x26DA4
+0x96CA    0x26E84
+0x96CB    0x26DF0
+0x96CC    0x8420
+0x96CD    0x85EE
+0x96CE    0x26E00
+0x96CF    0x237D7
+0x96D0    0x26064
+0x96D1    0x79E2
+0x96D2    0x2359C
+0x96D3    0x23640
+0x96D4    0x492D
+0x96D5    0x249DE
+0x96D6    0x3D62
+0x96D7    0x93DB
+0x96D8    0x92BE
+0x96D9    0x9348
+0x96DA    0x202BF
+0x96DB    0x78B9
+0x96DC    0x9277
+0x96DD    0x944D
+0x96DE    0x4FE4
+0x96DF    0x3440
+0x96E0    0x9064
+0x96E1    0x2555D
+0x96E2    0x783D
+0x96E3    0x7854
+0x96E4    0x78B6
+0x96E5    0x784B
+0x96E6    0x21757
+0x96E7    0x231C9
+0x96E8    0x24941
+0x96E9    0x369A
+0x96EA    0x4F72
+0x96EB    0x6FDA
+0x96EC    0x6FD9
+0x96EE    0x701E
+0x96EF    0x5414
+0x96F0    0x241B5
+0x96F1    0x57BB
+0x96F2    0x58F3
+0x96F3    0x578A
+0x96F4    0x9D16
+0x96F5    0x57D7
+0x96F6    0x7134
+0x96F7    0x34AF
+0x96F8    0x241AC
+0x96F9    0x71EB
+0x96FA    0x26C40
+0x96FB    0x24F97
+0x96FD    0x217B5
+0x96FE    0x28A49
+0x9740    0x610C
+0x9741    0x5ACE
+0x9742    0x5A0B
+0x9743    0x42BC
+0x9744    0x24488
+0x9745    0x372C
+0x9746    0x4B7B
+0x9747    0x289FC
+0x9748    0x93BB
+0x9749    0x93B8
+0x974A    0x218D6
+0x974B    0x20F1D
+0x974C    0x8472
+0x974D    0x26CC0
+0x974E    0x21413
+0x974F    0x242FA
+0x9750    0x22C26
+0x9751    0x243C1
+0x9752    0x5994
+0x9753    0x23DB7
+0x9754    0x26741
+0x9755    0x7DA8
+0x9756    0x2615B
+0x9757    0x260A4
+0x9758    0x249B9
+0x9759    0x2498B
+0x975A    0x289FA
+0x975B    0x92E5
+0x975C    0x73E2
+0x975D    0x3EE9
+0x975E    0x74B4
+0x975F    0x28B63
+0x9760    0x2189F
+0x9761    0x3EE1
+0x9762    0x24AB3
+0x9763    0x6AD8
+0x9764    0x73F3
+0x9765    0x73FB
+0x9766    0x3ED6
+0x9767    0x24A3E
+0x9768    0x24A94
+0x9769    0x217D9
+0x976A    0x24A66
+0x976B    0x203A7
+0x976C    0x21424
+0x976D    0x249E5
+0x976E    0x7448
+0x976F    0x24916
+0x9770    0x70A5
+0x9771    0x24976
+0x9772    0x9284
+0x9773    0x73E6
+0x9774    0x935F
+0x9775    0x204FE
+0x9776    0x9331
+0x9777    0x28ACE
+0x9778    0x28A16
+0x9779    0x9386
+0x977A    0x28BE7
+0x977B    0x255D5
+0x977C    0x4935
+0x977D    0x28A82
+0x977E    0x716B
+0x97A1    0x24943
+0x97A2    0x20CFF
+0x97A3    0x56A4
+0x97A4    0x2061A
+0x97A5    0x20BEB
+0x97A6    0x20CB8
+0x97A7    0x5502
+0x97A8    0x79C4
+0x97A9    0x217FA
+0x97AA    0x7DFE
+0x97AB    0x216C2
+0x97AC    0x24A50
+0x97AD    0x21852
+0x97AE    0x452E
+0x97AF    0x9401
+0x97B0    0x370A
+0x97B1    0x28AC0
+0x97B2    0x249AD
+0x97B3    0x59B0
+0x97B4    0x218BF
+0x97B5    0x21883
+0x97B6    0x27484
+0x97B7    0x5AA1
+0x97B8    0x36E2
+0x97B9    0x23D5B
+0x97BA    0x36B0
+0x97BB    0x925F
+0x97BC    0x5A79
+0x97BD    0x28A81
+0x97BE    0x21862
+0x97BF    0x9374
+0x97C0    0x3CCD
+0x97C1    0x20AB4
+0x97C2    0x4A96
+0x97C3    0x398A
+0x97C4    0x50F4
+0x97C5    0x3D69
+0x97C6    0x3D4C
+0x97C7    0x2139C
+0x97C8    0x7175
+0x97C9    0x42FB
+0x97CA    0x28218
+0x97CB    0x6E0F
+0x97CC    0x290E4
+0x97CD    0x44EB
+0x97CE    0x6D57
+0x97CF    0x27E4F
+0x97D0    0x7067
+0x97D1    0x6CAF
+0x97D2    0x3CD6
+0x97D3    0x23FED
+0x97D4    0x23E2D
+0x97D5    0x6E02
+0x97D6    0x6F0C
+0x97D7    0x3D6F
+0x97D8    0x203F5
+0x97D9    0x7551
+0x97DA    0x36BC
+0x97DB    0x34C8
+0x97DC    0x4680
+0x97DD    0x3EDA
+0x97DE    0x4871
+0x97DF    0x59C4
+0x97E0    0x926E
+0x97E1    0x493E
+0x97E2    0x8F41
+0x97E3    0x28C1C
+0x97E4    0x26BC0
+0x97E5    0x5812
+0x97E6    0x57C8
+0x97E7    0x36D6
+0x97E8    0x21452
+0x97E9    0x70FE
+0x97EA    0x24362
+0x97EB    0x24A71
+0x97EC    0x22FE3
+0x97ED    0x212B0
+0x97EE    0x223BD
+0x97EF    0x68B9
+0x97F0    0x6967
+0x97F1    0x21398
+0x97F2    0x234E5
+0x97F3    0x27BF4
+0x97F4    0x236DF
+0x97F5    0x28A83
+0x97F6    0x237D6
+0x97F7    0x233FA
+0x97F8    0x24C9F
+0x97F9    0x6A1A
+0x97FA    0x236AD
+0x97FB    0x26CB7
+0x97FC    0x843E
+0x97FD    0x44DF
+0x97FE    0x44CE
+0x9840    0x26D26
+0x9841    0x26D51
+0x9842    0x26C82
+0x9843    0x26FDE
+0x9844    0x6F17
+0x9845    0x27109
+0x9846    0x833D
+0x9847    0x2173A
+0x9848    0x83ED
+0x9849    0x26C80
+0x984A    0x27053
+0x984B    0x217DB
+0x984C    0x5989
+0x984D    0x5A82
+0x984E    0x217B3
+0x984F    0x5A61
+0x9850    0x5A71
+0x9851    0x21905
+0x9852    0x241FC
+0x9853    0x372D
+0x9854    0x59EF
+0x9855    0x2173C
+0x9856    0x36C7
+0x9857    0x718E
+0x9858    0x9390
+0x9859    0x669A
+0x985A    0x242A5
+0x985B    0x5A6E
+0x985C    0x5A2B
+0x985D    0x24293
+0x985E    0x6A2B
+0x985F    0x23EF9
+0x9860    0x27736
+0x9861    0x2445B
+0x9862    0x242CA
+0x9863    0x711D
+0x9864    0x24259
+0x9865    0x289E1
+0x9866    0x4FB0
+0x9867    0x26D28
+0x9868    0x5CC2
+0x9869    0x244CE
+0x986A    0x27E4D
+0x986B    0x243BD
+0x986C    0x6A0C
+0x986D    0x24256
+0x986E    0x21304
+0x986F    0x70A6
+0x9870    0x7133
+0x9871    0x243E9
+0x9872    0x3DA5
+0x9873    0x6CDF
+0x9874    0x2F825
+0x9875    0x24A4F
+0x9876    0x7E65
+0x9877    0x59EB
+0x9878    0x5D2F
+0x9879    0x3DF3
+0x987A    0x5F5C
+0x987B    0x24A5D
+0x987C    0x217DF
+0x987D    0x7DA4
+0x987E    0x8426
+0x98A1    0x5485
+0x98A2    0x23AFA
+0x98A3    0x23300
+0x98A4    0x20214
+0x98A5    0x577E
+0x98A6    0x208D5
+0x98A7    0x20619
+0x98A8    0x3FE5
+0x98A9    0x21F9E
+0x98AA    0x2A2B6
+0x98AB    0x7003
+0x98AC    0x2915B
+0x98AD    0x5D70
+0x98AE    0x738F
+0x98AF    0x7CD3
+0x98B0    0x28A59
+0x98B1    0x29420
+0x98B2    0x4FC8
+0x98B3    0x7FE7
+0x98B4    0x72CD
+0x98B5    0x7310
+0x98B6    0x27AF4
+0x98B7    0x7338
+0x98B8    0x7339
+0x98B9    0x256F6
+0x98BA    0x7341
+0x98BB    0x7348
+0x98BC    0x3EA9
+0x98BD    0x27B18
+0x98BE    0x906C
+0x98BF    0x71F5
+0x98C0    0x248F2
+0x98C1    0x73E1
+0x98C2    0x81F6
+0x98C3    0x3ECA
+0x98C4    0x770C
+0x98C5    0x3ED1
+0x98C6    0x6CA2
+0x98C7    0x56FD
+0x98C8    0x7419
+0x98C9    0x741E
+0x98CA    0x741F
+0x98CB    0x3EE2
+0x98CC    0x3EF0
+0x98CD    0x3EF4
+0x98CE    0x3EFA
+0x98CF    0x74D3
+0x98D0    0x3F0E
+0x98D1    0x3F53
+0x98D2    0x7542
+0x98D3    0x756D
+0x98D4    0x7572
+0x98D5    0x758D
+0x98D6    0x3F7C
+0x98D7    0x75C8
+0x98D8    0x75DC
+0x98D9    0x3FC0
+0x98DA    0x764D
+0x98DB    0x3FD7
+0x98DC    0x7674
+0x98DD    0x3FDC
+0x98DE    0x767A
+0x98DF    0x24F5C
+0x98E0    0x7188
+0x98E1    0x5623
+0x98E2    0x8980
+0x98E3    0x5869
+0x98E4    0x401D
+0x98E5    0x7743
+0x98E6    0x4039
+0x98E7    0x6761
+0x98E8    0x4045
+0x98E9    0x35DB
+0x98EA    0x7798
+0x98EB    0x406A
+0x98EC    0x406F
+0x98ED    0x5C5E
+0x98EE    0x77BE
+0x98EF    0x77CB
+0x98F0    0x58F2
+0x98F1    0x7818
+0x98F2    0x70B9
+0x98F3    0x781C
+0x98F4    0x40A8
+0x98F5    0x7839
+0x98F6    0x7847
+0x98F7    0x7851
+0x98F8    0x7866
+0x98F9    0x8448
+0x98FA    0x25535
+0x98FB    0x7933
+0x98FC    0x6803
+0x98FD    0x7932
+0x98FE    0x4103
+0x9940    0x4109
+0x9941    0x7991
+0x9942    0x7999
+0x9943    0x8FBB
+0x9944    0x7A06
+0x9945    0x8FBC
+0x9946    0x4167
+0x9947    0x7A91
+0x9948    0x41B2
+0x9949    0x7ABC
+0x994A    0x8279
+0x994B    0x41C4
+0x994C    0x7ACF
+0x994D    0x7ADB
+0x994E    0x41CF
+0x994F    0x4E21
+0x9950    0x7B62
+0x9951    0x7B6C
+0x9952    0x7B7B
+0x9953    0x7C12
+0x9954    0x7C1B
+0x9955    0x4260
+0x9956    0x427A
+0x9957    0x7C7B
+0x9958    0x7C9C
+0x9959    0x428C
+0x995A    0x7CB8
+0x995B    0x4294
+0x995C    0x7CED
+0x995D    0x8F93
+0x995E    0x70C0
+0x995F    0x20CCF
+0x9960    0x7DCF
+0x9961    0x7DD4
+0x9962    0x7DD0
+0x9963    0x7DFD
+0x9964    0x7FAE
+0x9965    0x7FB4
+0x9966    0x729F
+0x9967    0x4397
+0x9968    0x8020
+0x9969    0x8025
+0x996A    0x7B39
+0x996B    0x802E
+0x996C    0x8031
+0x996D    0x8054
+0x996E    0x3DCC
+0x996F    0x57B4
+0x9970    0x70A0
+0x9971    0x80B7
+0x9972    0x80E9
+0x9973    0x43ED
+0x9974    0x810C
+0x9975    0x732A
+0x9976    0x810E
+0x9977    0x8112
+0x9978    0x7560
+0x9979    0x8114
+0x997A    0x4401
+0x997B    0x3B39
+0x997C    0x8156
+0x997D    0x8159
+0x997E    0x815A
+0x99A1    0x4413
+0x99A2    0x583A
+0x99A3    0x817C
+0x99A4    0x8184
+0x99A5    0x4425
+0x99A6    0x8193
+0x99A7    0x442D
+0x99A8    0x81A5
+0x99A9    0x57EF
+0x99AA    0x81C1
+0x99AB    0x81E4
+0x99AC    0x8254
+0x99AD    0x448F
+0x99AE    0x82A6
+0x99AF    0x8276
+0x99B0    0x82CA
+0x99B1    0x82D8
+0x99B2    0x82FF
+0x99B3    0x44B0
+0x99B4    0x8357
+0x99B5    0x9669
+0x99B6    0x698A
+0x99B7    0x8405
+0x99B8    0x70F5
+0x99B9    0x8464
+0x99BA    0x60E3
+0x99BB    0x8488
+0x99BC    0x4504
+0x99BD    0x84BE
+0x99BE    0x84E1
+0x99BF    0x84F8
+0x99C0    0x8510
+0x99C1    0x8538
+0x99C2    0x8552
+0x99C3    0x453B
+0x99C4    0x856F
+0x99C5    0x8570
+0x99C6    0x85E0
+0x99C7    0x4577
+0x99C8    0x8672
+0x99C9    0x8692
+0x99CA    0x86B2
+0x99CB    0x86EF
+0x99CC    0x9645
+0x99CD    0x878B
+0x99CE    0x4606
+0x99CF    0x4617
+0x99D0    0x88AE
+0x99D1    0x88FF
+0x99D2    0x8924
+0x99D3    0x8947
+0x99D4    0x8991
+0x99D5    0x27967
+0x99D6    0x8A29
+0x99D7    0x8A38
+0x99D8    0x8A94
+0x99D9    0x8AB4
+0x99DA    0x8C51
+0x99DB    0x8CD4
+0x99DC    0x8CF2
+0x99DD    0x8D1C
+0x99DE    0x4798
+0x99DF    0x585F
+0x99E0    0x8DC3
+0x99E1    0x47ED
+0x99E2    0x4EEE
+0x99E3    0x8E3A
+0x99E4    0x55D8
+0x99E5    0x5754
+0x99E6    0x8E71
+0x99E7    0x55F5
+0x99E8    0x8EB0
+0x99E9    0x4837
+0x99EA    0x8ECE
+0x99EB    0x8EE2
+0x99EC    0x8EE4
+0x99ED    0x8EED
+0x99EE    0x8EF2
+0x99EF    0x8FB7
+0x99F0    0x8FC1
+0x99F1    0x8FCA
+0x99F2    0x8FCC
+0x99F3    0x9033
+0x99F4    0x99C4
+0x99F5    0x48AD
+0x99F6    0x98E0
+0x99F7    0x9213
+0x99F8    0x491E
+0x99F9    0x9228
+0x99FA    0x9258
+0x99FB    0x926B
+0x99FC    0x92B1
+0x99FD    0x92AE
+0x99FE    0x92BF
+0x9A40    0x92E3
+0x9A41    0x92EB
+0x9A42    0x92F3
+0x9A43    0x92F4
+0x9A44    0x92FD
+0x9A45    0x9343
+0x9A46    0x9384
+0x9A47    0x93AD
+0x9A48    0x4945
+0x9A49    0x4951
+0x9A4A    0x9EBF
+0x9A4B    0x9417
+0x9A4C    0x5301
+0x9A4D    0x941D
+0x9A4E    0x942D
+0x9A4F    0x943E
+0x9A50    0x496A
+0x9A51    0x9454
+0x9A52    0x9479
+0x9A53    0x952D
+0x9A54    0x95A2
+0x9A55    0x49A7
+0x9A56    0x95F4
+0x9A57    0x9633
+0x9A58    0x49E5
+0x9A59    0x67A0
+0x9A5A    0x4A24
+0x9A5B    0x9740
+0x9A5C    0x4A35
+0x9A5D    0x97B2
+0x9A5E    0x97C2
+0x9A5F    0x5654
+0x9A60    0x4AE4
+0x9A61    0x60E8
+0x9A62    0x98B9
+0x9A63    0x4B19
+0x9A64    0x98F1
+0x9A65    0x5844
+0x9A66    0x990E
+0x9A67    0x9919
+0x9A68    0x51B4
+0x9A69    0x991C
+0x9A6A    0x9937
+0x9A6B    0x9942
+0x9A6C    0x995D
+0x9A6D    0x9962
+0x9A6E    0x4B70
+0x9A6F    0x99C5
+0x9A70    0x4B9D
+0x9A71    0x9A3C
+0x9A72    0x9B0F
+0x9A73    0x7A83
+0x9A74    0x9B69
+0x9A75    0x9B81
+0x9A76    0x9BDD
+0x9A77    0x9BF1
+0x9A78    0x9BF4
+0x9A79    0x4C6D
+0x9A7A    0x9C20
+0x9A7B    0x376F
+0x9A7C    0x21BC2
+0x9A7D    0x9D49
+0x9A7E    0x9C3A
+0x9AA1    0x9EFE
+0x9AA2    0x5650
+0x9AA3    0x9D93
+0x9AA4    0x9DBD
+0x9AA5    0x9DC0
+0x9AA6    0x9DFC
+0x9AA7    0x94F6
+0x9AA8    0x8FB6
+0x9AA9    0x9E7B
+0x9AAA    0x9EAC
+0x9AAB    0x9EB1
+0x9AAC    0x9EBD
+0x9AAD    0x9EC6
+0x9AAE    0x94DC
+0x9AAF    0x9EE2
+0x9AB0    0x9EF1
+0x9AB1    0x9EF8
+0x9AB2    0x7AC8
+0x9AB3    0x9F44
+0x9AB4    0x20094
+0x9AB5    0x202B7
+0x9AB6    0x203A0
+0x9AB7    0x691A
+0x9AB8    0x94C3
+0x9AB9    0x59AC
+0x9ABA    0x204D7
+0x9ABB    0x5840
+0x9ABC    0x94C1
+0x9ABD    0x37B9
+0x9ABE    0x205D5
+0x9ABF    0x20615
+0x9AC0    0x20676
+0x9AC1    0x216BA
+0x9AC2    0x5757
+0x9AC3    0x7173
+0x9AC4    0x20AC2
+0x9AC5    0x20ACD
+0x9AC6    0x20BBF
+0x9AC7    0x546A
+0x9AC8    0x2F83B
+0x9AC9    0x20BCB
+0x9ACA    0x549E
+0x9ACB    0x20BFB
+0x9ACC    0x20C3B
+0x9ACD    0x20C53
+0x9ACE    0x20C65
+0x9ACF    0x20C7C
+0x9AD0    0x60E7
+0x9AD1    0x20C8D
+0x9AD2    0x567A
+0x9AD3    0x20CB5
+0x9AD4    0x20CDD
+0x9AD5    0x20CED
+0x9AD6    0x20D6F
+0x9AD7    0x20DB2
+0x9AD8    0x20DC8
+0x9AD9    0x6955
+0x9ADA    0x9C2F
+0x9ADB    0x87A5
+0x9ADC    0x20E04
+0x9ADD    0x20E0E
+0x9ADE    0x20ED7
+0x9ADF    0x20F90
+0x9AE0    0x20F2D
+0x9AE1    0x20E73
+0x9AE2    0x5C20
+0x9AE3    0x20FBC
+0x9AE4    0x5E0B
+0x9AE5    0x2105C
+0x9AE6    0x2104F
+0x9AE7    0x21076
+0x9AE8    0x671E
+0x9AE9    0x2107B
+0x9AEA    0x21088
+0x9AEB    0x21096
+0x9AEC    0x3647
+0x9AED    0x210BF
+0x9AEE    0x210D3
+0x9AEF    0x2112F
+0x9AF0    0x2113B
+0x9AF1    0x5364
+0x9AF2    0x84AD
+0x9AF3    0x212E3
+0x9AF4    0x21375
+0x9AF5    0x21336
+0x9AF6    0x8B81
+0x9AF7    0x21577
+0x9AF8    0x21619
+0x9AF9    0x217C3
+0x9AFA    0x217C7
+0x9AFB    0x4E78
+0x9AFC    0x70BB
+0x9AFD    0x2182D
+0x9AFE    0x2196A
+0x9B40    0x21A2D
+0x9B41    0x21A45
+0x9B42    0x21C2A
+0x9B43    0x21C70
+0x9B44    0x21CAC
+0x9B45    0x21EC8
+0x9B46    0x62C3
+0x9B47    0x21ED5
+0x9B48    0x21F15
+0x9B49    0x7198
+0x9B4A    0x6855
+0x9B4B    0x22045
+0x9B4C    0x69E9
+0x9B4D    0x36C8
+0x9B4E    0x2227C
+0x9B4F    0x223D7
+0x9B50    0x223FA
+0x9B51    0x2272A
+0x9B52    0x22871
+0x9B53    0x2294F
+0x9B54    0x82FD
+0x9B55    0x22967
+0x9B56    0x22993
+0x9B57    0x22AD5
+0x9B58    0x89A5
+0x9B59    0x22AE8
+0x9B5A    0x8FA0
+0x9B5B    0x22B0E
+0x9B5C    0x97B8
+0x9B5D    0x22B3F
+0x9B5E    0x9847
+0x9B5F    0x9ABD
+0x9B60    0x22C4C
+0x9B62    0x22C88
+0x9B63    0x22CB7
+0x9B64    0x25BE8
+0x9B65    0x22D08
+0x9B66    0x22D12
+0x9B67    0x22DB7
+0x9B68    0x22D95
+0x9B69    0x22E42
+0x9B6A    0x22F74
+0x9B6B    0x22FCC
+0x9B6C    0x23033
+0x9B6D    0x23066
+0x9B6E    0x2331F
+0x9B6F    0x233DE
+0x9B70    0x5FB1
+0x9B71    0x6648
+0x9B72    0x66BF
+0x9B73    0x27A79
+0x9B74    0x23567
+0x9B75    0x235F3
+0x9B77    0x249BA
+0x9B79    0x2361A
+0x9B7A    0x23716
+0x9B7C    0x20346
+0x9B7D    0x58B5
+0x9B7E    0x670E
+0x9BA1    0x6918
+0x9BA2    0x23AA7
+0x9BA3    0x27657
+0x9BA4    0x25FE2
+0x9BA5    0x23E11
+0x9BA6    0x23EB9
+0x9BA7    0x275FE
+0x9BA8    0x2209A
+0x9BA9    0x48D0
+0x9BAA    0x4AB8
+0x9BAB    0x24119
+0x9BAC    0x28A9A
+0x9BAD    0x242EE
+0x9BAE    0x2430D
+0x9BAF    0x2403B
+0x9BB0    0x24334
+0x9BB1    0x24396
+0x9BB2    0x24A45
+0x9BB3    0x205CA
+0x9BB4    0x51D2
+0x9BB5    0x20611
+0x9BB6    0x599F
+0x9BB7    0x21EA8
+0x9BB8    0x3BBE
+0x9BB9    0x23CFF
+0x9BBA    0x24404
+0x9BBB    0x244D6
+0x9BBC    0x5788
+0x9BBD    0x24674
+0x9BBE    0x399B
+0x9BBF    0x2472F
+0x9BC0    0x285E8
+0x9BC1    0x299C9
+0x9BC2    0x3762
+0x9BC3    0x221C3
+0x9BC4    0x8B5E
+0x9BC5    0x28B4E
+0x9BC7    0x24812
+0x9BC8    0x248FB
+0x9BC9    0x24A15
+0x9BCA    0x7209
+0x9BCB    0x24AC0
+0x9BCC    0x20C78
+0x9BCD    0x5965
+0x9BCE    0x24EA5
+0x9BCF    0x24F86
+0x9BD0    0x20779
+0x9BD1    0x8EDA
+0x9BD2    0x2502C
+0x9BD3    0x528F
+0x9BD4    0x573F
+0x9BD5    0x7171
+0x9BD6    0x25299
+0x9BD7    0x25419
+0x9BD8    0x23F4A
+0x9BD9    0x24AA7
+0x9BDA    0x55BC
+0x9BDB    0x25446
+0x9BDC    0x2546E
+0x9BDD    0x26B52
+0x9BDF    0x3473
+0x9BE0    0x2553F
+0x9BE1    0x27632
+0x9BE2    0x2555E
+0x9BE3    0x4718
+0x9BE4    0x25562
+0x9BE5    0x25566
+0x9BE6    0x257C7
+0x9BE7    0x2493F
+0x9BE8    0x2585D
+0x9BE9    0x5066
+0x9BEA    0x34FB
+0x9BEB    0x233CC
+0x9BED    0x25903
+0x9BEE    0x477C
+0x9BEF    0x28948
+0x9BF0    0x25AAE
+0x9BF1    0x25B89
+0x9BF2    0x25C06
+0x9BF3    0x21D90
+0x9BF4    0x57A1
+0x9BF5    0x7151
+0x9BF7    0x26102
+0x9BF8    0x27C12
+0x9BF9    0x9056
+0x9BFA    0x261B2
+0x9BFB    0x24F9A
+0x9BFC    0x8B62
+0x9BFD    0x26402
+0x9BFE    0x2644A
+0x9C40    0x5D5B
+0x9C41    0x26BF7
+0x9C43    0x26484
+0x9C44    0x2191C
+0x9C45    0x8AEA
+0x9C46    0x249F6
+0x9C47    0x26488
+0x9C48    0x23FEF
+0x9C49    0x26512
+0x9C4A    0x4BC0
+0x9C4B    0x265BF
+0x9C4C    0x266B5
+0x9C4D    0x2271B
+0x9C4E    0x9465
+0x9C4F    0x257E1
+0x9C50    0x6195
+0x9C51    0x5A27
+0x9C52    0x2F8CD
+0x9C54    0x56B9
+0x9C55    0x24521
+0x9C56    0x266FC
+0x9C57    0x4E6A
+0x9C58    0x24934
+0x9C59    0x9656
+0x9C5A    0x6D8F
+0x9C5B    0x26CBD
+0x9C5C    0x3618
+0x9C5D    0x8977
+0x9C5E    0x26799
+0x9C5F    0x2686E
+0x9C60    0x26411
+0x9C61    0x2685E
+0x9C63    0x268C7
+0x9C64    0x7B42
+0x9C65    0x290C0
+0x9C66    0x20A11
+0x9C67    0x26926
+0x9C69    0x26939
+0x9C6A    0x7A45
+0x9C6C    0x269FA
+0x9C6D    0x9A26
+0x9C6E    0x26A2D
+0x9C6F    0x365F
+0x9C70    0x26469
+0x9C71    0x20021
+0x9C72    0x7983
+0x9C73    0x26A34
+0x9C74    0x26B5B
+0x9C75    0x5D2C
+0x9C76    0x23519
+0x9C78    0x26B9D
+0x9C79    0x46D0
+0x9C7A    0x26CA4
+0x9C7B    0x753B
+0x9C7C    0x8865
+0x9C7D    0x26DAE
+0x9C7E    0x58B6
+0x9CA1    0x371C
+0x9CA2    0x2258D
+0x9CA3    0x2704B
+0x9CA4    0x271CD
+0x9CA5    0x3C54
+0x9CA6    0x27280
+0x9CA7    0x27285
+0x9CA8    0x9281
+0x9CA9    0x2217A
+0x9CAA    0x2728B
+0x9CAB    0x9330
+0x9CAC    0x272E6
+0x9CAD    0x249D0
+0x9CAE    0x6C39
+0x9CAF    0x949F
+0x9CB0    0x27450
+0x9CB1    0x20EF8
+0x9CB2    0x8827
+0x9CB3    0x88F5
+0x9CB4    0x22926
+0x9CB5    0x28473
+0x9CB6    0x217B1
+0x9CB7    0x6EB8
+0x9CB8    0x24A2A
+0x9CB9    0x21820
+0x9CBA    0x39A4
+0x9CBB    0x36B9
+0x9CBE    0x453F
+0x9CBF    0x66B6
+0x9CC0    0x29CAD
+0x9CC1    0x298A4
+0x9CC2    0x8943
+0x9CC3    0x277CC
+0x9CC4    0x27858
+0x9CC5    0x56D6
+0x9CC6    0x40DF
+0x9CC7    0x2160A
+0x9CC8    0x39A1
+0x9CC9    0x2372F
+0x9CCA    0x280E8
+0x9CCB    0x213C5
+0x9CCC    0x71AD
+0x9CCD    0x8366
+0x9CCE    0x279DD
+0x9CCF    0x291A8
+0x9CD1    0x4CB7
+0x9CD2    0x270AF
+0x9CD3    0x289AB
+0x9CD4    0x279FD
+0x9CD5    0x27A0A
+0x9CD6    0x27B0B
+0x9CD7    0x27D66
+0x9CD8    0x2417A
+0x9CD9    0x7B43
+0x9CDA    0x797E
+0x9CDB    0x28009
+0x9CDC    0x6FB5
+0x9CDD    0x2A2DF
+0x9CDE    0x6A03
+0x9CDF    0x28318
+0x9CE0    0x53A2
+0x9CE1    0x26E07
+0x9CE2    0x93BF
+0x9CE3    0x6836
+0x9CE4    0x975D
+0x9CE5    0x2816F
+0x9CE6    0x28023
+0x9CE7    0x269B5
+0x9CE8    0x213ED
+0x9CE9    0x2322F
+0x9CEA    0x28048
+0x9CEB    0x5D85
+0x9CEC    0x28C30
+0x9CED    0x28083
+0x9CEE    0x5715
+0x9CEF    0x9823
+0x9CF0    0x28949
+0x9CF1    0x5DAB
+0x9CF2    0x24988
+0x9CF3    0x65BE
+0x9CF4    0x69D5
+0x9CF5    0x53D2
+0x9CF6    0x24AA5
+0x9CF7    0x23F81
+0x9CF8    0x3C11
+0x9CF9    0x6736
+0x9CFA    0x28090
+0x9CFB    0x280F4
+0x9CFC    0x2812E
+0x9CFD    0x21FA1
+0x9CFE    0x2814F
+0x9D40    0x28189
+0x9D41    0x281AF
+0x9D42    0x2821A
+0x9D43    0x28306
+0x9D44    0x2832F
+0x9D45    0x2838A
+0x9D46    0x35CA
+0x9D47    0x28468
+0x9D48    0x286AA
+0x9D49    0x48FA
+0x9D4A    0x63E6
+0x9D4B    0x28956
+0x9D4C    0x7808
+0x9D4D    0x9255
+0x9D4E    0x289B8
+0x9D4F    0x43F2
+0x9D50    0x289E7
+0x9D51    0x43DF
+0x9D52    0x289E8
+0x9D53    0x28B46
+0x9D54    0x28BD4
+0x9D55    0x59F8
+0x9D56    0x28C09
+0x9D58    0x28FC5
+0x9D59    0x290EC
+0x9D5B    0x29110
+0x9D5C    0x2913C
+0x9D5D    0x3DF7
+0x9D5E    0x2915E
+0x9D5F    0x24ACA
+0x9D60    0x8FD0
+0x9D61    0x728F
+0x9D62    0x568B
+0x9D63    0x294E7
+0x9D64    0x295E9
+0x9D65    0x295B0
+0x9D66    0x295B8
+0x9D67    0x29732
+0x9D68    0x298D1
+0x9D69    0x29949
+0x9D6A    0x2996A
+0x9D6B    0x299C3
+0x9D6C    0x29A28
+0x9D6D    0x29B0E
+0x9D6E    0x29D5A
+0x9D6F    0x29D9B
+0x9D70    0x7E9F
+0x9D71    0x29EF8
+0x9D72    0x29F23
+0x9D73    0x4CA4
+0x9D74    0x9547
+0x9D75    0x2A293
+0x9D76    0x71A2
+0x9D77    0x2A2FF
+0x9D78    0x4D91
+0x9D79    0x9012
+0x9D7A    0x2A5CB
+0x9D7B    0x4D9C
+0x9D7C    0x20C9C
+0x9D7D    0x8FBE
+0x9D7E    0x55C1
+0x9DA1    0x8FBA
+0x9DA2    0x224B0
+0x9DA3    0x8FB9
+0x9DA4    0x24A93
+0x9DA5    0x4509
+0x9DA6    0x7E7F
+0x9DA7    0x6F56
+0x9DA8    0x6AB1
+0x9DA9    0x4EEA
+0x9DAA    0x34E4
+0x9DAB    0x28B2C
+0x9DAC    0x2789D
+0x9DAD    0x373A
+0x9DAE    0x8E80
+0x9DAF    0x217F5
+0x9DB0    0x28024
+0x9DB1    0x28B6C
+0x9DB2    0x28B99
+0x9DB3    0x27A3E
+0x9DB4    0x266AF
+0x9DB5    0x3DEB
+0x9DB6    0x27655
+0x9DB7    0x23CB7
+0x9DB8    0x25635
+0x9DB9    0x25956
+0x9DBA    0x4E9A
+0x9DBB    0x25E81
+0x9DBC    0x26258
+0x9DBD    0x56BF
+0x9DBE    0x20E6D
+0x9DBF    0x8E0E
+0x9DC0    0x5B6D
+0x9DC1    0x23E88
+0x9DC2    0x24C9E
+0x9DC3    0x63DE
+0x9DC5    0x217F6
+0x9DC6    0x2187B
+0x9DC7    0x6530
+0x9DC8    0x562D
+0x9DC9    0x25C4A
+0x9DCA    0x541A
+0x9DCB    0x25311
+0x9DCC    0x3DC6
+0x9DCD    0x29D98
+0x9DCE    0x4C7D
+0x9DCF    0x5622
+0x9DD0    0x561E
+0x9DD1    0x7F49
+0x9DD2    0x25ED8
+0x9DD3    0x5975
+0x9DD4    0x23D40
+0x9DD5    0x8770
+0x9DD6    0x4E1C
+0x9DD7    0x20FEA
+0x9DD8    0x20D49
+0x9DD9    0x236BA
+0x9DDA    0x8117
+0x9DDB    0x9D5E
+0x9DDC    0x8D18
+0x9DDD    0x763B
+0x9DDE    0x9C45
+0x9DDF    0x764E
+0x9DE0    0x77B9
+0x9DE1    0x9345
+0x9DE2    0x5432
+0x9DE3    0x8148
+0x9DE4    0x82F7
+0x9DE5    0x5625
+0x9DE6    0x8132
+0x9DE7    0x8418
+0x9DE8    0x80BD
+0x9DE9    0x55EA
+0x9DEA    0x7962
+0x9DEB    0x5643
+0x9DEC    0x5416
+0x9DED    0x20E9D
+0x9DEE    0x35CE
+0x9DEF    0x5605
+0x9DF0    0x55F1
+0x9DF1    0x66F1
+0x9DF2    0x282E2
+0x9DF3    0x362D
+0x9DF4    0x7534
+0x9DF5    0x55F0
+0x9DF6    0x55BA
+0x9DF7    0x5497
+0x9DF8    0x5572
+0x9DF9    0x20C41
+0x9DFA    0x20C96
+0x9DFB    0x5ED0
+0x9DFC    0x25148
+0x9DFD    0x20E76
+0x9DFE    0x22C62
+0x9E40    0x20EA2
+0x9E41    0x9EAB
+0x9E42    0x7D5A
+0x9E43    0x55DE
+0x9E44    0x21075
+0x9E45    0x629D
+0x9E46    0x976D
+0x9E47    0x5494
+0x9E48    0x8CCD
+0x9E49    0x71F6
+0x9E4A    0x9176
+0x9E4B    0x63FC
+0x9E4C    0x63B9
+0x9E4D    0x63FE
+0x9E4E    0x5569
+0x9E4F    0x22B43
+0x9E50    0x9C72
+0x9E51    0x22EB3
+0x9E52    0x519A
+0x9E53    0x34DF
+0x9E54    0x20DA7
+0x9E55    0x51A7
+0x9E56    0x544D
+0x9E57    0x551E
+0x9E58    0x5513
+0x9E59    0x7666
+0x9E5A    0x8E2D
+0x9E5B    0x2688A
+0x9E5C    0x75B1
+0x9E5D    0x80B6
+0x9E5E    0x8804
+0x9E5F    0x8786
+0x9E60    0x88C7
+0x9E61    0x81B6
+0x9E62    0x841C
+0x9E63    0x210C1
+0x9E64    0x44EC
+0x9E65    0x7304
+0x9E66    0x24706
+0x9E67    0x5B90
+0x9E68    0x830B
+0x9E69    0x26893
+0x9E6A    0x567B
+0x9E6B    0x226F4
+0x9E6C    0x27D2F
+0x9E6D    0x241A3
+0x9E6E    0x27D73
+0x9E6F    0x26ED0
+0x9E70    0x272B6
+0x9E71    0x9170
+0x9E72    0x211D9
+0x9E73    0x9208
+0x9E74    0x23CFC
+0x9E75    0x2A6A9
+0x9E76    0x20EAC
+0x9E77    0x20EF9
+0x9E78    0x7266
+0x9E79    0x21CA2
+0x9E7A    0x474E
+0x9E7B    0x24FC2
+0x9E7C    0x27FF9
+0x9E7D    0x20FEB
+0x9E7E    0x40FA
+0x9EA1    0x9C5D
+0x9EA2    0x651F
+0x9EA3    0x22DA0
+0x9EA4    0x48F3
+0x9EA5    0x247E0
+0x9EA6    0x29D7C
+0x9EA7    0x20FEC
+0x9EA8    0x20E0A
+0x9EAA    0x275A3
+0x9EAB    0x20FED
+0x9EAD    0x26048
+0x9EAE    0x21187
+0x9EAF    0x71A3
+0x9EB0    0x7E8E
+0x9EB1    0x9D50
+0x9EB2    0x4E1A
+0x9EB3    0x4E04
+0x9EB4    0x3577
+0x9EB5    0x5B0D
+0x9EB6    0x6CB2
+0x9EB7    0x5367
+0x9EB8    0x36AC
+0x9EB9    0x39DC
+0x9EBA    0x537D
+0x9EBB    0x36A5
+0x9EBC    0x24618
+0x9EBD    0x589A
+0x9EBE    0x24B6E
+0x9EBF    0x822D
+0x9EC0    0x544B
+0x9EC1    0x57AA
+0x9EC2    0x25A95
+0x9EC3    0x20979
+0x9EC5    0x3A52
+0x9EC6    0x22465
+0x9EC7    0x7374
+0x9EC8    0x29EAC
+0x9EC9    0x4D09
+0x9ECA    0x9BED
+0x9ECB    0x23CFE
+0x9ECC    0x29F30
+0x9ECD    0x4C5B
+0x9ECE    0x24FA9
+0x9ECF    0x2959E
+0x9ED0    0x29FDE
+0x9ED1    0x845C
+0x9ED2    0x23DB6
+0x9ED3    0x272B2
+0x9ED4    0x267B3
+0x9ED5    0x23720
+0x9ED6    0x632E
+0x9ED7    0x7D25
+0x9ED8    0x23EF7
+0x9ED9    0x23E2C
+0x9EDA    0x3A2A
+0x9EDB    0x9008
+0x9EDC    0x52CC
+0x9EDD    0x3E74
+0x9EDE    0x367A
+0x9EDF    0x45E9
+0x9EE0    0x2048E
+0x9EE1    0x7640
+0x9EE2    0x5AF0
+0x9EE3    0x20EB6
+0x9EE4    0x787A
+0x9EE5    0x47B6
+0x9EE6    0x58A7
+0x9EE7    0x40BF
+0x9EE8    0x567C
+0x9EE9    0x9B8B
+0x9EEA    0x5D74
+0x9EEB    0x7654
+0x9EEC    0x2A434
+0x9EED    0x9E85
+0x9EEE    0x4CE1
+0x9EF0    0x37FB
+0x9EF1    0x6119
+0x9EF2    0x230DA
+0x9EF3    0x243F2
+0x9EF5    0x565D
+0x9EF6    0x212A9
+0x9EF7    0x57A7
+0x9EF8    0x24963
+0x9EF9    0x29E06
+0x9EFA    0x5234
+0x9EFB    0x270AE
+0x9EFC    0x35AD
+0x9EFE    0x9D7C
+0x9F40    0x7C56
+0x9F41    0x9B39
+0x9F42    0x57DE
+0x9F43    0x2176C
+0x9F44    0x5C53
+0x9F45    0x64D3
+0x9F46    0x294D0
+0x9F47    0x26335
+0x9F48    0x27164
+0x9F49    0x86AD
+0x9F4A    0x20D28
+0x9F4B    0x26D22
+0x9F4C    0x24AE2
+0x9F4D    0x20D71
+0x9F4F    0x51FE
+0x9F50    0x21F0F
+0x9F51    0x5D8E
+0x9F52    0x9703
+0x9F53    0x21DD1
+0x9F54    0x9E81
+0x9F55    0x904C
+0x9F56    0x7B1F
+0x9F57    0x9B02
+0x9F58    0x5CD1
+0x9F59    0x7BA3
+0x9F5A    0x6268
+0x9F5B    0x6335
+0x9F5C    0x9AFF
+0x9F5D    0x7BCF
+0x9F5E    0x9B2A
+0x9F5F    0x7C7E
+0x9F61    0x7C42
+0x9F62    0x7C86
+0x9F63    0x9C15
+0x9F64    0x7BFC
+0x9F65    0x9B09
+0x9F67    0x9C1B
+0x9F68    0x2493E
+0x9F69    0x9F5A
+0x9F6A    0x5573
+0x9F6B    0x5BC3
+0x9F6C    0x4FFD
+0x9F6D    0x9E98
+0x9F6E    0x4FF2
+0x9F6F    0x5260
+0x9F70    0x3E06
+0x9F71    0x52D1
+0x9F72    0x5767
+0x9F73    0x5056
+0x9F74    0x59B7
+0x9F75    0x5E12
+0x9F76    0x97C8
+0x9F77    0x9DAB
+0x9F78    0x8F5C
+0x9F79    0x5469
+0x9F7A    0x97B4
+0x9F7B    0x9940
+0x9F7C    0x97BA
+0x9F7D    0x532C
+0x9F7E    0x6130
+0x9FA1    0x692C
+0x9FA2    0x53DA
+0x9FA3    0x9C0A
+0x9FA4    0x9D02
+0x9FA5    0x4C3B
+0x9FA6    0x9641
+0x9FA7    0x6980
+0x9FA8    0x50A6
+0x9FA9    0x7546
+0x9FAA    0x2176D
+0x9FAB    0x99DA
+0x9FAC    0x5273
+0x9FAE    0x9159
+0x9FAF    0x9681
+0x9FB0    0x915C
+0x9FB2    0x9151
+0x9FB3    0x28E97
+0x9FB4    0x637F
+0x9FB5    0x26D23
+0x9FB6    0x6ACA
+0x9FB7    0x5611
+0x9FB8    0x918E
+0x9FB9    0x757A
+0x9FBA    0x6285
+0x9FBB    0x203FC
+0x9FBC    0x734F
+0x9FBD    0x7C70
+0x9FBE    0x25C21
+0x9FBF    0x23CFD
+0x9FC1    0x24919
+0x9FC2    0x76D6
+0x9FC3    0x9B9D
+0x9FC4    0x4E2A
+0x9FC5    0x20CD4
+0x9FC6    0x83BE
+0x9FC7    0x8842
+0x9FC9    0x5C4A
+0x9FCA    0x69C0
+0x9FCC    0x577A
+0x9FCD    0x521F
+0x9FCE    0x5DF5
+0x9FCF    0x4ECE
+0x9FD0    0x6C31
+0x9FD1    0x201F2
+0x9FD2    0x4F39
+0x9FD3    0x549C
+0x9FD4    0x54DA
+0x9FD5    0x529A
+0x9FD6    0x8D82
+0x9FD7    0x35FE
+0x9FD9    0x35F3
+0x9FDB    0x6B52
+0x9FDC    0x917C
+0x9FDD    0x9FA5
+0x9FDE    0x9B97
+0x9FDF    0x982E
+0x9FE0    0x98B4
+0x9FE1    0x9ABA
+0x9FE2    0x9EA8
+0x9FE3    0x9E84
+0x9FE4    0x717A
+0x9FE5    0x7B14
+0x9FE7    0x6BFA
+0x9FE8    0x8818
+0x9FE9    0x7F78
+0x9FEB    0x5620
+0x9FEC    0x2A64A
+0x9FED    0x8E77
+0x9FEE    0x9F53
+0x9FF0    0x8DD4
+0x9FF1    0x8E4F
+0x9FF2    0x9E1C
+0x9FF3    0x8E01
+0x9FF4    0x6282
+0x9FF5    0x2837D
+0x9FF6    0x8E28
+0x9FF7    0x8E75
+0x9FF8    0x7AD3
+0x9FF9    0x24A77
+0x9FFA    0x7A3E
+0x9FFB    0x78D8
+0x9FFC    0x6CEA
+0x9FFD    0x8A67
+0x9FFE    0x7607
+0xA040    0x28A5A
+0xA041    0x9F26
+0xA042    0x6CCE
+0xA043    0x87D6
+0xA044    0x75C3
+0xA045    0x2A2B2
+0xA046    0x7853
+0xA047    0x2F840
+0xA048    0x8D0C
+0xA049    0x72E2
+0xA04A    0x7371
+0xA04B    0x8B2D
+0xA04C    0x7302
+0xA04D    0x74F1
+0xA04E    0x8CEB
+0xA04F    0x24ABB
+0xA050    0x862F
+0xA051    0x5FBA
+0xA052    0x88A0
+0xA053    0x44B7
+0xA055    0x2183B
+0xA056    0x26E05
+0xA058    0x8A7E
+0xA059    0x2251B
+0xA05B    0x60FD
+0xA05C    0x7667
+0xA05D    0x9AD7
+0xA05E    0x9D44
+0xA05F    0x936E
+0xA060    0x9B8F
+0xA061    0x87F5
+0xA064    0x8CF7
+0xA065    0x732C
+0xA066    0x9721
+0xA067    0x9BB0
+0xA068    0x35D6
+0xA069    0x72B2
+0xA06A    0x4C07
+0xA06B    0x7C51
+0xA06C    0x994A
+0xA06D    0x26159
+0xA06E    0x6159
+0xA06F    0x4C04
+0xA070    0x9E96
+0xA071    0x617D
+0xA073    0x575F
+0xA074    0x616F
+0xA075    0x62A6
+0xA076    0x6239
+0xA078    0x3A5C
+0xA079    0x61E2
+0xA07A    0x53AA
+0xA07B    0x233F5
+0xA07C    0x6364
+0xA07D    0x6802
+0xA07E    0x35D2
+0xA0A1    0x5D57
+0xA0A2    0x28BC2
+0xA0A3    0x8FDA
+0xA0A4    0x28E39
+0xA0A6    0x50D9
+0xA0A7    0x21D46
+0xA0A8    0x7906
+0xA0A9    0x5332
+0xA0AA    0x9638
+0xA0AB    0x20F3B
+0xA0AC    0x4065
+0xA0AE    0x77FE
+0xA0B0    0x7CC2
+0xA0B1    0x25F1A
+0xA0B2    0x7CDA
+0xA0B3    0x7A2D
+0xA0B4    0x8066
+0xA0B5    0x8063
+0xA0B6    0x7D4D
+0xA0B7    0x7505
+0xA0B8    0x74F2
+0xA0B9    0x8994
+0xA0BA    0x821A
+0xA0BB    0x670C
+0xA0BC    0x8062
+0xA0BD    0x27486
+0xA0BE    0x805B
+0xA0BF    0x74F0
+0xA0C0    0x8103
+0xA0C1    0x7724
+0xA0C2    0x8989
+0xA0C3    0x267CC
+0xA0C4    0x7553
+0xA0C5    0x26ED1
+0xA0C6    0x87A9
+0xA0C7    0x87CE
+0xA0C8    0x81C8
+0xA0C9    0x878C
+0xA0CA    0x8A49
+0xA0CB    0x8CAD
+0xA0CC    0x8B43
+0xA0CD    0x772B
+0xA0CE    0x74F8
+0xA0CF    0x84DA
+0xA0D0    0x3635
+0xA0D1    0x69B2
+0xA0D2    0x8DA6
+0xA0D4    0x89A9
+0xA0D6    0x6DB9
+0xA0D7    0x87C1
+0xA0D8    0x24011
+0xA0D9    0x74E7
+0xA0DA    0x3DDB
+0xA0DB    0x7176
+0xA0DC    0x60A4
+0xA0DD    0x619C
+0xA0DE    0x3CD1
+0xA0E0    0x6077
+0xA0E2    0x7F71
+0xA0E3    0x28B2D
+0xA0E5    0x60E9
+0xA0E6    0x4B7E
+0xA0E7    0x5220
+0xA0E8    0x3C18
+0xA0E9    0x23CC7
+0xA0EA    0x25ED7
+0xA0EB    0x27656
+0xA0EC    0x25531
+0xA0ED    0x21944
+0xA0EE    0x212FE
+0xA0EF    0x29903
+0xA0F0    0x26DDC
+0xA0F1    0x270AD
+0xA0F2    0x5CC1
+0xA0F3    0x261AD
+0xA0F4    0x28A0F
+0xA0F5    0x23677
+0xA0F6    0x200EE
+0xA0F7    0x26846
+0xA0F8    0x24F0E
+0xA0F9    0x4562
+0xA0FA    0x5B1F
+0xA0FB    0x2634C
+0xA0FC    0x9F50
+0xA0FD    0x9EA6
+0xA0FE    0x2626B
+0xC6A1    0x2460
+0xC6A2    0x2461
+0xC6A3    0x2462
+0xC6A4    0x2463
+0xC6A5    0x2464
+0xC6A6    0x2465
+0xC6A7    0x2466
+0xC6A8    0x2467
+0xC6A9    0x2468
+0xC6AA    0x2469
+0xC6AB    0x2474
+0xC6AC    0x2475
+0xC6AD    0x2476
+0xC6AE    0x2477
+0xC6AF    0x2478
+0xC6B0    0x2479
+0xC6B1    0x247A
+0xC6B2    0x247B
+0xC6B3    0x247C
+0xC6B4    0x247D
+0xC6B5    0x2170
+0xC6B6    0x2171
+0xC6B7    0x2172
+0xC6B8    0x2173
+0xC6B9    0x2174
+0xC6BA    0x2175
+0xC6BB    0x2176
+0xC6BC    0x2177
+0xC6BD    0x2178
+0xC6BE    0x2179
+0xC6BF    0x4E36
+0xC6C0    0x4E3F
+0xC6C1    0x4E85
+0xC6C2    0x4EA0
+0xC6C3    0x5182
+0xC6C4    0x5196
+0xC6C5    0x51AB
+0xC6C6    0x52F9
+0xC6C7    0x5338
+0xC6C8    0x5369
+0xC6C9    0x53B6
+0xC6CA    0x590A
+0xC6CB    0x5B80
+0xC6CC    0x5DDB
+0xC6CD    0x2F33
+0xC6CE    0x5E7F
+0xC6D0    0x5F50
+0xC6D1    0x5F61
+0xC6D2    0x6534
+0xC6D4    0x7592
+0xC6D6    0x8FB5
+0xC6D8    0xA8
+0xC6D9    0x2C6
+0xC6DA    0x30FD
+0xC6DB    0x30FE
+0xC6DC    0x309D
+0xC6DD    0x309E
+0xC6E0    0x3005
+0xC6E1    0x3006
+0xC6E2    0x3007
+0xC6E3    0x30FC
+0xC6E4    0xFF3B
+0xC6E5    0xFF3D
+0xC6E6    0x273D
+0xC6E7    0x3041
+0xC6E8    0x3042
+0xC6E9    0x3043
+0xC6EA    0x3044
+0xC6EB    0x3045
+0xC6EC    0x3046
+0xC6ED    0x3047
+0xC6EE    0x3048
+0xC6EF    0x3049
+0xC6F0    0x304A
+0xC6F1    0x304B
+0xC6F2    0x304C
+0xC6F3    0x304D
+0xC6F4    0x304E
+0xC6F5    0x304F
+0xC6F6    0x3050
+0xC6F7    0x3051
+0xC6F8    0x3052
+0xC6F9    0x3053
+0xC6FA    0x3054
+0xC6FB    0x3055
+0xC6FC    0x3056
+0xC6FD    0x3057
+0xC6FE    0x3058
+0xC740    0x3059
+0xC741    0x305A
+0xC742    0x305B
+0xC743    0x305C
+0xC744    0x305D
+0xC745    0x305E
+0xC746    0x305F
+0xC747    0x3060
+0xC748    0x3061
+0xC749    0x3062
+0xC74A    0x3063
+0xC74B    0x3064
+0xC74C    0x3065
+0xC74D    0x3066
+0xC74E    0x3067
+0xC74F    0x3068
+0xC750    0x3069
+0xC751    0x306A
+0xC752    0x306B
+0xC753    0x306C
+0xC754    0x306D
+0xC755    0x306E
+0xC756    0x306F
+0xC757    0x3070
+0xC758    0x3071
+0xC759    0x3072
+0xC75A    0x3073
+0xC75B    0x3074
+0xC75C    0x3075
+0xC75D    0x3076
+0xC75E    0x3077
+0xC75F    0x3078
+0xC760    0x3079
+0xC761    0x307A
+0xC762    0x307B
+0xC763    0x307C
+0xC764    0x307D
+0xC765    0x307E
+0xC766    0x307F
+0xC767    0x3080
+0xC768    0x3081
+0xC769    0x3082
+0xC76A    0x3083
+0xC76B    0x3084
+0xC76C    0x3085
+0xC76D    0x3086
+0xC76E    0x3087
+0xC76F    0x3088
+0xC770    0x3089
+0xC771    0x308A
+0xC772    0x308B
+0xC773    0x308C
+0xC774    0x308D
+0xC775    0x308E
+0xC776    0x308F
+0xC777    0x3090
+0xC778    0x3091
+0xC779    0x3092
+0xC77A    0x3093
+0xC77B    0x30A1
+0xC77C    0x30A2
+0xC77D    0x30A3
+0xC77E    0x30A4
+0xC7A1    0x30A5
+0xC7A2    0x30A6
+0xC7A3    0x30A7
+0xC7A4    0x30A8
+0xC7A5    0x30A9
+0xC7A6    0x30AA
+0xC7A7    0x30AB
+0xC7A8    0x30AC
+0xC7A9    0x30AD
+0xC7AA    0x30AE
+0xC7AB    0x30AF
+0xC7AC    0x30B0
+0xC7AD    0x30B1
+0xC7AE    0x30B2
+0xC7AF    0x30B3
+0xC7B0    0x30B4
+0xC7B1    0x30B5
+0xC7B2    0x30B6
+0xC7B3    0x30B7
+0xC7B4    0x30B8
+0xC7B5    0x30B9
+0xC7B6    0x30BA
+0xC7B7    0x30BB
+0xC7B8    0x30BC
+0xC7B9    0x30BD
+0xC7BA    0x30BE
+0xC7BB    0x30BF
+0xC7BC    0x30C0
+0xC7BD    0x30C1
+0xC7BE    0x30C2
+0xC7BF    0x30C3
+0xC7C0    0x30C4
+0xC7C1    0x30C5
+0xC7C2    0x30C6
+0xC7C3    0x30C7
+0xC7C4    0x30C8
+0xC7C5    0x30C9
+0xC7C6    0x30CA
+0xC7C7    0x30CB
+0xC7C8    0x30CC
+0xC7C9    0x30CD
+0xC7CA    0x30CE
+0xC7CB    0x30CF
+0xC7CC    0x30D0
+0xC7CD    0x30D1
+0xC7CE    0x30D2
+0xC7CF    0x30D3
+0xC7D0    0x30D4
+0xC7D1    0x30D5
+0xC7D2    0x30D6
+0xC7D3    0x30D7
+0xC7D4    0x30D8
+0xC7D5    0x30D9
+0xC7D6    0x30DA
+0xC7D7    0x30DB
+0xC7D8    0x30DC
+0xC7D9    0x30DD
+0xC7DA    0x30DE
+0xC7DB    0x30DF
+0xC7DC    0x30E0
+0xC7DD    0x30E1
+0xC7DE    0x30E2
+0xC7DF    0x30E3
+0xC7E0    0x30E4
+0xC7E1    0x30E5
+0xC7E2    0x30E6
+0xC7E3    0x30E7
+0xC7E4    0x30E8
+0xC7E5    0x30E9
+0xC7E6    0x30EA
+0xC7E7    0x30EB
+0xC7E8    0x30EC
+0xC7E9    0x30ED
+0xC7EA    0x30EE
+0xC7EB    0x30EF
+0xC7EC    0x30F0
+0xC7ED    0x30F1
+0xC7EE    0x30F2
+0xC7EF    0x30F3
+0xC7F0    0x30F4
+0xC7F1    0x30F5
+0xC7F2    0x30F6
+0xC7F3    0x410
+0xC7F4    0x411
+0xC7F5    0x412
+0xC7F6    0x413
+0xC7F7    0x414
+0xC7F8    0x415
+0xC7F9    0x401
+0xC7FA    0x416
+0xC7FB    0x417
+0xC7FC    0x418
+0xC7FD    0x419
+0xC7FE    0x41A
+0xC840    0x41B
+0xC841    0x41C
+0xC842    0x41D
+0xC843    0x41E
+0xC844    0x41F
+0xC845    0x420
+0xC846    0x421
+0xC847    0x422
+0xC848    0x423
+0xC849    0x424
+0xC84A    0x425
+0xC84B    0x426
+0xC84C    0x427
+0xC84D    0x428
+0xC84E    0x429
+0xC84F    0x42A
+0xC850    0x42B
+0xC851    0x42C
+0xC852    0x42D
+0xC853    0x42E
+0xC854    0x42F
+0xC855    0x430
+0xC856    0x431
+0xC857    0x432
+0xC858    0x433
+0xC859    0x434
+0xC85A    0x435
+0xC85B    0x451
+0xC85C    0x436
+0xC85D    0x437
+0xC85E    0x438
+0xC85F    0x439
+0xC860    0x43A
+0xC861    0x43B
+0xC862    0x43C
+0xC863    0x43D
+0xC864    0x43E
+0xC865    0x43F
+0xC866    0x440
+0xC867    0x441
+0xC868    0x442
+0xC869    0x443
+0xC86A    0x444
+0xC86B    0x445
+0xC86C    0x446
+0xC86D    0x447
+0xC86E    0x448
+0xC86F    0x449
+0xC870    0x44A
+0xC871    0x44B
+0xC872    0x44C
+0xC873    0x44D
+0xC874    0x44E
+0xC875    0x44F
+0xC876    0x21E7
+0xC877    0x21B8
+0xC878    0x21B9
+0xC879    0xF7E5
+0xC87A    0x200CC
+0xC87B    0x4E5A
+0xC87C    0x2008A
+0xC87D    0x5202
+0xC87E    0xF7EA
+0xC8A1    0xF7EB
+0xC8A2    0x5188
+0xC8A3    0xF7ED
+0xC8A4    0x27607
+0xC8CD    0xFFE2
+0xC8CE    0xFFE4
+0xC8CF    0xFF07
+0xC8D0    0xFF02
+0xC8D1    0x3231
+0xC8D2    0x2116
+0xC8D3    0x2121
+0xC8D4    0x309B
+0xC8D5    0x309C
+0xC8D6    0x2E80
+0xC8D7    0x2E84
+0xC8D8    0x2E86
+0xC8D9    0x2E87
+0xC8DA    0x2E88
+0xC8DB    0x2E8A
+0xC8DC    0x2E8C
+0xC8DD    0x2E8D
+0xC8DE    0x2E95
+0xC8DF    0x2E9C
+0xC8E0    0x2E9D
+0xC8E1    0x2EA5
+0xC8E2    0x2EA7
+0xC8E3    0x2EAA
+0xC8E4    0x2EAC
+0xC8E5    0x2EAE
+0xC8E6    0x2EB6
+0xC8E7    0x2EBC
+0xC8E8    0x2EBE
+0xC8E9    0x2EC6
+0xC8EA    0x2ECA
+0xC8EB    0x2ECC
+0xC8EC    0x2ECD
+0xC8ED    0x2ECF
+0xC8EE    0x2ED6
+0xC8EF    0x2ED7
+0xC8F0    0x2EDE
+0xC8F1    0x2EE3
+0xC8F5    0x283
+0xC8F6    0x250
+0xC8F7    0x25B
+0xC8F8    0x254
+0xC8F9    0x275
+0xC8FA    0x153
+0xC8FB    0xF8
+0xC8FC    0x14B
+0xC8FD    0x28A
+0xC8FE    0x26A
+0xF9D6    0x7881
+0xF9D7    0x92B9
+0xF9D8    0x88CF
+0xF9D9    0x58BB
+0xF9DA    0x6052
+0xF9DB    0x7CA7
+0xF9DC    0x5AFA
+0xF9DD    0x2554
+0xF9DE    0x2566
+0xF9DF    0x2557
+0xF9E0    0x2560
+0xF9E1    0x256C
+0xF9E2    0x2563
+0xF9E3    0x255A
+0xF9E4    0x2569
+0xF9E5    0x255D
+0xF9E6    0x2552
+0xF9E7    0x2564
+0xF9E8    0x2555
+0xF9E9    0x255E
+0xF9EA    0x256A
+0xF9EB    0x2561
+0xF9EC    0x2558
+0xF9ED    0x2567
+0xF9EE    0x255B
+0xF9EF    0x2553
+0xF9F0    0x2565
+0xF9F1    0x2556
+0xF9F2    0x255F
+0xF9F3    0x256B
+0xF9F4    0x2562
+0xF9F5    0x2559
+0xF9F6    0x2568
+0xF9F7    0x255C
+0xF9F8    0x2551
+0xF9F9    0x2550
+0xF9FA    0x256D
+0xF9FB    0x256E
+0xF9FC    0x2570
+0xF9FD    0x256F
+0xF9FE    0xFFED
+0xFA40    0x20547
+0xFA41    0x92DB
+0xFA42    0x205DF
+0xFA43    0x23FC5
+0xFA44    0x854C
+0xFA45    0x42B5
+0xFA46    0x73EF
+0xFA47    0x51B5
+0xFA48    0x3649
+0xFA49    0x24942
+0xFA4A    0x289E4
+0xFA4B    0x9344
+0xFA4C    0x219DB
+0xFA4D    0x82EE
+0xFA4E    0x23CC8
+0xFA4F    0x783C
+0xFA50    0x6744
+0xFA51    0x62DF
+0xFA52    0x24933
+0xFA53    0x289AA
+0xFA54    0x202A0
+0xFA55    0x26BB3
+0xFA56    0x21305
+0xFA57    0x4FAB
+0xFA58    0x224ED
+0xFA59    0x5008
+0xFA5A    0x26D29
+0xFA5B    0x27A84
+0xFA5C    0x23600
+0xFA5D    0x24AB1
+0xFA5E    0x22513
+0xFA60    0x2037E
+0xFA61    0x5FA4
+0xFA62    0x20380
+0xFA63    0x20347
+0xFA64    0x6EDB
+0xFA65    0x2041F
+0xFA67    0x5101
+0xFA68    0x347A
+0xFA69    0x510E
+0xFA6A    0x986C
+0xFA6B    0x3743
+0xFA6C    0x8416
+0xFA6D    0x249A4
+0xFA6E    0x20487
+0xFA6F    0x5160
+0xFA70    0x233B4
+0xFA71    0x516A
+0xFA72    0x20BFF
+0xFA73    0x220FC
+0xFA74    0x202E5
+0xFA75    0x22530
+0xFA76    0x2058E
+0xFA77    0x23233
+0xFA78    0x21983
+0xFA79    0x5B82
+0xFA7A    0x877D
+0xFA7B    0x205B3
+0xFA7C    0x23C99
+0xFA7D    0x51B2
+0xFA7E    0x51B8
+0xFAA1    0x9D34
+0xFAA2    0x51C9
+0xFAA3    0x51CF
+0xFAA4    0x51D1
+0xFAA5    0x3CDC
+0xFAA6    0x51D3
+0xFAA7    0x24AA6
+0xFAA8    0x51B3
+0xFAA9    0x51E2
+0xFAAA    0x5342
+0xFAAB    0x51ED
+0xFAAC    0x83CD
+0xFAAD    0x693E
+0xFAAE    0x2372D
+0xFAAF    0x5F7B
+0xFAB0    0x520B
+0xFAB1    0x5226
+0xFAB2    0x523C
+0xFAB3    0x52B5
+0xFAB4    0x5257
+0xFAB5    0x5294
+0xFAB6    0x52B9
+0xFAB7    0x52C5
+0xFAB8    0x7C15
+0xFAB9    0x8542
+0xFABA    0x52E0
+0xFABB    0x860D
+0xFABC    0x26B13
+0xFABE    0x28ADE
+0xFABF    0x5549
+0xFAC0    0x6ED9
+0xFAC1    0x23F80
+0xFAC2    0x20954
+0xFAC3    0x23FEC
+0xFAC4    0x5333
+0xFAC6    0x20BE2
+0xFAC7    0x6CCB
+0xFAC8    0x21726
+0xFAC9    0x681B
+0xFACA    0x73D5
+0xFACB    0x604A
+0xFACC    0x3EAA
+0xFACD    0x38CC
+0xFACE    0x216E8
+0xFACF    0x71DD
+0xFAD0    0x44A2
+0xFAD1    0x536D
+0xFAD2    0x5374
+0xFAD3    0x286AB
+0xFAD4    0x537E
+0xFAD6    0x21596
+0xFAD7    0x21613
+0xFAD8    0x77E6
+0xFAD9    0x5393
+0xFADA    0x28A9B
+0xFADB    0x53A0
+0xFADC    0x53AB
+0xFADD    0x53AE
+0xFADE    0x73A7
+0xFADF    0x25772
+0xFAE0    0x3F59
+0xFAE1    0x739C
+0xFAE2    0x53C1
+0xFAE3    0x53C5
+0xFAE4    0x6C49
+0xFAE5    0x4E49
+0xFAE6    0x57FE
+0xFAE7    0x53D9
+0xFAE8    0x3AAB
+0xFAE9    0x20B8F
+0xFAEA    0x53E0
+0xFAEB    0x23FEB
+0xFAEC    0x22DA3
+0xFAED    0x53F6
+0xFAEE    0x20C77
+0xFAEF    0x5413
+0xFAF0    0x7079
+0xFAF1    0x552B
+0xFAF2    0x6657
+0xFAF3    0x6D5B
+0xFAF4    0x546D
+0xFAF5    0x26B53
+0xFAF6    0x20D74
+0xFAF7    0x555D
+0xFAF8    0x548F
+0xFAF9    0x54A4
+0xFAFA    0x47A6
+0xFAFB    0x2170D
+0xFAFC    0x20EDD
+0xFAFD    0x3DB4
+0xFAFE    0x20D4D
+0xFB40    0x289BC
+0xFB41    0x22698
+0xFB42    0x5547
+0xFB43    0x4CED
+0xFB44    0x542F
+0xFB45    0x7417
+0xFB46    0x5586
+0xFB47    0x55A9
+0xFB49    0x218D7
+0xFB4A    0x2403A
+0xFB4B    0x4552
+0xFB4C    0x24435
+0xFB4D    0x66B3
+0xFB4E    0x210B4
+0xFB4F    0x5637
+0xFB50    0x66CD
+0xFB51    0x2328A
+0xFB52    0x66A4
+0xFB53    0x66AD
+0xFB54    0x564D
+0xFB55    0x564F
+0xFB56    0x78F1
+0xFB57    0x56F1
+0xFB58    0x9787
+0xFB59    0x53FE
+0xFB5A    0x5700
+0xFB5B    0x56EF
+0xFB5C    0x56ED
+0xFB5D    0x28B66
+0xFB5E    0x3623
+0xFB5F    0x2124F
+0xFB60    0x5746
+0xFB61    0x241A5
+0xFB62    0x6C6E
+0xFB63    0x708B
+0xFB64    0x5742
+0xFB65    0x36B1
+0xFB66    0x26C7E
+0xFB67    0x57E6
+0xFB68    0x21416
+0xFB69    0x5803
+0xFB6A    0x21454
+0xFB6B    0x24363
+0xFB6C    0x5826
+0xFB6D    0x24BF5
+0xFB6E    0x585C
+0xFB6F    0x58AA
+0xFB70    0x3561
+0xFB71    0x58E0
+0xFB72    0x58DC
+0xFB73    0x2123C
+0xFB74    0x58FB
+0xFB75    0x5BFF
+0xFB76    0x5743
+0xFB77    0x2A150
+0xFB78    0x24278
+0xFB79    0x93D3
+0xFB7A    0x35A1
+0xFB7B    0x591F
+0xFB7C    0x68A6
+0xFB7D    0x36C3
+0xFB7E    0x6E59
+0xFBA1    0x2163E
+0xFBA2    0x5A24
+0xFBA3    0x5553
+0xFBA4    0x21692
+0xFBA5    0x8505
+0xFBA6    0x59C9
+0xFBA7    0x20D4E
+0xFBA8    0x26C81
+0xFBA9    0x26D2A
+0xFBAA    0x217DC
+0xFBAB    0x59D9
+0xFBAC    0x217FB
+0xFBAD    0x217B2
+0xFBAE    0x26DA6
+0xFBAF    0x6D71
+0xFBB0    0x21828
+0xFBB1    0x216D5
+0xFBB2    0x59F9
+0xFBB3    0x26E45
+0xFBB4    0x5AAB
+0xFBB5    0x5A63
+0xFBB6    0x36E6
+0xFBB7    0x249A9
+0xFBB9    0x3708
+0xFBBA    0x5A96
+0xFBBB    0x7465
+0xFBBC    0x5AD3
+0xFBBD    0x26FA1
+0xFBBE    0x22554
+0xFBBF    0x3D85
+0xFBC0    0x21911
+0xFBC1    0x3732
+0xFBC2    0x216B8
+0xFBC3    0x5E83
+0xFBC4    0x52D0
+0xFBC5    0x5B76
+0xFBC6    0x6588
+0xFBC7    0x5B7C
+0xFBC8    0x27A0E
+0xFBC9    0x4004
+0xFBCA    0x485D
+0xFBCB    0x20204
+0xFBCC    0x5BD5
+0xFBCD    0x6160
+0xFBCE    0x21A34
+0xFBCF    0x259CC
+0xFBD0    0x205A5
+0xFBD1    0x5BF3
+0xFBD2    0x5B9D
+0xFBD3    0x4D10
+0xFBD4    0x5C05
+0xFBD5    0x21B44
+0xFBD6    0x5C13
+0xFBD7    0x73CE
+0xFBD8    0x5C14
+0xFBD9    0x21CA5
+0xFBDA    0x26B28
+0xFBDB    0x5C49
+0xFBDC    0x48DD
+0xFBDD    0x5C85
+0xFBDE    0x5CE9
+0xFBDF    0x5CEF
+0xFBE0    0x5D8B
+0xFBE1    0x21DF9
+0xFBE2    0x21E37
+0xFBE3    0x5D10
+0xFBE4    0x5D18
+0xFBE5    0x5D46
+0xFBE6    0x21EA4
+0xFBE7    0x5CBA
+0xFBE8    0x5DD7
+0xFBE9    0x82FC
+0xFBEA    0x382D
+0xFBEB    0x24901
+0xFBEC    0x22049
+0xFBED    0x22173
+0xFBEE    0x8287
+0xFBEF    0x3836
+0xFBF0    0x3BC2
+0xFBF1    0x5E2E
+0xFBF2    0x6A8A
+0xFBF4    0x5E7A
+0xFBF5    0x244BC
+0xFBF6    0x20CD3
+0xFBF7    0x53A6
+0xFBF8    0x4EB7
+0xFBFA    0x53A8
+0xFBFB    0x21771
+0xFBFC    0x5E09
+0xFBFD    0x5EF4
+0xFBFE    0x28482
+0xFC40    0x5EF9
+0xFC41    0x5EFB
+0xFC42    0x38A0
+0xFC43    0x5EFC
+0xFC44    0x683E
+0xFC45    0x941B
+0xFC46    0x5F0D
+0xFC47    0x201C1
+0xFC48    0x2F894
+0xFC49    0x3ADE
+0xFC4A    0x48AE
+0xFC4B    0x2133A
+0xFC4C    0x5F3A
+0xFC4D    0x26888
+0xFC4E    0x223D0
+0xFC50    0x22471
+0xFC51    0x5F63
+0xFC52    0x97BD
+0xFC53    0x26E6E
+0xFC54    0x5F72
+0xFC55    0x9340
+0xFC56    0x28A36
+0xFC57    0x5FA7
+0xFC58    0x5DB6
+0xFC59    0x3D5F
+0xFC5A    0x25250
+0xFC5B    0x21F6A
+0xFC5C    0x270F8
+0xFC5D    0x22668
+0xFC5E    0x91D6
+0xFC5F    0x2029E
+0xFC60    0x28A29
+0xFC61    0x6031
+0xFC62    0x6685
+0xFC63    0x21877
+0xFC64    0x3963
+0xFC65    0x3DC7
+0xFC66    0x3639
+0xFC67    0x5790
+0xFC68    0x227B4
+0xFC69    0x7971
+0xFC6A    0x3E40
+0xFC6B    0x609E
+0xFC6D    0x60B3
+0xFC6E    0x24982
+0xFC6F    0x2498F
+0xFC70    0x27A53
+0xFC71    0x74A4
+0xFC72    0x50E1
+0xFC73    0x5AA0
+0xFC74    0x6164
+0xFC75    0x8424
+0xFC76    0x6142
+0xFC77    0x2F8A6
+0xFC78    0x26ED2
+0xFC79    0x6181
+0xFC7A    0x51F4
+0xFC7B    0x20656
+0xFC7C    0x6187
+0xFC7D    0x5BAA
+0xFC7E    0x23FB7
+0xFCA1    0x2285F
+0xFCA2    0x61D3
+0xFCA3    0x28B9D
+0xFCA4    0x2995D
+0xFCA5    0x61D0
+0xFCA6    0x3932
+0xFCA7    0x22980
+0xFCA8    0x228C1
+0xFCA9    0x6023
+0xFCAA    0x615C
+0xFCAB    0x651E
+0xFCAC    0x638B
+0xFCAD    0x20118
+0xFCAE    0x62C5
+0xFCAF    0x21770
+0xFCB0    0x62D5
+0xFCB1    0x22E0D
+0xFCB2    0x636C
+0xFCB3    0x249DF
+0xFCB4    0x3A17
+0xFCB5    0x6438
+0xFCB6    0x63F8
+0xFCB7    0x2138E
+0xFCB8    0x217FC
+0xFCBA    0x6F8A
+0xFCBB    0x22E36
+0xFCBC    0x9814
+0xFCBD    0x2408C
+0xFCBE    0x2571D
+0xFCBF    0x64E1
+0xFCC0    0x64E5
+0xFCC1    0x947B
+0xFCC2    0x3A66
+0xFCC3    0x643A
+0xFCC4    0x3A57
+0xFCC5    0x654D
+0xFCC6    0x6F16
+0xFCC7    0x24A28
+0xFCC8    0x24A23
+0xFCC9    0x6585
+0xFCCA    0x656D
+0xFCCB    0x655F
+0xFCCC    0x2307E
+0xFCCD    0x65B5
+0xFCCE    0x24940
+0xFCCF    0x4B37
+0xFCD0    0x65D1
+0xFCD1    0x40D8
+0xFCD2    0x21829
+0xFCD3    0x65E0
+0xFCD4    0x65E3
+0xFCD5    0x5FDF
+0xFCD6    0x23400
+0xFCD7    0x6618
+0xFCD8    0x231F7
+0xFCD9    0x231F8
+0xFCDA    0x6644
+0xFCDB    0x231A4
+0xFCDC    0x231A5
+0xFCDD    0x664B
+0xFCDE    0x20E75
+0xFCDF    0x6667
+0xFCE0    0x251E6
+0xFCE1    0x6673
+0xFCE3    0x21E3D
+0xFCE4    0x23231
+0xFCE5    0x285F4
+0xFCE6    0x231C8
+0xFCE7    0x25313
+0xFCE8    0x77C5
+0xFCE9    0x228F7
+0xFCEA    0x99A4
+0xFCEB    0x6702
+0xFCEC    0x2439C
+0xFCED    0x24A21
+0xFCEE    0x3B2B
+0xFCEF    0x69FA
+0xFCF0    0x237C2
+0xFCF2    0x6767
+0xFCF3    0x6762
+0xFCF4    0x241CD
+0xFCF5    0x290ED
+0xFCF6    0x67D7
+0xFCF7    0x44E9
+0xFCF8    0x6822
+0xFCF9    0x6E50
+0xFCFA    0x923C
+0xFCFB    0x6801
+0xFCFC    0x233E6
+0xFCFD    0x26DA0
+0xFCFE    0x685D
+0xFD40    0x2346F
+0xFD41    0x69E1
+0xFD42    0x6A0B
+0xFD43    0x28ADF
+0xFD44    0x6973
+0xFD45    0x68C3
+0xFD46    0x235CD
+0xFD47    0x6901
+0xFD48    0x6900
+0xFD49    0x3D32
+0xFD4A    0x3A01
+0xFD4B    0x2363C
+0xFD4C    0x3B80
+0xFD4D    0x67AC
+0xFD4E    0x6961
+0xFD4F    0x28A4A
+0xFD50    0x42FC
+0xFD51    0x6936
+0xFD52    0x6998
+0xFD53    0x3BA1
+0xFD54    0x203C9
+0xFD55    0x8363
+0xFD56    0x5090
+0xFD57    0x69F9
+0xFD58    0x23659
+0xFD59    0x2212A
+0xFD5A    0x6A45
+0xFD5B    0x23703
+0xFD5C    0x6A9D
+0xFD5D    0x3BF3
+0xFD5E    0x67B1
+0xFD5F    0x6AC8
+0xFD60    0x2919C
+0xFD61    0x3C0D
+0xFD62    0x6B1D
+0xFD63    0x20923
+0xFD64    0x60DE
+0xFD65    0x6B35
+0xFD66    0x6B74
+0xFD67    0x227CD
+0xFD68    0x6EB5
+0xFD69    0x23ADB
+0xFD6A    0x203B5
+0xFD6B    0x21958
+0xFD6C    0x3740
+0xFD6D    0x5421
+0xFD6E    0x23B5A
+0xFD6F    0x6BE1
+0xFD70    0x23EFC
+0xFD71    0x6BDC
+0xFD72    0x6C37
+0xFD73    0x2248B
+0xFD74    0x248F1
+0xFD75    0x26B51
+0xFD76    0x6C5A
+0xFD77    0x8226
+0xFD78    0x6C79
+0xFD79    0x23DBC
+0xFD7A    0x44C5
+0xFD7B    0x23DBD
+0xFD7C    0x241A4
+0xFD7D    0x2490C
+0xFD7E    0x24900
+0xFDA1    0x23CC9
+0xFDA2    0x36E5
+0xFDA3    0x3CEB
+0xFDA4    0x20D32
+0xFDA5    0x9B83
+0xFDA6    0x231F9
+0xFDA7    0x22491
+0xFDA8    0x7F8F
+0xFDA9    0x6837
+0xFDAA    0x26D25
+0xFDAB    0x26DA1
+0xFDAC    0x26DEB
+0xFDAD    0x6D96
+0xFDAE    0x6D5C
+0xFDAF    0x6E7C
+0xFDB0    0x6F04
+0xFDB1    0x2497F
+0xFDB2    0x24085
+0xFDB3    0x26E72
+0xFDB4    0x8533
+0xFDB5    0x26F74
+0xFDB6    0x51C7
+0xFDB9    0x842E
+0xFDBA    0x28B21
+0xFDBC    0x23E2F
+0xFDBD    0x7453
+0xFDBE    0x23F82
+0xFDBF    0x79CC
+0xFDC0    0x6E4F
+0xFDC1    0x5A91
+0xFDC2    0x2304B
+0xFDC3    0x6FF8
+0xFDC4    0x370D
+0xFDC5    0x6F9D
+0xFDC6    0x23E30
+0xFDC7    0x6EFA
+0xFDC8    0x21497
+0xFDC9    0x2403D
+0xFDCA    0x4555
+0xFDCB    0x93F0
+0xFDCC    0x6F44
+0xFDCD    0x6F5C
+0xFDCE    0x3D4E
+0xFDCF    0x6F74
+0xFDD0    0x29170
+0xFDD1    0x3D3B
+0xFDD2    0x6F9F
+0xFDD3    0x24144
+0xFDD4    0x6FD3
+0xFDD5    0x24091
+0xFDD6    0x24155
+0xFDD7    0x24039
+0xFDD8    0x23FF0
+0xFDD9    0x23FB4
+0xFDDA    0x2413F
+0xFDDB    0x51DF
+0xFDDC    0x24156
+0xFDDD    0x24157
+0xFDDE    0x24140
+0xFDDF    0x261DD
+0xFDE0    0x704B
+0xFDE1    0x707E
+0xFDE2    0x70A7
+0xFDE3    0x7081
+0xFDE4    0x70CC
+0xFDE5    0x70D5
+0xFDE6    0x70D6
+0xFDE7    0x70DF
+0xFDE8    0x4104
+0xFDE9    0x3DE8
+0xFDEA    0x71B4
+0xFDEB    0x7196
+0xFDEC    0x24277
+0xFDED    0x712B
+0xFDEE    0x7145
+0xFDEF    0x5A88
+0xFDF0    0x714A
+0xFDF2    0x5C9C
+0xFDF3    0x24365
+0xFDF4    0x714F
+0xFDF5    0x9362
+0xFDF6    0x242C1
+0xFDF7    0x712C
+0xFDF8    0x2445A
+0xFDF9    0x24A27
+0xFDFA    0x24A22
+0xFDFB    0x71BA
+0xFDFC    0x28BE8
+0xFDFD    0x70BD
+0xFDFE    0x720E
+0xFE40    0x9442
+0xFE41    0x7215
+0xFE42    0x5911
+0xFE43    0x9443
+0xFE44    0x7224
+0xFE45    0x9341
+0xFE46    0x25605
+0xFE47    0x722E
+0xFE48    0x7240
+0xFE49    0x24974
+0xFE4A    0x68BD
+0xFE4B    0x7255
+0xFE4C    0x7257
+0xFE4D    0x3E55
+0xFE4E    0x23044
+0xFE4F    0x680D
+0xFE50    0x6F3D
+0xFE51    0x7282
+0xFE53    0x732B
+0xFE54    0x24823
+0xFE55    0x2882B
+0xFE56    0x48ED
+0xFE57    0x28804
+0xFE58    0x7328
+0xFE59    0x732E
+0xFE5A    0x73CF
+0xFE5B    0x73AA
+0xFE5C    0x20C3A
+0xFE5D    0x26A2E
+0xFE5E    0x73C9
+0xFE5F    0x7449
+0xFE60    0x241E2
+0xFE61    0x216E7
+0xFE62    0x24A24
+0xFE63    0x6623
+0xFE64    0x36C5
+0xFE65    0x249B7
+0xFE66    0x2498D
+0xFE67    0x249FB
+0xFE68    0x73F7
+0xFE69    0x7415
+0xFE6A    0x6903
+0xFE6B    0x24A26
+0xFE6C    0x7439
+0xFE6D    0x205C3
+0xFE6E    0x3ED7
+0xFE70    0x228AD
+0xFE71    0x7460
+0xFE72    0x28EB2
+0xFE73    0x7447
+0xFE74    0x73E4
+0xFE75    0x7476
+0xFE76    0x83B9
+0xFE77    0x746C
+0xFE78    0x3730
+0xFE79    0x7474
+0xFE7A    0x93F1
+0xFE7B    0x6A2C
+0xFE7C    0x7482
+0xFE7D    0x4953
+0xFE7E    0x24A8C
+0xFEA1    0x2415F
+0xFEA2    0x24A79
+0xFEA3    0x28B8F
+0xFEA4    0x5B46
+0xFEA5    0x28C03
+0xFEA6    0x2189E
+0xFEA7    0x74C8
+0xFEA8    0x21988
+0xFEA9    0x750E
+0xFEAB    0x751E
+0xFEAC    0x28ED9
+0xFEAD    0x21A4B
+0xFEAE    0x5BD7
+0xFEAF    0x28EAC
+0xFEB0    0x9385
+0xFEB1    0x754D
+0xFEB2    0x754A
+0xFEB3    0x7567
+0xFEB4    0x756E
+0xFEB5    0x24F82
+0xFEB6    0x3F04
+0xFEB7    0x24D13
+0xFEB8    0x758E
+0xFEB9    0x745D
+0xFEBA    0x759E
+0xFEBB    0x75B4
+0xFEBC    0x7602
+0xFEBD    0x762C
+0xFEBE    0x7651
+0xFEBF    0x764F
+0xFEC0    0x766F
+0xFEC1    0x7676
+0xFEC2    0x263F5
+0xFEC3    0x7690
+0xFEC4    0x81EF
+0xFEC5    0x37F8
+0xFEC6    0x26911
+0xFEC7    0x2690E
+0xFEC8    0x76A1
+0xFEC9    0x76A5
+0xFECA    0x76B7
+0xFECB    0x76CC
+0xFECC    0x26F9F
+0xFECD    0x8462
+0xFECE    0x2509D
+0xFECF    0x2517D
+0xFED0    0x21E1C
+0xFED1    0x771E
+0xFED2    0x7726
+0xFED3    0x7740
+0xFED4    0x64AF
+0xFED5    0x25220
+0xFED6    0x7758
+0xFED7    0x232AC
+0xFED8    0x77AF
+0xFED9    0x28964
+0xFEDA    0x28968
+0xFEDB    0x216C1
+0xFEDC    0x77F4
+0xFEDE    0x21376
+0xFEDF    0x24A12
+0xFEE0    0x68CA
+0xFEE1    0x78AF
+0xFEE2    0x78C7
+0xFEE3    0x78D3
+0xFEE4    0x96A5
+0xFEE5    0x792E
+0xFEE6    0x255E0
+0xFEE7    0x78D7
+0xFEE8    0x7934
+0xFEE9    0x78B1
+0xFEEA    0x2760C
+0xFEEB    0x8FB8
+0xFEEC    0x8884
+0xFEED    0x28B2B
+0xFEEE    0x26083
+0xFEEF    0x2261C
+0xFEF0    0x7986
+0xFEF1    0x8900
+0xFEF2    0x6902
+0xFEF3    0x7980
+0xFEF4    0x25857
+0xFEF5    0x799D
+0xFEF6    0x27B39
+0xFEF7    0x793C
+0xFEF8    0x79A9
+0xFEF9    0x6E2A
+0xFEFA    0x27126
+0xFEFB    0x3EA8
+0xFEFC    0x79C6
+0xFEFD    0x2910D
+0xFEFE    0x79D4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/HKSCS2008.c2b	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,4969 @@
+8740    F266
+8741    F267
+8742    F268
+8743    F269
+8744    F26A
+8745    F26B
+8746    F26C
+8747    F26D
+8748    F26E
+8749    F26F
+874A    F270
+874B    F271
+874C    F272
+874D    F273
+874E    F274
+874F    F275
+8750    F276
+8751    F277
+8752    F278
+8753    F279
+8754    F27A
+8755    F27B
+8756    F27C
+8757    F27D
+8758    F27E
+8759    F27F
+875A    F280
+875B    F281
+875C    F282
+875D    F283
+875E    F284
+875F    F285
+8760    F286
+8761    F287
+8762    F288
+8763    F289
+8764    F28A
+8765    F28B
+8767    F28D
+8768    F28E
+8769    F28F
+876A    F290
+876B    F291
+876C    F292
+876D    F293
+876E    F294
+876F    F295
+8770    F296
+8771    F297
+8772    F298
+8773    F299
+8774    F29A
+8775    F29B
+8776    F29C
+8777    F29D
+8778    F29E
+8779    F29F
+877A    F2A0
+877B    F2A1
+877C    F2A2
+877D    F2A3
+877E    F2A4
+87A1    F2A5
+87A2    F2A6
+87A3    F2A7
+87A4    F2A8
+87A5    F2A9
+87A6    F2AA
+87A7    F2AB
+87A8    F2AC
+87A9    F2AD
+87AA    F2AE
+87AB    F2AF
+87AC    F2B0
+87AD    F2B1
+87AE    F2B2
+87AF    F2B3
+87B0    F2B4
+87B1    F2B5
+87B2    F2B6
+87B3    F2B7
+87B4    F2B8
+87B5    F2B9
+87B6    F2BA
+87B7    F2BB
+87B8    F2BC
+87B9    F2BD
+87BA    F2BE
+87BB    F2BF
+87BC    F2C0
+87BD    F2C1
+87BE    F2C2
+87BF    F2C3
+87C0    F2C4
+87C1    F2C5
+87C2    F2C6
+87C3    F2C7
+87C4    F2C8
+87C5    F2C9
+87C6    F2CA
+87C7    F2CB
+87C8    F2CC
+87C9    F2CD
+87CA    F2CE
+87CB    F2CF
+87CC    F2D0
+87CD    F2D1
+87CE    F2D2
+87CF    F2D3
+87D0    F2D4
+87D1    F2D5
+87D2    F2D6
+87D3    F2D7
+87D4    F2D8
+87D5    F2D9
+87D6    F2DA
+87D7    F2DB
+87D8    F2DC
+87D9    F2DD
+87DA    F2DE
+87DB    F2DF
+87DC    F2E0
+87DD    F2E1
+87DE    F2E2
+87DF    F2E3
+8840    F303
+8841    F304
+8842    F305
+8843    F306
+8844    F307
+8845    F308
+8846    F309
+8847    F30A
+8848    F30B
+8849    F30C
+884A    F30D
+884B    F30E
+884C    F30F
+884D    F310
+884E    F311
+884F    F312
+8850    F313
+8851    F314
+8852    F315
+8853    F316
+8854    F317
+8855    F318
+8856    F319
+8857    F31A
+8858    F31B
+8859    F31C
+885A    F31D
+885B    F31E
+885C    F31F
+885D    F320
+885E    F321
+885F    F322
+8860    F323
+8861    F324
+8862    F325
+8863    F326
+8864    F327
+8865    F328
+8866    F329
+8867    F32A
+8868    F32B
+8869    F32C
+886A    F32D
+886B    F32E
+886C    F32F
+886D    F330
+886E    F331
+886F    F332
+8870    F333
+8871    F334
+8872    F335
+8873    F336
+8874    F337
+8875    F338
+8876    F339
+8877    F33A
+8878    F33B
+8879    F33C
+887A    F33D
+887B    F33E
+887C    F33F
+887D    F340
+887E    F341
+88A1    F342
+88A2    F343
+88A3    F344
+88A4    F345
+88A5    F346
+88A6    F347
+88A7    F348
+88A8    F349
+88A9    F34A
+88AA    F34B
+8940    F3A0
+8941    F3A1
+8943    F3A3
+8946    F3A6
+8947    F3A7
+8948    F3A8
+8949    F3A9
+894C    F3AC
+894D    F3AD
+894E    F3AE
+894F    F3AF
+8950    F3B0
+8951    F3B1
+8952    F3B2
+8953    F3B3
+8954    F3B4
+8955    F3B5
+8956    F3B6
+8957    F3B7
+8958    F3B8
+8959    F3B9
+895A    F3BA
+895B    F3BB
+895C    F3BC
+895D    F3BD
+895E    F3BE
+895F    F3BF
+8960    F3C0
+8961    F3C1
+8962    F3C2
+8963    F3C3
+8964    F3C4
+8965    F3C5
+8966    F3C6
+8967    F3C7
+8968    F3C8
+8969    F3C9
+896A    F3CA
+896B    F3CB
+896C    F3CC
+896D    F3CD
+896E    F3CE
+896F    F3CF
+8970    F3D0
+8971    F3D1
+8972    F3D2
+8973    F3D3
+8974    F3D4
+8975    F3D5
+8976    F3D6
+8977    F3D7
+8978    F3D8
+8979    F3D9
+897A    F3DA
+897B    F3DB
+897C    F3DC
+897D    F3DD
+897E    F3DE
+89A1    F3DF
+89A2    F3E0
+89A3    F3E1
+89A4    F3E2
+89A5    F3E3
+89A6    F3E4
+89AB    F3E9
+89AC    F3EA
+89AD    F3EB
+89AE    F3EC
+89B0    F3EE
+89B1    F3EF
+89B2    F3F0
+89B5    F3F3
+89B6    F3F4
+89B7    F3F5
+89B8    F3F6
+89B9    F3F7
+89BA    F3F8
+89BB    F3F9
+89BC    F3FA
+89BD    F3FB
+89BE    F3FC
+89BF    F3FD
+89C1    F3FF
+89C2    F400
+89C3    F401
+89C5    F403
+89C6    F404
+89C7    F405
+89C8    F406
+89C9    F407
+89CA    F408
+89CB    F409
+89CC    F40A
+89CD    F40B
+89CE    F40C
+89CF    F40D
+89D0    F40E
+89D1    F40F
+89D2    F410
+89D3    F411
+89D4    F412
+89D5    F413
+89D6    F414
+89D7    F415
+89D8    F416
+89D9    F417
+89DA    F418
+89DB    F419
+89DC    F41A
+89DD    F41B
+89DE    F41C
+89DF    F41D
+89E0    F41E
+89E1    F41F
+89E2    F420
+89E3    F421
+89E4    F422
+89E5    F423
+89E6    F424
+89E7    F425
+89E8    F426
+89E9    F427
+89EA    F428
+89EB    F429
+89EC    F42A
+89ED    F42B
+89EE    F42C
+89EF    F42D
+89F0    F42E
+89F1    F42F
+89F2    F430
+89F3    F431
+89F4    F432
+89F5    F433
+89F6    F434
+89F7    F435
+89F8    F436
+89F9    F437
+89FA    F438
+89FB    F439
+89FC    F43A
+89FD    F43B
+89FE    F43C
+8A40    F43D
+8A41    F43E
+8A43    F440
+8A44    F441
+8A45    F442
+8A46    F443
+8A47    F444
+8A48    F445
+8A49    F446
+8A4A    F447
+8A4B    F448
+8A4C    F449
+8A4D    F44A
+8A4E    F44B
+8A4F    F44C
+8A50    F44D
+8A51    F44E
+8A52    F44F
+8A53    F450
+8A54    F451
+8A55    F452
+8A56    F453
+8A57    F454
+8A58    F455
+8A59    F456
+8A5A    F457
+8A5B    F458
+8A5C    F459
+8A5D    F45A
+8A5E    F45B
+8A5F    F45C
+8A60    F45D
+8A61    F45E
+8A62    F45F
+8A64    F461
+8A65    F462
+8A66    F463
+8A67    F464
+8A68    F465
+8A69    F466
+8A6A    F467
+8A6B    F468
+8A6C    F469
+8A6D    F46A
+8A6E    F46B
+8A6F    F46C
+8A70    F46D
+8A71    F46E
+8A72    F46F
+8A73    F470
+8A74    F471
+8A76    F473
+8A77    F474
+8A78    F475
+8A79    F476
+8A7A    F477
+8A7B    F478
+8A7C    F479
+8A7D    F47A
+8A7E    F47B
+8AA1    F47C
+8AA2    F47D
+8AA3    F47E
+8AA4    F47F
+8AA5    F480
+8AA6    F481
+8AA7    F482
+8AA8    F483
+8AA9    F484
+8AAA    F485
+8AAC    F487
+8AAD    F488
+8AAE    F489
+8AAF    F48A
+8AB0    F48B
+8AB2    F48D
+8AB3    F48E
+8AB4    F48F
+8AB5    F490
+8AB6    F491
+8AB7    F492
+8AB8    F493
+8AB9    F494
+8ABB    F496
+8ABC    F497
+8ABD    F498
+8ABE    F499
+8ABF    F49A
+8AC0    F49B
+8AC1    F49C
+8AC2    F49D
+8AC3    F49E
+8AC4    F49F
+8AC5    F4A0
+8AC6    F4A1
+8AC7    F4A2
+8AC9    F4A4
+8ACA    F4A5
+8ACB    F4A6
+8ACC    F4A7
+8ACE    F4A9
+8ACF    F4AA
+8AD0    F4AB
+8AD1    F4AC
+8AD2    F4AD
+8AD3    F4AE
+8AD4    F4AF
+8AD5    F4B0
+8AD6    F4B1
+8AD7    F4B2
+8AD8    F4B3
+8AD9    F4B4
+8ADA    F4B5
+8ADB    F4B6
+8ADC    F4B7
+8ADF    F4BA
+8AE0    F4BB
+8AE1    F4BC
+8AE2    F4BD
+8AE3    F4BE
+8AE4    F4BF
+8AE5    F4C0
+8AE6    F4C1
+8AE7    F4C2
+8AE8    F4C3
+8AE9    F4C4
+8AEA    F4C5
+8AEB    F4C6
+8AEC    F4C7
+8AED    F4C8
+8AEE    F4C9
+8AEF    F4CA
+8AF0    F4CB
+8AF1    F4CC
+8AF2    F4CD
+8AF3    F4CE
+8AF4    F4CF
+8AF6    F4D1
+8AF7    F4D2
+8AF8    F4D3
+8AF9    F4D4
+8AFA    F4D5
+8AFB    F4D6
+8AFC    F4D7
+8AFD    F4D8
+8AFE    F4D9
+8B40    F4DA
+8B41    F4DB
+8B42    F4DC
+8B43    F4DD
+8B44    F4DE
+8B45    F4DF
+8B46    F4E0
+8B47    F4E1
+8B48    F4E2
+8B49    F4E3
+8B4A    F4E4
+8B4B    F4E5
+8B4C    F4E6
+8B4D    F4E7
+8B4E    F4E8
+8B4F    F4E9
+8B50    F4EA
+8B51    F4EB
+8B52    F4EC
+8B53    F4ED
+8B55    F4EF
+8B56    F4F0
+8B57    F4F1
+8B58    F4F2
+8B59    F4F3
+8B5A    F4F4
+8B5B    F4F5
+8B5C    F4F6
+8B5D    F4F7
+8B5E    F4F8
+8B5F    F4F9
+8B60    F4FA
+8B61    F4FB
+8B62    F4FC
+8B63    F4FD
+8B64    F4FE
+8B65    F4FF
+8B66    F500
+8B67    F501
+8B68    F502
+8B69    F503
+8B6A    F504
+8B6B    F505
+8B6C    F506
+8B6D    F507
+8B6E    F508
+8B6F    F509
+8B70    F50A
+8B71    F50B
+8B72    F50C
+8B73    F50D
+8B74    F50E
+8B75    F50F
+8B76    F510
+8B77    F511
+8B78    F512
+8B79    F513
+8B7A    F514
+8B7B    F515
+8B7C    F516
+8B7D    F517
+8B7E    F518
+8BA1    F519
+8BA2    F51A
+8BA3    F51B
+8BA4    F51C
+8BA5    F51D
+8BA6    F51E
+8BA7    F51F
+8BA8    F520
+8BA9    F521
+8BAA    F522
+8BAB    F523
+8BAC    F524
+8BAD    F525
+8BAE    F526
+8BAF    F527
+8BB0    F528
+8BB1    F529
+8BB2    F52A
+8BB3    F52B
+8BB4    F52C
+8BB5    F52D
+8BB6    F52E
+8BB7    F52F
+8BB8    F530
+8BB9    F531
+8BBA    F532
+8BBB    F533
+8BBC    F534
+8BBD    F535
+8BBE    F536
+8BBF    F537
+8BC0    F538
+8BC1    F539
+8BC2    F53A
+8BC3    F53B
+8BC4    F53C
+8BC5    F53D
+8BC6    F53E
+8BC7    F53F
+8BC8    F540
+8BC9    F541
+8BCA    F542
+8BCB    F543
+8BCC    F544
+8BCD    F545
+8BCE    F546
+8BCF    F547
+8BD0    F548
+8BD1    F549
+8BD2    F54A
+8BD3    F54B
+8BD4    F54C
+8BD5    F54D
+8BD6    F54E
+8BD7    F54F
+8BD8    F550
+8BD9    F551
+8BDA    F552
+8BDB    F553
+8BDC    F554
+8BDE    F556
+8BDF    F557
+8BE0    F558
+8BE1    F559
+8BE2    F55A
+8BE3    F55B
+8BE4    F55C
+8BE5    F55D
+8BE6    F55E
+8BE7    F55F
+8BE8    F560
+8BE9    F561
+8BEA    F562
+8BEB    F563
+8BEC    F564
+8BED    F565
+8BEE    F566
+8BEF    F567
+8BF0    F568
+8BF1    F569
+8BF2    F56A
+8BF3    F56B
+8BF4    F56C
+8BF5    F56D
+8BF6    F56E
+8BF7    F56F
+8BF8    F570
+8BF9    F571
+8BFA    F572
+8BFB    F573
+8BFC    F574
+8BFD    F575
+8C40    F577
+8C41    F578
+8C42    F579
+8C43    F57A
+8C44    F57B
+8C45    F57C
+8C46    F57D
+8C47    F57E
+8C48    F57F
+8C49    F580
+8C4A    F581
+8C4B    F582
+8C4C    F583
+8C4D    F584
+8C4E    F585
+8C4F    F586
+8C50    F587
+8C51    F588
+8C52    F589
+8C53    F58A
+8C54    F58B
+8C55    F58C
+8C56    F58D
+8C57    F58E
+8C58    F58F
+8C59    F590
+8C5A    F591
+8C5B    F592
+8C5C    F593
+8C5D    F594
+8C5E    F595
+8C5F    F596
+8C60    F597
+8C61    F598
+8C62    F599
+8C63    F59A
+8C64    F59B
+8C65    F59C
+8C66    F59D
+8C67    F59E
+8C68    F59F
+8C69    F5A0
+8C6A    F5A1
+8C6B    F5A2
+8C6C    F5A3
+8C6D    F5A4
+8C6E    F5A5
+8C6F    F5A6
+8C70    F5A7
+8C71    F5A8
+8C72    F5A9
+8C73    F5AA
+8C74    F5AB
+8C75    F5AC
+8C76    F5AD
+8C77    F5AE
+8C78    F5AF
+8C79    F5B0
+8C7A    F5B1
+8C7B    F5B2
+8C7C    F5B3
+8C7D    F5B4
+8C7E    F5B5
+8CA1    F5B6
+8CA2    F5B7
+8CA3    F5B8
+8CA4    F5B9
+8CA5    F5BA
+8CA7    F5BC
+8CA8    F5BD
+8CA9    F5BE
+8CAA    F5BF
+8CAB    F5C0
+8CAC    F5C1
+8CAD    F5C2
+8CAE    F5C3
+8CAF    F5C4
+8CB0    F5C5
+8CB1    F5C6
+8CB2    F5C7
+8CB3    F5C8
+8CB4    F5C9
+8CB5    F5CA
+8CB6    F5CB
+8CB7    F5CC
+8CB8    F5CD
+8CB9    F5CE
+8CBA    F5CF
+8CBB    F5D0
+8CBC    F5D1
+8CBD    F5D2
+8CBE    F5D3
+8CBF    F5D4
+8CC0    F5D5
+8CC1    F5D6
+8CC2    F5D7
+8CC3    F5D8
+8CC4    F5D9
+8CC5    F5DA
+8CC9    F5DE
+8CCA    F5DF
+8CCB    F5E0
+8CCC    F5E1
+8CCE    F5E3
+8CCF    F5E4
+8CD0    F5E5
+8CD1    F5E6
+8CD2    F5E7
+8CD3    F5E8
+8CD4    F5E9
+8CD5    F5EA
+8CD6    F5EB
+8CD7    F5EC
+8CD8    F5ED
+8CD9    F5EE
+8CDA    F5EF
+8CDB    F5F0
+8CDC    F5F1
+8CDD    F5F2
+8CDE    F5F3
+8CDF    F5F4
+8CE0    F5F5
+8CE1    F5F6
+8CE2    F5F7
+8CE3    F5F8
+8CE4    F5F9
+8CE6    F5FB
+8CE7    F5FC
+8CE8    F5FD
+8CE9    F5FE
+8CEA    F5FF
+8CEB    F600
+8CEC    F601
+8CED    F602
+8CEE    F603
+8CEF    F604
+8CF0    F605
+8CF1    F606
+8CF2    F607
+8CF3    F608
+8CF4    F609
+8CF5    F60A
+8CF6    F60B
+8CF7    F60C
+8CF8    F60D
+8CF9    F60E
+8CFA    F60F
+8CFB    F610
+8CFC    F611
+8CFD    F612
+8CFE    F613
+8D40    F614
+8D42    F616
+8D43    F617
+8D44    F618
+8D45    F619
+8D46    F61A
+8D47    F61B
+8D48    F61C
+8D49    F61D
+8D4A    F61E
+8D4B    F61F
+8D4C    F620
+8D4D    F621
+8D4E    F622
+8D4F    F623
+8D50    F624
+8D51    F625
+8D52    F626
+8D53    F627
+8D54    F628
+8D55    F629
+8D56    F62A
+8D57    F62B
+8D58    F62C
+8D59    F62D
+8D5A    F62E
+8D5B    F62F
+8D5C    F630
+8D5D    F631
+8D5E    F632
+8D5F    F633
+8D60    F634
+8D61    F635
+8D62    F636
+8D63    F637
+8D64    F638
+8D65    F639
+8D66    F63A
+8D67    F63B
+8D68    F63C
+8D69    F63D
+8D6A    F63E
+8D6B    F63F
+8D6C    F640
+8D6D    F641
+8D6E    F642
+8D6F    F643
+8D70    F644
+8D71    F645
+8D72    F646
+8D73    F647
+8D74    F648
+8D75    F649
+8D76    F64A
+8D77    F64B
+8D78    F64C
+8D79    F64D
+8D7A    F64E
+8D7B    F64F
+8D7C    F650
+8D7D    F651
+8D7E    F652
+8DA1    F653
+8DA2    F654
+8DA3    F655
+8DA4    F656
+8DA5    F657
+8DA6    F658
+8DA7    F659
+8DA8    F65A
+8DA9    F65B
+8DAA    F65C
+8DAB    F65D
+8DAC    F65E
+8DAD    F65F
+8DAE    F660
+8DAF    F661
+8DB0    F662
+8DB1    F663
+8DB2    F664
+8DB3    F665
+8DB4    F666
+8DB5    F667
+8DB6    F668
+8DB7    F669
+8DB8    F66A
+8DB9    F66B
+8DBA    F66C
+8DBB    F66D
+8DBC    F66E
+8DBD    F66F
+8DBE    F670
+8DBF    F671
+8DC0    F672
+8DC1    F673
+8DC2    F674
+8DC3    F675
+8DC4    F676
+8DC5    F677
+8DC6    F678
+8DC7    F679
+8DC8    F67A
+8DC9    F67B
+8DCA    F67C
+8DCB    F67D
+8DCC    F67E
+8DCD    F67F
+8DCE    F680
+8DCF    F681
+8DD0    F682
+8DD1    F683
+8DD2    F684
+8DD3    F685
+8DD4    F686
+8DD5    F687
+8DD6    F688
+8DD7    F689
+8DD8    F68A
+8DD9    F68B
+8DDA    F68C
+8DDB    F68D
+8DDC    F68E
+8DDD    F68F
+8DDE    F690
+8DDF    F691
+8DE0    F692
+8DE1    F693
+8DE2    F694
+8DE3    F695
+8DE4    F696
+8DE5    F697
+8DE6    F698
+8DE7    F699
+8DE8    F69A
+8DE9    F69B
+8DEA    F69C
+8DEB    F69D
+8DEC    F69E
+8DED    F69F
+8DEE    F6A0
+8DEF    F6A1
+8DF0    F6A2
+8DF1    F6A3
+8DF2    F6A4
+8DF3    F6A5
+8DF4    F6A6
+8DF5    F6A7
+8DF6    F6A8
+8DF7    F6A9
+8DF8    F6AA
+8DF9    F6AB
+8DFA    F6AC
+8DFB    F6AD
+8DFC    F6AE
+8DFD    F6AF
+8DFE    F6B0
+8E40    E311
+8E41    E312
+8E42    E313
+8E43    E314
+8E44    E315
+8E45    E316
+8E46    E317
+8E47    E318
+8E48    E319
+8E49    E31A
+8E4A    E31B
+8E4B    E31C
+8E4C    E31D
+8E4D    E31E
+8E4E    E31F
+8E4F    E320
+8E50    E321
+8E51    E322
+8E52    E323
+8E53    E324
+8E54    E325
+8E55    E326
+8E56    E327
+8E57    E328
+8E58    E329
+8E59    E32A
+8E5A    E32B
+8E5B    E32C
+8E5C    E32D
+8E5D    E32E
+8E5E    E32F
+8E5F    E330
+8E60    E331
+8E61    E332
+8E62    E333
+8E63    E334
+8E64    E335
+8E65    E336
+8E66    E337
+8E67    E338
+8E68    E339
+8E6A    E33B
+8E6B    E33C
+8E6C    E33D
+8E6D    E33E
+8E6E    E33F
+8E70    E341
+8E71    E342
+8E72    E343
+8E73    E344
+8E74    E345
+8E75    E346
+8E76    E347
+8E77    E348
+8E78    E349
+8E79    E34A
+8E7A    E34B
+8E7B    E34C
+8E7C    E34D
+8E7D    E34E
+8EA1    E350
+8EA2    E351
+8EA3    E352
+8EA4    E353
+8EA5    E354
+8EA6    E355
+8EA7    E356
+8EA8    E357
+8EA9    E358
+8EAA    E359
+8EAC    E35B
+8EAD    E35C
+8EAE    E35D
+8EAF    E35E
+8EB0    E35F
+8EB1    E360
+8EB2    E361
+8EB3    E362
+8EB5    E364
+8EB6    E365
+8EB7    E366
+8EB8    E367
+8EB9    E368
+8EBA    E369
+8EBB    E36A
+8EBC    E36B
+8EBD    E36C
+8EBE    E36D
+8EBF    E36E
+8EC0    E36F
+8EC1    E370
+8EC2    E371
+8EC3    E372
+8EC4    E373
+8EC5    E374
+8EC6    E375
+8EC7    E376
+8EC8    E377
+8EC9    E378
+8ECA    E379
+8ECB    E37A
+8ECC    E37B
+8ECE    E37D
+8ECF    E37E
+8ED1    E380
+8ED2    E381
+8ED3    E382
+8ED4    E383
+8ED5    E384
+8ED6    E385
+8ED7    E386
+8ED8    E387
+8ED9    E388
+8EDA    E389
+8EDB    E38A
+8EDC    E38B
+8EDD    E38C
+8EDE    E38D
+8EDF    E38E
+8EE0    E38F
+8EE1    E390
+8EE2    E391
+8EE3    E392
+8EE4    E393
+8EE5    E394
+8EE6    E395
+8EE7    E396
+8EE8    E397
+8EE9    E398
+8EEA    E399
+8EEB    E39A
+8EEC    E39B
+8EED    E39C
+8EEE    E39D
+8EEF    E39E
+8EF0    E39F
+8EF1    E3A0
+8EF2    E3A1
+8EF3    E3A2
+8EF4    E3A3
+8EF5    E3A4
+8EF6    E3A5
+8EF7    E3A6
+8EF8    E3A7
+8EF9    E3A8
+8EFA    E3A9
+8EFB    E3AA
+8EFC    E3AB
+8EFD    E3AC
+8EFE    E3AD
+8F40    E3AE
+8F41    E3AF
+8F42    E3B0
+8F43    E3B1
+8F44    E3B2
+8F45    E3B3
+8F46    E3B4
+8F47    E3B5
+8F48    E3B6
+8F49    E3B7
+8F4A    E3B8
+8F4B    E3B9
+8F4C    E3BA
+8F4D    E3BB
+8F4E    E3BC
+8F4F    E3BD
+8F50    E3BE
+8F51    E3BF
+8F52    E3C0
+8F53    E3C1
+8F54    E3C2
+8F55    E3C3
+8F56    E3C4
+8F58    E3C6
+8F59    E3C7
+8F5A    E3C8
+8F5B    E3C9
+8F5C    E3CA
+8F5D    E3CB
+8F5E    E3CC
+8F5F    E3CD
+8F60    E3CE
+8F61    E3CF
+8F62    E3D0
+8F63    E3D1
+8F64    E3D2
+8F65    E3D3
+8F66    E3D4
+8F67    E3D5
+8F68    E3D6
+8F6A    E3D8
+8F6B    E3D9
+8F6C    E3DA
+8F6D    E3DB
+8F6F    E3DD
+8F70    E3DE
+8F71    E3DF
+8F72    E3E0
+8F73    E3E1
+8F74    E3E2
+8F75    E3E3
+8F76    E3E4
+8F77    E3E5
+8F78    E3E6
+8F79    E3E7
+8F7A    E3E8
+8F7B    E3E9
+8F7C    E3EA
+8F7D    E3EB
+8F7E    E3EC
+8FA1    E3ED
+8FA2    E3EE
+8FA3    E3EF
+8FA4    E3F0
+8FA5    E3F1
+8FA6    E3F2
+8FA7    E3F3
+8FA8    E3F4
+8FA9    E3F5
+8FAA    E3F6
+8FAB    E3F7
+8FAC    E3F8
+8FAD    E3F9
+8FAE    E3FA
+8FAF    E3FB
+8FB0    E3FC
+8FB1    E3FD
+8FB2    E3FE
+8FB3    E3FF
+8FB4    E400
+8FB5    E401
+8FB6    E402
+8FB7    E403
+8FB8    E404
+8FB9    E405
+8FBA    E406
+8FBB    E407
+8FBC    E408
+8FBD    E409
+8FBE    E40A
+8FBF    E40B
+8FC0    E40C
+8FC1    E40D
+8FC2    E40E
+8FC3    E40F
+8FC4    E410
+8FC5    E411
+8FC6    E412
+8FC7    E413
+8FC8    E414
+8FC9    E415
+8FCA    E416
+8FCD    E419
+8FCE    E41A
+8FCF    E41B
+8FD0    E41C
+8FD1    E41D
+8FD2    E41E
+8FD3    E41F
+8FD4    E420
+8FD5    E421
+8FD6    E422
+8FD7    E423
+8FD8    E424
+8FD9    E425
+8FDA    E426
+8FDB    E427
+8FDC    E428
+8FDD    E429
+8FDE    E42A
+8FDF    E42B
+8FE0    E42C
+8FE1    E42D
+8FE2    E42E
+8FE3    E42F
+8FE4    E430
+8FE5    E431
+8FE6    E432
+8FE7    E433
+8FE8    E434
+8FE9    E435
+8FEA    E436
+8FEB    E437
+8FEC    E438
+8FED    E439
+8FEE    E43A
+8FEF    E43B
+8FF0    E43C
+8FF1    E43D
+8FF2    E43E
+8FF3    E43F
+8FF4    E440
+8FF5    E441
+8FF6    E442
+8FF7    E443
+8FF8    E444
+8FF9    E445
+8FFA    E446
+8FFB    E447
+8FFC    E448
+8FFD    E449
+9040    E44B
+9041    E44C
+9042    E44D
+9043    E44E
+9044    E44F
+9045    E450
+9046    E451
+9047    E452
+9048    E453
+9049    E454
+904A    E455
+904B    E456
+904C    E457
+904D    E458
+904E    E459
+904F    E45A
+9050    E45B
+9051    E45C
+9052    E45D
+9053    E45E
+9054    E45F
+9055    E460
+9056    E461
+9057    E462
+9058    E463
+9059    E464
+905A    E465
+905B    E466
+905C    E467
+905D    E468
+905E    E469
+905F    E46A
+9060    E46B
+9061    E46C
+9062    E46D
+9063    E46E
+9064    E46F
+9065    E470
+9066    E471
+9067    E472
+9068    E473
+9069    E474
+906A    E475
+906B    E476
+906C    E477
+906E    E479
+906F    E47A
+9070    E47B
+9071    E47C
+9072    E47D
+9073    E47E
+9074    E47F
+9075    E480
+9076    E481
+9077    E482
+9078    E483
+9079    E484
+907B    E486
+907C    E487
+907D    E488
+907E    E489
+90A1    E48A
+90A2    E48B
+90A3    E48C
+90A4    E48D
+90A5    E48E
+90A6    E48F
+90A7    E490
+90A8    E491
+90A9    E492
+90AA    E493
+90AB    E494
+90AC    E495
+90AD    E496
+90AE    E497
+90AF    E498
+90B0    E499
+90B1    E49A
+90B2    E49B
+90B3    E49C
+90B4    E49D
+90B5    E49E
+90B6    E49F
+90B7    E4A0
+90B8    E4A1
+90B9    E4A2
+90BA    E4A3
+90BB    E4A4
+90BC    E4A5
+90BD    E4A6
+90BE    E4A7
+90BF    E4A8
+90C0    E4A9
+90C1    E4AA
+90C2    E4AB
+90C3    E4AC
+90C4    E4AD
+90C5    E4AE
+90C6    E4AF
+90C7    E4B0
+90C8    E4B1
+90C9    E4B2
+90CA    E4B3
+90CB    E4B4
+90CC    E4B5
+90CD    E4B6
+90CE    E4B7
+90CF    E4B8
+90D0    E4B9
+90D1    E4BA
+90D2    E4BB
+90D3    E4BC
+90D4    E4BD
+90D5    E4BE
+90D6    E4BF
+90D7    E4C0
+90D8    E4C1
+90D9    E4C2
+90DA    E4C3
+90DB    E4C4
+90DD    E4C6
+90DE    E4C7
+90DF    E4C8
+90E0    E4C9
+90E1    E4CA
+90E2    E4CB
+90E3    E4CC
+90E4    E4CD
+90E5    E4CE
+90E6    E4CF
+90E7    E4D0
+90E8    E4D1
+90E9    E4D2
+90EA    E4D3
+90EB    E4D4
+90EC    E4D5
+90ED    E4D6
+90EE    E4D7
+90EF    E4D8
+90F0    E4D9
+90F2    E4DB
+90F3    E4DC
+90F4    E4DD
+90F5    E4DE
+90F6    E4DF
+90F7    E4E0
+90F8    E4E1
+90F9    E4E2
+90FA    E4E3
+90FB    E4E4
+90FC    E4E5
+90FD    E4E6
+90FE    E4E7
+9140    E4E8
+9141    E4E9
+9142    E4EA
+9143    E4EB
+9144    E4EC
+9145    E4ED
+9146    E4EE
+9147    E4EF
+9148    E4F0
+9149    E4F1
+914A    E4F2
+914B    E4F3
+914C    E4F4
+914D    E4F5
+914E    E4F6
+914F    E4F7
+9150    E4F8
+9151    E4F9
+9152    E4FA
+9153    E4FB
+9154    E4FC
+9155    E4FD
+9156    E4FE
+9157    E4FF
+9158    E500
+9159    E501
+915A    E502
+915B    E503
+915C    E504
+915D    E505
+915E    E506
+915F    E507
+9160    E508
+9161    E509
+9162    E50A
+9163    E50B
+9164    E50C
+9165    E50D
+9166    E50E
+9167    E50F
+9168    E510
+9169    E511
+916A    E512
+916B    E513
+916C    E514
+916D    E515
+916E    E516
+916F    E517
+9170    E518
+9171    E519
+9172    E51A
+9173    E51B
+9174    E51C
+9175    E51D
+9176    E51E
+9177    E51F
+9178    E520
+9179    E521
+917A    E522
+917B    E523
+917C    E524
+917D    E525
+917E    E526
+91A1    E527
+91A2    E528
+91A3    E529
+91A4    E52A
+91A5    E52B
+91A6    E52C
+91A7    E52D
+91A8    E52E
+91A9    E52F
+91AA    E530
+91AB    E531
+91AC    E532
+91AD    E533
+91AE    E534
+91AF    E535
+91B0    E536
+91B1    E537
+91B2    E538
+91B3    E539
+91B4    E53A
+91B5    E53B
+91B6    E53C
+91B7    E53D
+91B8    E53E
+91B9    E53F
+91BA    E540
+91BB    E541
+91BC    E542
+91BD    E543
+91BE    E544
+91C0    E546
+91C1    E547
+91C2    E548
+91C3    E549
+91C4    E54A
+91C5    E54B
+91C6    E54C
+91C7    E54D
+91C8    E54E
+91C9    E54F
+91CA    E550
+91CB    E551
+91CC    E552
+91CD    E553
+91CE    E554
+91CF    E555
+91D0    E556
+91D1    E557
+91D2    E558
+91D3    E559
+91D4    E55A
+91D5    E55B
+91D6    E55C
+91D7    E55D
+91D8    E55E
+91D9    E55F
+91DA    E560
+91DB    E561
+91DC    E562
+91DD    E563
+91DE    E564
+91DF    E565
+91E0    E566
+91E1    E567
+91E2    E568
+91E3    E569
+91E4    E56A
+91E5    E56B
+91E6    E56C
+91E7    E56D
+91E8    E56E
+91E9    E56F
+91EA    E570
+91EB    E571
+91EC    E572
+91ED    E573
+91EE    E574
+91EF    E575
+91F0    E576
+91F1    E577
+91F2    E578
+91F3    E579
+91F4    E57A
+91F5    E57B
+91F6    E57C
+91F7    E57D
+91F8    E57E
+91F9    E57F
+91FA    E580
+91FB    E581
+91FC    E582
+91FD    E583
+91FE    E584
+9240    E585
+9241    E586
+9242    E587
+9243    E588
+9245    E58A
+9246    E58B
+9247    E58C
+9248    E58D
+9249    E58E
+924A    E58F
+924B    E590
+924C    E591
+924D    E592
+924E    E593
+924F    E594
+9250    E595
+9251    E596
+9252    E597
+9253    E598
+9254    E599
+9255    E59A
+9256    E59B
+9257    E59C
+9258    E59D
+9259    E59E
+925A    E59F
+925B    E5A0
+925C    E5A1
+925D    E5A2
+925E    E5A3
+925F    E5A4
+9260    E5A5
+9261    E5A6
+9262    E5A7
+9263    E5A8
+9264    E5A9
+9265    E5AA
+9266    E5AB
+9267    E5AC
+9268    E5AD
+9269    E5AE
+926A    E5AF
+926B    E5B0
+926C    E5B1
+926D    E5B2
+926E    E5B3
+926F    E5B4
+9270    E5B5
+9271    E5B6
+9272    E5B7
+9273    E5B8
+9274    E5B9
+9275    E5BA
+9276    E5BB
+9277    E5BC
+9278    E5BD
+9279    E5BE
+927A    E5BF
+927B    E5C0
+927C    E5C1
+927D    E5C2
+927E    E5C3
+92A1    E5C4
+92A2    E5C5
+92A3    E5C6
+92A4    E5C7
+92A5    E5C8
+92A6    E5C9
+92A7    E5CA
+92A8    E5CB
+92A9    E5CC
+92AA    E5CD
+92AB    E5CE
+92AC    E5CF
+92AD    E5D0
+92AE    E5D1
+92B3    E5D6
+92B4    E5D7
+92B5    E5D8
+92B6    E5D9
+92B7    E5DA
+92B8    E5DB
+92B9    E5DC
+92BA    E5DD
+92BB    E5DE
+92BC    E5DF
+92BD    E5E0
+92BE    E5E1
+92BF    E5E2
+92C0    E5E3
+92C1    E5E4
+92C2    E5E5
+92C3    E5E6
+92C4    E5E7
+92C5    E5E8
+92C6    E5E9
+92C7    E5EA
+92C9    E5EC
+92CA    E5ED
+92CB    E5EE
+92CC    E5EF
+92CD    E5F0
+92CE    E5F1
+92CF    E5F2
+92D0    E5F3
+92D2    E5F5
+92D3    E5F6
+92D4    E5F7
+92D5    E5F8
+92D6    E5F9
+92D7    E5FA
+92D8    E5FB
+92D9    E5FC
+92DA    E5FD
+92DB    E5FE
+92DC    E5FF
+92DD    E600
+92DE    E601
+92DF    E602
+92E0    E603
+92E1    E604
+92E2    E605
+92E3    E606
+92E4    E607
+92E5    E608
+92E6    E609
+92E7    E60A
+92E8    E60B
+92E9    E60C
+92EA    E60D
+92EB    E60E
+92EC    E60F
+92ED    E610
+92EE    E611
+92EF    E612
+92F0    E613
+92F1    E614
+92F2    E615
+92F3    E616
+92F4    E617
+92F5    E618
+92F6    E619
+92F7    E61A
+92F8    E61B
+92F9    E61C
+92FA    E61D
+92FB    E61E
+92FC    E61F
+92FD    E620
+92FE    E621
+9340    E622
+9341    E623
+9342    E624
+9343    E625
+9344    E626
+9345    E627
+9346    E628
+9347    E629
+9348    E62A
+9349    E62B
+934A    E62C
+934B    E62D
+934C    E62E
+934D    E62F
+934E    E630
+934F    E631
+9350    E632
+9351    E633
+9352    E634
+9353    E635
+9354    E636
+9355    E637
+9356    E638
+9357    E639
+9358    E63A
+9359    E63B
+935A    E63C
+935B    E63D
+935C    E63E
+935D    E63F
+935E    E640
+935F    E641
+9360    E642
+9361    E643
+9362    E644
+9363    E645
+9364    E646
+9365    E647
+9366    E648
+9367    E649
+9368    E64A
+9369    E64B
+936A    E64C
+936B    E64D
+936C    E64E
+936D    E64F
+936E    E650
+936F    E651
+9370    E652
+9371    E653
+9372    E654
+9373    E655
+9374    E656
+9375    E657
+9376    E658
+9377    E659
+9378    E65A
+9379    E65B
+937A    E65C
+937B    E65D
+937C    E65E
+937D    E65F
+937E    E660
+93A1    E661
+93A2    E662
+93A3    E663
+93A4    E664
+93A5    E665
+93A6    E666
+93A7    E667
+93A8    E668
+93A9    E669
+93AA    E66A
+93AB    E66B
+93AC    E66C
+93AD    E66D
+93AE    E66E
+93AF    E66F
+93B0    E670
+93B1    E671
+93B2    E672
+93B3    E673
+93B4    E674
+93B5    E675
+93B6    E676
+93B7    E677
+93B8    E678
+93B9    E679
+93BA    E67A
+93BB    E67B
+93BC    E67C
+93BD    E67D
+93BE    E67E
+93BF    E67F
+93C0    E680
+93C1    E681
+93C2    E682
+93C3    E683
+93C4    E684
+93C5    E685
+93C6    E686
+93C7    E687
+93C8    E688
+93C9    E689
+93CA    E68A
+93CB    E68B
+93CC    E68C
+93CD    E68D
+93CE    E68E
+93CF    E68F
+93D0    E690
+93D1    E691
+93D2    E692
+93D3    E693
+93D4    E694
+93D5    E695
+93D6    E696
+93D7    E697
+93D8    E698
+93D9    E699
+93DA    E69A
+93DB    E69B
+93DC    E69C
+93DD    E69D
+93DE    E69E
+93DF    E69F
+93E0    E6A0
+93E1    E6A1
+93E2    E6A2
+93E3    E6A3
+93E4    E6A4
+93E5    E6A5
+93E6    E6A6
+93E7    E6A7
+93E8    E6A8
+93E9    E6A9
+93EA    E6AA
+93EB    E6AB
+93EC    E6AC
+93ED    E6AD
+93EE    E6AE
+93EF    E6AF
+93F0    E6B0
+93F1    E6B1
+93F2    E6B2
+93F3    E6B3
+93F4    E6B4
+93F5    E6B5
+93F6    E6B6
+93F7    E6B7
+93F8    E6B8
+93F9    E6B9
+93FA    E6BA
+93FB    E6BB
+93FC    E6BC
+93FD    E6BD
+93FE    E6BE
+9440    E6BF
+9441    E6C0
+9442    E6C1
+9443    E6C2
+9444    E6C3
+9445    E6C4
+9446    E6C5
+9448    E6C7
+9449    E6C8
+944A    E6C9
+944B    E6CA
+944C    E6CB
+944D    E6CC
+944E    E6CD
+944F    E6CE
+9450    E6CF
+9451    E6D0
+9452    E6D1
+9453    E6D2
+9454    E6D3
+9455    E6D4
+9456    E6D5
+9457    E6D6
+9458    E6D7
+9459    E6D8
+945A    E6D9
+945B    E6DA
+945C    E6DB
+945D    E6DC
+945E    E6DD
+945F    E6DE
+9460    E6DF
+9461    E6E0
+9462    E6E1
+9463    E6E2
+9464    E6E3
+9465    E6E4
+9466    E6E5
+9467    E6E6
+9468    E6E7
+9469    E6E8
+946A    E6E9
+946B    E6EA
+946C    E6EB
+946D    E6EC
+946E    E6ED
+946F    E6EE
+9470    E6EF
+9471    E6F0
+9472    E6F1
+9473    E6F2
+9474    E6F3
+9475    E6F4
+9476    E6F5
+9477    E6F6
+9478    E6F7
+9479    E6F8
+947A    E6F9
+947B    E6FA
+947C    E6FB
+947D    E6FC
+947E    E6FD
+94A1    E6FE
+94A2    E6FF
+94A3    E700
+94A4    E701
+94A5    E702
+94A6    E703
+94A7    E704
+94A8    E705
+94A9    E706
+94AA    E707
+94AB    E708
+94AC    E709
+94AD    E70A
+94AE    E70B
+94AF    E70C
+94B0    E70D
+94B1    E70E
+94B2    E70F
+94B3    E710
+94B4    E711
+94B5    E712
+94B6    E713
+94B7    E714
+94B8    E715
+94B9    E716
+94BA    E717
+94BB    E718
+94BC    E719
+94BD    E71A
+94BE    E71B
+94BF    E71C
+94C0    E71D
+94C1    E71E
+94C2    E71F
+94C3    E720
+94C4    E721
+94C5    E722
+94C6    E723
+94C7    E724
+94C8    E725
+94C9    E726
+94CB    E728
+94CC    E729
+94CD    E72A
+94CE    E72B
+94CF    E72C
+94D0    E72D
+94D1    E72E
+94D2    E72F
+94D3    E730
+94D4    E731
+94D5    E732
+94D6    E733
+94D7    E734
+94D8    E735
+94D9    E736
+94DA    E737
+94DB    E738
+94DC    E739
+94DD    E73A
+94DE    E73B
+94DF    E73C
+94E0    E73D
+94E1    E73E
+94E2    E73F
+94E3    E740
+94E4    E741
+94E5    E742
+94E6    E743
+94E7    E744
+94E8    E745
+94E9    E746
+94EA    E747
+94EB    E748
+94EC    E749
+94ED    E74A
+94EE    E74B
+94EF    E74C
+94F0    E74D
+94F1    E74E
+94F2    E74F
+94F3    E750
+94F4    E751
+94F5    E752
+94F6    E753
+94F7    E754
+94F8    E755
+94F9    E756
+94FA    E757
+94FB    E758
+94FC    E759
+94FD    E75A
+94FE    E75B
+9540    E75C
+9541    E75D
+9542    E75E
+9543    E75F
+9544    E760
+9545    E761
+9546    E762
+9547    E763
+9548    E764
+9549    E765
+954A    E766
+954B    E767
+954C    E768
+954D    E769
+954E    E76A
+954F    E76B
+9550    E76C
+9551    E76D
+9552    E76E
+9553    E76F
+9554    E770
+9555    E771
+9556    E772
+9557    E773
+9558    E774
+9559    E775
+955A    E776
+955B    E777
+955C    E778
+955D    E779
+955E    E77A
+955F    E77B
+9560    E77C
+9561    E77D
+9562    E77E
+9563    E77F
+9564    E780
+9565    E781
+9566    E782
+9567    E783
+9568    E784
+9569    E785
+956A    E786
+956B    E787
+956C    E788
+956D    E789
+956E    E78A
+956F    E78B
+9570    E78C
+9571    E78D
+9572    E78E
+9573    E78F
+9574    E790
+9575    E791
+9576    E792
+9577    E793
+9578    E794
+9579    E795
+957A    E796
+957B    E797
+957C    E798
+957D    E799
+957E    E79A
+95A1    E79B
+95A2    E79C
+95A3    E79D
+95A4    E79E
+95A5    E79F
+95A6    E7A0
+95A7    E7A1
+95A8    E7A2
+95A9    E7A3
+95AA    E7A4
+95AB    E7A5
+95AC    E7A6
+95AD    E7A7
+95AE    E7A8
+95AF    E7A9
+95B0    E7AA
+95B1    E7AB
+95B2    E7AC
+95B3    E7AD
+95B4    E7AE
+95B5    E7AF
+95B6    E7B0
+95B7    E7B1
+95B8    E7B2
+95B9    E7B3
+95BA    E7B4
+95BB    E7B5
+95BC    E7B6
+95BD    E7B7
+95BE    E7B8
+95BF    E7B9
+95C0    E7BA
+95C1    E7BB
+95C2    E7BC
+95C3    E7BD
+95C4    E7BE
+95C5    E7BF
+95C6    E7C0
+95C7    E7C1
+95C8    E7C2
+95C9    E7C3
+95CA    E7C4
+95CB    E7C5
+95CC    E7C6
+95CD    E7C7
+95CE    E7C8
+95CF    E7C9
+95D0    E7CA
+95D1    E7CB
+95D2    E7CC
+95D3    E7CD
+95D4    E7CE
+95D5    E7CF
+95D6    E7D0
+95D7    E7D1
+95D8    E7D2
+95DA    E7D4
+95DB    E7D5
+95DC    E7D6
+95DD    E7D7
+95DE    E7D8
+95DF    E7D9
+95E0    E7DA
+95E1    E7DB
+95E2    E7DC
+95E3    E7DD
+95E4    E7DE
+95E5    E7DF
+95E6    E7E0
+95E7    E7E1
+95E8    E7E2
+95E9    E7E3
+95EA    E7E4
+95EB    E7E5
+95EC    E7E6
+95ED    E7E7
+95EE    E7E8
+95EF    E7E9
+95F0    E7EA
+95F1    E7EB
+95F2    E7EC
+95F3    E7ED
+95F4    E7EE
+95F5    E7EF
+95F6    E7F0
+95F7    E7F1
+95F8    E7F2
+95F9    E7F3
+95FA    E7F4
+95FB    E7F5
+95FC    E7F6
+95FD    E7F7
+95FE    E7F8
+9640    E7F9
+9641    E7FA
+9642    E7FB
+9643    E7FC
+9645    E7FE
+9646    E7FF
+9647    E800
+9648    E801
+9649    E802
+964A    E803
+964B    E804
+964C    E805
+964D    E806
+964E    E807
+964F    E808
+9650    E809
+9651    E80A
+9652    E80B
+9653    E80C
+9654    E80D
+9655    E80E
+9656    E80F
+9657    E810
+9658    E811
+9659    E812
+965A    E813
+965B    E814
+965C    E815
+965D    E816
+965E    E817
+965F    E818
+9660    E819
+9661    E81A
+9662    E81B
+9663    E81C
+9664    E81D
+9665    E81E
+9666    E81F
+9667    E820
+9668    E821
+9669    E822
+966A    E823
+966B    E824
+966C    E825
+966D    E826
+966E    E827
+966F    E828
+9670    E829
+9671    E82A
+9672    E82B
+9673    E82C
+9674    E82D
+9675    E82E
+9676    E82F
+9677    E830
+9678    E831
+9679    E832
+967A    E833
+967B    E834
+967C    E835
+967D    E836
+967E    E837
+96A1    E838
+96A2    E839
+96A3    E83A
+96A4    E83B
+96A5    E83C
+96A6    E83D
+96A7    E83E
+96A8    E83F
+96A9    E840
+96AA    E841
+96AB    E842
+96AC    E843
+96AD    E844
+96AE    E845
+96AF    E846
+96B0    E847
+96B1    E848
+96B2    E849
+96B3    E84A
+96B4    E84B
+96B5    E84C
+96B6    E84D
+96B7    E84E
+96B8    E84F
+96B9    E850
+96BA    E851
+96BB    E852
+96BC    E853
+96BD    E854
+96BE    E855
+96BF    E856
+96C0    E857
+96C1    E858
+96C2    E859
+96C3    E85A
+96C4    E85B
+96C5    E85C
+96C6    E85D
+96C7    E85E
+96C8    E85F
+96C9    E860
+96CA    E861
+96CB    E862
+96CC    E863
+96CD    E864
+96CE    E865
+96CF    E866
+96D0    E867
+96D1    E868
+96D2    E869
+96D3    E86A
+96D4    E86B
+96D5    E86C
+96D6    E86D
+96D7    E86E
+96D8    E86F
+96D9    E870
+96DA    E871
+96DB    E872
+96DC    E873
+96DD    E874
+96DE    E875
+96DF    E876
+96E0    E877
+96E1    E878
+96E2    E879
+96E3    E87A
+96E4    E87B
+96E5    E87C
+96E6    E87D
+96E7    E87E
+96E8    E87F
+96E9    E880
+96EA    E881
+96EB    E882
+96EC    E883
+96EE    E885
+96EF    E886
+96F0    E887
+96F1    E888
+96F2    E889
+96F3    E88A
+96F4    E88B
+96F5    E88C
+96F6    E88D
+96F7    E88E
+96F8    E88F
+96F9    E890
+96FA    E891
+96FB    E892
+96FD    E894
+96FE    E895
+9740    E896
+9741    E897
+9742    E898
+9743    E899
+9744    E89A
+9745    E89B
+9746    E89C
+9747    E89D
+9748    E89E
+9749    E89F
+974A    E8A0
+974B    E8A1
+974C    E8A2
+974D    E8A3
+974E    E8A4
+974F    E8A5
+9750    E8A6
+9751    E8A7
+9752    E8A8
+9753    E8A9
+9754    E8AA
+9755    E8AB
+9756    E8AC
+9757    E8AD
+9758    E8AE
+9759    E8AF
+975A    E8B0
+975B    E8B1
+975C    E8B2
+975D    E8B3
+975E    E8B4
+975F    E8B5
+9760    E8B6
+9761    E8B7
+9762    E8B8
+9763    E8B9
+9764    E8BA
+9765    E8BB
+9766    E8BC
+9767    E8BD
+9768    E8BE
+9769    E8BF
+976A    E8C0
+976B    E8C1
+976C    E8C2
+976D    E8C3
+976E    E8C4
+976F    E8C5
+9770    E8C6
+9771    E8C7
+9772    E8C8
+9773    E8C9
+9774    E8CA
+9775    E8CB
+9776    E8CC
+9777    E8CD
+9778    E8CE
+9779    E8CF
+977A    E8D0
+977B    E8D1
+977C    E8D2
+977D    E8D3
+977E    E8D4
+97A1    E8D5
+97A2    E8D6
+97A3    E8D7
+97A4    E8D8
+97A5    E8D9
+97A6    E8DA
+97A7    E8DB
+97A8    E8DC
+97A9    E8DD
+97AA    E8DE
+97AB    E8DF
+97AC    E8E0
+97AD    E8E1
+97AE    E8E2
+97AF    E8E3
+97B0    E8E4
+97B1    E8E5
+97B2    E8E6
+97B3    E8E7
+97B4    E8E8
+97B5    E8E9
+97B6    E8EA
+97B7    E8EB
+97B8    E8EC
+97B9    E8ED
+97BA    E8EE
+97BB    E8EF
+97BC    E8F0
+97BD    E8F1
+97BE    E8F2
+97BF    E8F3
+97C0    E8F4
+97C1    E8F5
+97C2    E8F6
+97C3    E8F7
+97C4    E8F8
+97C5    E8F9
+97C6    E8FA
+97C7    E8FB
+97C8    E8FC
+97C9    E8FD
+97CA    E8FE
+97CB    E8FF
+97CC    E900
+97CD    E901
+97CE    E902
+97CF    E903
+97D0    E904
+97D1    E905
+97D2    E906
+97D3    E907
+97D4    E908
+97D5    E909
+97D6    E90A
+97D7    E90B
+97D8    E90C
+97D9    E90D
+97DA    E90E
+97DB    E90F
+97DC    E910
+97DD    E911
+97DE    E912
+97DF    E913
+97E0    E914
+97E1    E915
+97E2    E916
+97E3    E917
+97E4    E918
+97E5    E919
+97E6    E91A
+97E7    E91B
+97E8    E91C
+97E9    E91D
+97EA    E91E
+97EB    E91F
+97EC    E920
+97ED    E921
+97EE    E922
+97EF    E923
+97F0    E924
+97F1    E925
+97F2    E926
+97F3    E927
+97F4    E928
+97F5    E929
+97F6    E92A
+97F7    E92B
+97F8    E92C
+97F9    E92D
+97FA    E92E
+97FB    E92F
+97FC    E930
+97FD    E931
+97FE    E932
+9840    E933
+9841    E934
+9842    E935
+9843    E936
+9844    E937
+9845    E938
+9846    E939
+9847    E93A
+9848    E93B
+9849    E93C
+984A    E93D
+984B    E93E
+984C    E93F
+984D    E940
+984E    E941
+984F    E942
+9850    E943
+9851    E944
+9852    E945
+9853    E946
+9854    E947
+9855    E948
+9856    E949
+9857    E94A
+9858    E94B
+9859    E94C
+985A    E94D
+985B    E94E
+985C    E94F
+985D    E950
+985E    E951
+985F    E952
+9860    E953
+9861    E954
+9862    E955
+9863    E956
+9864    E957
+9865    E958
+9866    E959
+9867    E95A
+9868    E95B
+9869    E95C
+986A    E95D
+986B    E95E
+986C    E95F
+986D    E960
+986E    E961
+986F    E962
+9870    E963
+9871    E964
+9872    E965
+9873    E966
+9874    E967
+9875    E968
+9876    E969
+9877    E96A
+9878    E96B
+9879    E96C
+987A    E96D
+987B    E96E
+987C    E96F
+987D    E970
+987E    E971
+98A1    E972
+98A2    E973
+98A3    E974
+98A4    E975
+98A5    E976
+98A6    E977
+98A7    E978
+98A8    E979
+98A9    E97A
+98AA    E97B
+98AB    E97C
+98AC    E97D
+98AD    E97E
+98AE    E97F
+98AF    E980
+98B0    E981
+98B1    E982
+98B2    E983
+98B3    E984
+98B4    E985
+98B5    E986
+98B6    E987
+98B7    E988
+98B8    E989
+98B9    E98A
+98BA    E98B
+98BB    E98C
+98BC    E98D
+98BD    E98E
+98BE    E98F
+98BF    E990
+98C0    E991
+98C1    E992
+98C2    E993
+98C3    E994
+98C4    E995
+98C5    E996
+98C6    E997
+98C7    E998
+98C8    E999
+98C9    E99A
+98CA    E99B
+98CB    E99C
+98CC    E99D
+98CD    E99E
+98CE    E99F
+98CF    E9A0
+98D0    E9A1
+98D1    E9A2
+98D2    E9A3
+98D3    E9A4
+98D4    E9A5
+98D5    E9A6
+98D6    E9A7
+98D7    E9A8
+98D8    E9A9
+98D9    E9AA
+98DA    E9AB
+98DB    E9AC
+98DC    E9AD
+98DD    E9AE
+98DE    E9AF
+98DF    E9B0
+98E0    E9B1
+98E1    E9B2
+98E2    E9B3
+98E3    E9B4
+98E4    E9B5
+98E5    E9B6
+98E6    E9B7
+98E7    E9B8
+98E8    E9B9
+98E9    E9BA
+98EA    E9BB
+98EB    E9BC
+98EC    E9BD
+98ED    E9BE
+98EE    E9BF
+98EF    E9C0
+98F0    E9C1
+98F1    E9C2
+98F2    E9C3
+98F3    E9C4
+98F4    E9C5
+98F5    E9C6
+98F6    E9C7
+98F7    E9C8
+98F8    E9C9
+98F9    E9CA
+98FA    E9CB
+98FB    E9CC
+98FC    E9CD
+98FD    E9CE
+98FE    E9CF
+9940    E9D0
+9941    E9D1
+9942    E9D2
+9943    E9D3
+9944    E9D4
+9945    E9D5
+9946    E9D6
+9947    E9D7
+9948    E9D8
+9949    E9D9
+994A    E9DA
+994B    E9DB
+994C    E9DC
+994D    E9DD
+994E    E9DE
+994F    E9DF
+9950    E9E0
+9951    E9E1
+9952    E9E2
+9953    E9E3
+9954    E9E4
+9955    E9E5
+9956    E9E6
+9957    E9E7
+9958    E9E8
+9959    E9E9
+995A    E9EA
+995B    E9EB
+995C    E9EC
+995D    E9ED
+995E    E9EE
+995F    E9EF
+9960    E9F0
+9961    E9F1
+9962    E9F2
+9963    E9F3
+9964    E9F4
+9965    E9F5
+9966    E9F6
+9967    E9F7
+9968    E9F8
+9969    E9F9
+996A    E9FA
+996B    E9FB
+996C    E9FC
+996D    E9FD
+996E    E9FE
+996F    E9FF
+9970    EA00
+9971    EA01
+9972    EA02
+9973    EA03
+9974    EA04
+9975    EA05
+9976    EA06
+9977    EA07
+9978    EA08
+9979    EA09
+997A    EA0A
+997B    EA0B
+997C    EA0C
+997D    EA0D
+997E    EA0E
+99A1    EA0F
+99A2    EA10
+99A3    EA11
+99A4    EA12
+99A5    EA13
+99A6    EA14
+99A7    EA15
+99A8    EA16
+99A9    EA17
+99AA    EA18
+99AB    EA19
+99AC    EA1A
+99AD    EA1B
+99AE    EA1C
+99AF    EA1D
+99B0    EA1E
+99B1    EA1F
+99B2    EA20
+99B3    EA21
+99B4    EA22
+99B5    EA23
+99B6    EA24
+99B7    EA25
+99B8    EA26
+99B9    EA27
+99BA    EA28
+99BB    EA29
+99BC    EA2A
+99BD    EA2B
+99BE    EA2C
+99BF    EA2D
+99C0    EA2E
+99C1    EA2F
+99C2    EA30
+99C3    EA31
+99C4    EA32
+99C5    EA33
+99C6    EA34
+99C7    EA35
+99C8    EA36
+99C9    EA37
+99CA    EA38
+99CB    EA39
+99CC    EA3A
+99CD    EA3B
+99CE    EA3C
+99CF    EA3D
+99D0    EA3E
+99D1    EA3F
+99D2    EA40
+99D3    EA41
+99D4    EA42
+99D5    EA43
+99D6    EA44
+99D7    EA45
+99D8    EA46
+99D9    EA47
+99DA    EA48
+99DB    EA49
+99DC    EA4A
+99DD    EA4B
+99DE    EA4C
+99DF    EA4D
+99E0    EA4E
+99E1    EA4F
+99E2    EA50
+99E3    EA51
+99E4    EA52
+99E5    EA53
+99E6    EA54
+99E7    EA55
+99E8    EA56
+99E9    EA57
+99EA    EA58
+99EB    EA59
+99EC    EA5A
+99ED    EA5B
+99EE    EA5C
+99EF    EA5D
+99F0    EA5E
+99F1    EA5F
+99F2    EA60
+99F3    EA61
+99F4    EA62
+99F5    EA63
+99F6    EA64
+99F7    EA65
+99F8    EA66
+99F9    EA67
+99FA    EA68
+99FB    EA69
+99FC    EA6A
+99FD    EA6B
+99FE    EA6C
+9A40    EA6D
+9A41    EA6E
+9A42    EA6F
+9A43    EA70
+9A44    EA71
+9A45    EA72
+9A46    EA73
+9A47    EA74
+9A48    EA75
+9A49    EA76
+9A4A    EA77
+9A4B    EA78
+9A4C    EA79
+9A4D    EA7A
+9A4E    EA7B
+9A4F    EA7C
+9A50    EA7D
+9A51    EA7E
+9A52    EA7F
+9A53    EA80
+9A54    EA81
+9A55    EA82
+9A56    EA83
+9A57    EA84
+9A58    EA85
+9A59    EA86
+9A5A    EA87
+9A5B    EA88
+9A5C    EA89
+9A5D    EA8A
+9A5E    EA8B
+9A5F    EA8C
+9A60    EA8D
+9A61    EA8E
+9A62    EA8F
+9A63    EA90
+9A64    EA91
+9A65    EA92
+9A66    EA93
+9A67    EA94
+9A68    EA95
+9A69    EA96
+9A6A    EA97
+9A6B    EA98
+9A6C    EA99
+9A6D    EA9A
+9A6E    EA9B
+9A6F    EA9C
+9A70    EA9D
+9A71    EA9E
+9A72    EA9F
+9A73    EAA0
+9A74    EAA1
+9A75    EAA2
+9A76    EAA3
+9A77    EAA4
+9A78    EAA5
+9A79    EAA6
+9A7A    EAA7
+9A7B    EAA8
+9A7C    EAA9
+9A7D    EAAA
+9A7E    EAAB
+9AA1    EAAC
+9AA2    EAAD
+9AA3    EAAE
+9AA4    EAAF
+9AA5    EAB0
+9AA6    EAB1
+9AA7    EAB2
+9AA8    EAB3
+9AA9    EAB4
+9AAA    EAB5
+9AAB    EAB6
+9AAC    EAB7
+9AAD    EAB8
+9AAE    EAB9
+9AAF    EABA
+9AB0    EABB
+9AB1    EABC
+9AB2    EABD
+9AB3    EABE
+9AB4    EABF
+9AB5    EAC0
+9AB6    EAC1
+9AB7    EAC2
+9AB8    EAC3
+9AB9    EAC4
+9ABA    EAC5
+9ABB    EAC6
+9ABC    EAC7
+9ABD    EAC8
+9ABE    EAC9
+9ABF    EACA
+9AC0    EACB
+9AC1    EACC
+9AC2    EACD
+9AC3    EACE
+9AC4    EACF
+9AC5    EAD0
+9AC6    EAD1
+9AC7    EAD2
+9AC8    EAD3
+9AC9    EAD4
+9ACA    EAD5
+9ACB    EAD6
+9ACC    EAD7
+9ACD    EAD8
+9ACE    EAD9
+9ACF    EADA
+9AD0    EADB
+9AD1    EADC
+9AD2    EADD
+9AD3    EADE
+9AD4    EADF
+9AD5    EAE0
+9AD6    EAE1
+9AD7    EAE2
+9AD8    EAE3
+9AD9    EAE4
+9ADA    EAE5
+9ADB    EAE6
+9ADC    EAE7
+9ADD    EAE8
+9ADE    EAE9
+9ADF    EAEA
+9AE0    EAEB
+9AE1    EAEC
+9AE2    EAED
+9AE3    EAEE
+9AE4    EAEF
+9AE5    EAF0
+9AE6    EAF1
+9AE7    EAF2
+9AE8    EAF3
+9AE9    EAF4
+9AEA    EAF5
+9AEB    EAF6
+9AEC    EAF7
+9AED    EAF8
+9AEE    EAF9
+9AEF    EAFA
+9AF0    EAFB
+9AF1    EAFC
+9AF2    EAFD
+9AF3    EAFE
+9AF4    EAFF
+9AF5    EB00
+9AF6    EB01
+9AF7    EB02
+9AF8    EB03
+9AF9    EB04
+9AFA    EB05
+9AFB    EB06
+9AFC    EB07
+9AFD    EB08
+9AFE    EB09
+9B40    EB0A
+9B41    EB0B
+9B42    EB0C
+9B43    EB0D
+9B44    EB0E
+9B45    EB0F
+9B46    EB10
+9B47    EB11
+9B48    EB12
+9B49    EB13
+9B4A    EB14
+9B4B    EB15
+9B4C    EB16
+9B4D    EB17
+9B4E    EB18
+9B4F    EB19
+9B50    EB1A
+9B51    EB1B
+9B52    EB1C
+9B53    EB1D
+9B54    EB1E
+9B55    EB1F
+9B56    EB20
+9B57    EB21
+9B58    EB22
+9B59    EB23
+9B5A    EB24
+9B5B    EB25
+9B5C    EB26
+9B5D    EB27
+9B5E    EB28
+9B5F    EB29
+9B60    EB2A
+9B62    EB2C
+9B63    EB2D
+9B64    EB2E
+9B65    EB2F
+9B66    EB30
+9B67    EB31
+9B68    EB32
+9B69    EB33
+9B6A    EB34
+9B6B    EB35
+9B6C    EB36
+9B6D    EB37
+9B6E    EB38
+9B6F    EB39
+9B70    EB3A
+9B71    EB3B
+9B72    EB3C
+9B73    EB3D
+9B74    EB3E
+9B75    EB3F
+9B77    EB41
+9B79    EB43
+9B7A    EB44
+9B7C    EB46
+9B7D    EB47
+9B7E    EB48
+9BA1    EB49
+9BA2    EB4A
+9BA3    EB4B
+9BA4    EB4C
+9BA5    EB4D
+9BA6    EB4E
+9BA7    EB4F
+9BA8    EB50
+9BA9    EB51
+9BAA    EB52
+9BAB    EB53
+9BAC    EB54
+9BAD    EB55
+9BAE    EB56
+9BAF    EB57
+9BB0    EB58
+9BB1    EB59
+9BB2    EB5A
+9BB3    EB5B
+9BB4    EB5C
+9BB5    EB5D
+9BB6    EB5E
+9BB7    EB5F
+9BB8    EB60
+9BB9    EB61
+9BBA    EB62
+9BBB    EB63
+9BBC    EB64
+9BBD    EB65
+9BBE    EB66
+9BBF    EB67
+9BC0    EB68
+9BC1    EB69
+9BC2    EB6A
+9BC3    EB6B
+9BC4    EB6C
+9BC5    EB6D
+9BC7    EB6F
+9BC8    EB70
+9BC9    EB71
+9BCA    EB72
+9BCB    EB73
+9BCC    EB74
+9BCD    EB75
+9BCE    EB76
+9BCF    EB77
+9BD0    EB78
+9BD1    EB79
+9BD2    EB7A
+9BD3    EB7B
+9BD4    EB7C
+9BD5    EB7D
+9BD6    EB7E
+9BD7    EB7F
+9BD8    EB80
+9BD9    EB81
+9BDA    EB82
+9BDB    EB83
+9BDC    EB84
+9BDD    EB85
+9BDF    EB87
+9BE0    EB88
+9BE1    EB89
+9BE2    EB8A
+9BE3    EB8B
+9BE4    EB8C
+9BE5    EB8D
+9BE6    EB8E
+9BE7    EB8F
+9BE8    EB90
+9BE9    EB91
+9BEA    EB92
+9BEB    EB93
+9BED    EB95
+9BEE    EB96
+9BEF    EB97
+9BF0    EB98
+9BF1    EB99
+9BF2    EB9A
+9BF3    EB9B
+9BF4    EB9C
+9BF5    EB9D
+9BF7    EB9F
+9BF8    EBA0
+9BF9    EBA1
+9BFA    EBA2
+9BFB    EBA3
+9BFC    EBA4
+9BFD    EBA5
+9BFE    EBA6
+9C40    EBA7
+9C41    EBA8
+9C43    EBAA
+9C44    EBAB
+9C45    EBAC
+9C46    EBAD
+9C47    EBAE
+9C48    EBAF
+9C49    EBB0
+9C4A    EBB1
+9C4B    EBB2
+9C4C    EBB3
+9C4D    EBB4
+9C4E    EBB5
+9C4F    EBB6
+9C50    EBB7
+9C51    EBB8
+9C52    EBB9
+9C54    EBBB
+9C55    EBBC
+9C56    EBBD
+9C57    EBBE
+9C58    EBBF
+9C59    EBC0
+9C5A    EBC1
+9C5B    EBC2
+9C5C    EBC3
+9C5D    EBC4
+9C5E    EBC5
+9C5F    EBC6
+9C60    EBC7
+9C61    EBC8
+9C63    EBCA
+9C64    EBCB
+9C65    EBCC
+9C66    EBCD
+9C67    EBCE
+9C69    EBD0
+9C6A    EBD1
+9C6C    EBD3
+9C6D    EBD4
+9C6E    EBD5
+9C6F    EBD6
+9C70    EBD7
+9C71    EBD8
+9C72    EBD9
+9C73    EBDA
+9C74    EBDB
+9C75    EBDC
+9C76    EBDD
+9C78    EBDF
+9C79    EBE0
+9C7A    EBE1
+9C7B    EBE2
+9C7C    EBE3
+9C7D    EBE4
+9C7E    EBE5
+9CA1    EBE6
+9CA2    EBE7
+9CA3    EBE8
+9CA4    EBE9
+9CA5    EBEA
+9CA6    EBEB
+9CA7    EBEC
+9CA8    EBED
+9CA9    EBEE
+9CAA    EBEF
+9CAB    EBF0
+9CAC    EBF1
+9CAD    EBF2
+9CAE    EBF3
+9CAF    EBF4
+9CB0    EBF5
+9CB1    EBF6
+9CB2    EBF7
+9CB3    EBF8
+9CB4    EBF9
+9CB5    EBFA
+9CB6    EBFB
+9CB7    EBFC
+9CB8    EBFD
+9CB9    EBFE
+9CBA    EBFF
+9CBB    EC00
+9CBE    EC03
+9CBF    EC04
+9CC0    EC05
+9CC1    EC06
+9CC2    EC07
+9CC3    EC08
+9CC4    EC09
+9CC5    EC0A
+9CC6    EC0B
+9CC7    EC0C
+9CC8    EC0D
+9CC9    EC0E
+9CCA    EC0F
+9CCB    EC10
+9CCC    EC11
+9CCD    EC12
+9CCE    EC13
+9CCF    EC14
+9CD1    EC16
+9CD2    EC17
+9CD3    EC18
+9CD4    EC19
+9CD5    EC1A
+9CD6    EC1B
+9CD7    EC1C
+9CD8    EC1D
+9CD9    EC1E
+9CDA    EC1F
+9CDB    EC20
+9CDC    EC21
+9CDD    EC22
+9CDE    EC23
+9CDF    EC24
+9CE0    EC25
+9CE1    EC26
+9CE2    EC27
+9CE3    EC28
+9CE4    EC29
+9CE5    EC2A
+9CE6    EC2B
+9CE7    EC2C
+9CE8    EC2D
+9CE9    EC2E
+9CEA    EC2F
+9CEB    EC30
+9CEC    EC31
+9CED    EC32
+9CEE    EC33
+9CEF    EC34
+9CF0    EC35
+9CF1    EC36
+9CF2    EC37
+9CF3    EC38
+9CF4    EC39
+9CF5    EC3A
+9CF6    EC3B
+9CF7    EC3C
+9CF8    EC3D
+9CF9    EC3E
+9CFA    EC3F
+9CFB    EC40
+9CFC    EC41
+9CFD    EC42
+9CFE    EC43
+9D40    EC44
+9D41    EC45
+9D42    EC46
+9D43    EC47
+9D44    EC48
+9D45    EC49
+9D46    EC4A
+9D47    EC4B
+9D48    EC4C
+9D49    EC4D
+9D4A    EC4E
+9D4B    EC4F
+9D4C    EC50
+9D4D    EC51
+9D4E    EC52
+9D4F    EC53
+9D50    EC54
+9D51    EC55
+9D52    EC56
+9D53    EC57
+9D54    EC58
+9D55    EC59
+9D56    EC5A
+9D58    EC5C
+9D59    EC5D
+9D5B    EC5F
+9D5C    EC60
+9D5D    EC61
+9D5E    EC62
+9D5F    EC63
+9D60    EC64
+9D61    EC65
+9D62    EC66
+9D63    EC67
+9D64    EC68
+9D65    EC69
+9D66    EC6A
+9D67    EC6B
+9D68    EC6C
+9D69    EC6D
+9D6A    EC6E
+9D6B    EC6F
+9D6C    EC70
+9D6D    EC71
+9D6E    EC72
+9D6F    EC73
+9D70    EC74
+9D71    EC75
+9D72    EC76
+9D73    EC77
+9D74    EC78
+9D75    EC79
+9D76    EC7A
+9D77    EC7B
+9D78    EC7C
+9D79    EC7D
+9D7A    EC7E
+9D7B    EC7F
+9D7C    EC80
+9D7D    EC81
+9D7E    EC82
+9DA1    EC83
+9DA2    EC84
+9DA3    EC85
+9DA4    EC86
+9DA5    EC87
+9DA6    EC88
+9DA7    EC89
+9DA8    EC8A
+9DA9    EC8B
+9DAA    EC8C
+9DAB    EC8D
+9DAC    EC8E
+9DAD    EC8F
+9DAE    EC90
+9DAF    EC91
+9DB0    EC92
+9DB1    EC93
+9DB2    EC94
+9DB3    EC95
+9DB4    EC96
+9DB5    EC97
+9DB6    EC98
+9DB7    EC99
+9DB8    EC9A
+9DB9    EC9B
+9DBA    EC9C
+9DBB    EC9D
+9DBC    EC9E
+9DBD    EC9F
+9DBE    ECA0
+9DBF    ECA1
+9DC0    ECA2
+9DC1    ECA3
+9DC2    ECA4
+9DC3    ECA5
+9DC5    ECA7
+9DC6    ECA8
+9DC7    ECA9
+9DC8    ECAA
+9DC9    ECAB
+9DCA    ECAC
+9DCB    ECAD
+9DCC    ECAE
+9DCD    ECAF
+9DCE    ECB0
+9DCF    ECB1
+9DD0    ECB2
+9DD1    ECB3
+9DD2    ECB4
+9DD3    ECB5
+9DD4    ECB6
+9DD5    ECB7
+9DD6    ECB8
+9DD7    ECB9
+9DD8    ECBA
+9DD9    ECBB
+9DDA    ECBC
+9DDB    ECBD
+9DDC    ECBE
+9DDD    ECBF
+9DDE    ECC0
+9DDF    ECC1
+9DE0    ECC2
+9DE1    ECC3
+9DE2    ECC4
+9DE3    ECC5
+9DE4    ECC6
+9DE5    ECC7
+9DE6    ECC8
+9DE7    ECC9
+9DE8    ECCA
+9DE9    ECCB
+9DEA    ECCC
+9DEB    ECCD
+9DEC    ECCE
+9DED    ECCF
+9DEE    ECD0
+9DEF    ECD1
+9DF0    ECD2
+9DF1    ECD3
+9DF2    ECD4
+9DF3    ECD5
+9DF4    ECD6
+9DF5    ECD7
+9DF6    ECD8
+9DF7    ECD9
+9DF8    ECDA
+9DF9    ECDB
+9DFA    ECDC
+9DFB    ECDD
+9DFC    ECDE
+9DFD    ECDF
+9DFE    ECE0
+9E40    ECE1
+9E41    ECE2
+9E42    ECE3
+9E43    ECE4
+9E44    ECE5
+9E45    ECE6
+9E46    ECE7
+9E47    ECE8
+9E48    ECE9
+9E49    ECEA
+9E4A    ECEB
+9E4B    ECEC
+9E4C    ECED
+9E4D    ECEE
+9E4E    ECEF
+9E4F    ECF0
+9E50    ECF1
+9E51    ECF2
+9E52    ECF3
+9E53    ECF4
+9E54    ECF5
+9E55    ECF6
+9E56    ECF7
+9E57    ECF8
+9E58    ECF9
+9E59    ECFA
+9E5A    ECFB
+9E5B    ECFC
+9E5C    ECFD
+9E5D    ECFE
+9E5E    ECFF
+9E5F    ED00
+9E60    ED01
+9E61    ED02
+9E62    ED03
+9E63    ED04
+9E64    ED05
+9E65    ED06
+9E66    ED07
+9E67    ED08
+9E68    ED09
+9E69    ED0A
+9E6A    ED0B
+9E6B    ED0C
+9E6C    ED0D
+9E6D    ED0E
+9E6E    ED0F
+9E6F    ED10
+9E70    ED11
+9E71    ED12
+9E72    ED13
+9E73    ED14
+9E74    ED15
+9E75    ED16
+9E76    ED17
+9E77    ED18
+9E78    ED19
+9E79    ED1A
+9E7A    ED1B
+9E7B    ED1C
+9E7C    ED1D
+9E7D    ED1E
+9E7E    ED1F
+9EA1    ED20
+9EA2    ED21
+9EA3    ED22
+9EA4    ED23
+9EA5    ED24
+9EA6    ED25
+9EA7    ED26
+9EA8    ED27
+9EAA    ED29
+9EAB    ED2A
+9EAD    ED2C
+9EAE    ED2D
+9EAF    ED2E
+9EB0    ED2F
+9EB1    ED30
+9EB2    ED31
+9EB3    ED32
+9EB4    ED33
+9EB5    ED34
+9EB6    ED35
+9EB7    ED36
+9EB8    ED37
+9EB9    ED38
+9EBA    ED39
+9EBB    ED3A
+9EBC    ED3B
+9EBD    ED3C
+9EBE    ED3D
+9EBF    ED3E
+9EC0    ED3F
+9EC1    ED40
+9EC2    ED41
+9EC3    ED42
+9EC5    ED44
+9EC6    ED45
+9EC7    ED46
+9EC8    ED47
+9EC9    ED48
+9ECA    ED49
+9ECB    ED4A
+9ECC    ED4B
+9ECD    ED4C
+9ECE    ED4D
+9ECF    ED4E
+9ED0    ED4F
+9ED1    ED50
+9ED2    ED51
+9ED3    ED52
+9ED4    ED53
+9ED5    ED54
+9ED6    ED55
+9ED7    ED56
+9ED8    ED57
+9ED9    ED58
+9EDA    ED59
+9EDB    ED5A
+9EDC    ED5B
+9EDD    ED5C
+9EDE    ED5D
+9EDF    ED5E
+9EE0    ED5F
+9EE1    ED60
+9EE2    ED61
+9EE3    ED62
+9EE4    ED63
+9EE5    ED64
+9EE6    ED65
+9EE7    ED66
+9EE8    ED67
+9EE9    ED68
+9EEA    ED69
+9EEB    ED6A
+9EEC    ED6B
+9EED    ED6C
+9EEE    ED6D
+9EF0    ED6F
+9EF1    ED70
+9EF2    ED71
+9EF3    ED72
+9EF5    ED74
+9EF6    ED75
+9EF7    ED76
+9EF8    ED77
+9EF9    ED78
+9EFA    ED79
+9EFB    ED7A
+9EFC    ED7B
+9EFE    ED7D
+9F40    ED7E
+9F41    ED7F
+9F42    ED80
+9F43    ED81
+9F44    ED82
+9F45    ED83
+9F46    ED84
+9F47    ED85
+9F48    ED86
+9F49    ED87
+9F4A    ED88
+9F4B    ED89
+9F4C    ED8A
+9F4D    ED8B
+9F4F    ED8D
+9F50    ED8E
+9F51    ED8F
+9F52    ED90
+9F53    ED91
+9F54    ED92
+9F55    ED93
+9F56    ED94
+9F57    ED95
+9F58    ED96
+9F59    ED97
+9F5A    ED98
+9F5B    ED99
+9F5C    ED9A
+9F5D    ED9B
+9F5E    ED9C
+9F5F    ED9D
+9F61    ED9F
+9F62    EDA0
+9F63    EDA1
+9F64    EDA2
+9F65    EDA3
+9F67    EDA5
+9F68    EDA6
+9F69    EDA7
+9F6A    EDA8
+9F6B    EDA9
+9F6C    EDAA
+9F6D    EDAB
+9F6E    EDAC
+9F6F    EDAD
+9F70    EDAE
+9F71    EDAF
+9F72    EDB0
+9F73    EDB1
+9F74    EDB2
+9F75    EDB3
+9F76    EDB4
+9F77    EDB5
+9F78    EDB6
+9F79    EDB7
+9F7A    EDB8
+9F7B    EDB9
+9F7C    EDBA
+9F7D    EDBB
+9F7E    EDBC
+9FA1    EDBD
+9FA2    EDBE
+9FA3    EDBF
+9FA4    EDC0
+9FA5    EDC1
+9FA6    EDC2
+9FA7    EDC3
+9FA8    EDC4
+9FA9    EDC5
+9FAA    EDC6
+9FAB    EDC7
+9FAC    EDC8
+9FAE    EDCA
+9FAF    EDCB
+9FB0    EDCC
+9FB2    EDCE
+9FB3    EDCF
+9FB4    EDD0
+9FB5    EDD1
+9FB6    EDD2
+9FB7    EDD3
+9FB8    EDD4
+9FB9    EDD5
+9FBA    EDD6
+9FBB    EDD7
+9FBC    EDD8
+9FBD    EDD9
+9FBE    EDDA
+9FBF    EDDB
+9FC1    EDDD
+9FC2    EDDE
+9FC3    EDDF
+9FC4    EDE0
+9FC5    EDE1
+9FC6    EDE2
+9FC7    EDE3
+9FC9    EDE5
+9FCA    EDE6
+9FCC    EDE8
+9FCD    EDE9
+9FCE    EDEA
+9FCF    EDEB
+9FD0    EDEC
+9FD1    EDED
+9FD2    EDEE
+9FD3    EDEF
+9FD4    EDF0
+9FD5    EDF1
+9FD6    EDF2
+9FD7    EDF3
+9FD9    EDF5
+9FDB    EDF7
+9FDC    EDF8
+9FDD    EDF9
+9FDE    EDFA
+9FDF    EDFB
+9FE0    EDFC
+9FE1    EDFD
+9FE2    EDFE
+9FE3    EDFF
+9FE4    EE00
+9FE5    EE01
+9FE7    EE03
+9FE8    EE04
+9FE9    EE05
+9FEB    EE07
+9FEC    EE08
+9FED    EE09
+9FEE    EE0A
+9FF0    EE0C
+9FF1    EE0D
+9FF2    EE0E
+9FF3    EE0F
+9FF4    EE10
+9FF5    EE11
+9FF6    EE12
+9FF7    EE13
+9FF8    EE14
+9FF9    EE15
+9FFA    EE16
+9FFB    EE17
+9FFC    EE18
+9FFD    EE19
+9FFE    EE1A
+A040    EE1B
+A041    EE1C
+A042    EE1D
+A043    EE1E
+A044    EE1F
+A045    EE20
+A046    EE21
+A047    EE22
+A048    EE23
+A049    EE24
+A04A    EE25
+A04B    EE26
+A04C    EE27
+A04D    EE28
+A04E    EE29
+A04F    EE2A
+A050    EE2B
+A051    EE2C
+A052    EE2D
+A053    EE2E
+A055    EE30
+A056    EE31
+A058    EE33
+A059    EE34
+A05B    EE36
+A05C    EE37
+A05D    EE38
+A05E    EE39
+A05F    EE3A
+A060    EE3B
+A061    EE3C
+A064    EE3F
+A065    EE40
+A066    EE41
+A067    EE42
+A068    EE43
+A069    EE44
+A06A    EE45
+A06B    EE46
+A06C    EE47
+A06D    EE48
+A06E    EE49
+A06F    EE4A
+A070    EE4B
+A071    EE4C
+A073    EE4E
+A074    EE4F
+A075    EE50
+A076    EE51
+A078    EE53
+A079    EE54
+A07A    EE55
+A07B    EE56
+A07C    EE57
+A07D    EE58
+A07E    EE59
+A0A1    EE5A
+A0A2    EE5B
+A0A3    EE5C
+A0A4    EE5D
+A0A6    EE5F
+A0A7    EE60
+A0A8    EE61
+A0A9    EE62
+A0AA    EE63
+A0AB    EE64
+A0AC    EE65
+A0AE    EE67
+A0B0    EE69
+A0B1    EE6A
+A0B2    EE6B
+A0B3    EE6C
+A0B4    EE6D
+A0B5    EE6E
+A0B6    EE6F
+A0B7    EE70
+A0B8    EE71
+A0B9    EE72
+A0BA    EE73
+A0BB    EE74
+A0BC    EE75
+A0BD    EE76
+A0BE    EE77
+A0BF    EE78
+A0C0    EE79
+A0C1    EE7A
+A0C2    EE7B
+A0C3    EE7C
+A0C4    EE7D
+A0C5    EE7E
+A0C6    EE7F
+A0C7    EE80
+A0C8    EE81
+A0C9    EE82
+A0CA    EE83
+A0CB    EE84
+A0CC    EE85
+A0CD    EE86
+A0CE    EE87
+A0CF    EE88
+A0D0    EE89
+A0D1    EE8A
+A0D2    EE8B
+A0D4    EE8D
+A0D6    EE8F
+A0D7    EE90
+A0D8    EE91
+A0D9    EE92
+A0DA    EE93
+A0DB    EE94
+A0DC    EE95
+A0DD    EE96
+A0DE    EE97
+A0E0    EE99
+A0E2    EE9B
+A0E3    EE9C
+A0E5    EE9E
+A0E6    EE9F
+A0E7    EEA0
+A0E8    EEA1
+A0E9    EEA2
+A0EA    EEA3
+A0EB    EEA4
+A0EC    EEA5
+A0ED    EEA6
+A0EE    EEA7
+A0EF    EEA8
+A0F0    EEA9
+A0F1    EEAA
+A0F2    EEAB
+A0F3    EEAC
+A0F4    EEAD
+A0F5    EEAE
+A0F6    EEAF
+A0F7    EEB0
+A0F8    EEB1
+A0F9    EEB2
+A0FA    EEB3
+A0FB    EEB4
+A0FC    EEB5
+A0FD    EEB6
+A0FE    EEB7
+C6A1    F6B1
+C6A2    F6B2
+C6A3    F6B3
+C6A4    F6B4
+C6A5    F6B5
+C6A6    F6B6
+C6A7    F6B7
+C6A8    F6B8
+C6A9    F6B9
+C6AA    F6BA
+C6AB    F6BB
+C6AC    F6BC
+C6AD    F6BD
+C6AE    F6BE
+C6AF    F6BF
+C6B0    F6C0
+C6B1    F6C1
+C6B2    F6C2
+C6B3    F6C3
+C6B4    F6C4
+C6B5    F6C5
+C6B6    F6C6
+C6B7    F6C7
+C6B8    F6C8
+C6B9    F6C9
+C6BA    F6CA
+C6BB    F6CB
+C6BC    F6CC
+C6BD    F6CD
+C6BE    F6CE
+C6BF    F6CF
+C6C0    F6D0
+C6C1    F6D1
+C6C2    F6D2
+C6C3    F6D3
+C6C4    F6D4
+C6C5    F6D5
+C6C6    F6D6
+C6C7    F6D7
+C6C8    F6D8
+C6C9    F6D9
+C6CA    F6DA
+C6CB    F6DB
+C6CC    F6DC
+C6CD    F6DD
+C6CE    F6DE
+C6D0    F6E0
+C6D1    F6E1
+C6D2    F6E2
+C6D4    F6E4
+C6D6    F6E6
+C6D8    F6E8
+C6D9    F6E9
+C6DA    F6EA
+C6DB    F6EB
+C6DC    F6EC
+C6DD    F6ED
+C6E0    F6F0
+C6E1    F6F1
+C6E2    F6F2
+C6E3    F6F3
+C6E4    F6F4
+C6E5    F6F5
+C6E6    F6F6
+C6E7    F6F7
+C6E8    F6F8
+C6E9    F6F9
+C6EA    F6FA
+C6EB    F6FB
+C6EC    F6FC
+C6ED    F6FD
+C6EE    F6FE
+C6EF    F6FF
+C6F0    F700
+C6F1    F701
+C6F2    F702
+C6F3    F703
+C6F4    F704
+C6F5    F705
+C6F6    F706
+C6F7    F707
+C6F8    F708
+C6F9    F709
+C6FA    F70A
+C6FB    F70B
+C6FC    F70C
+C6FD    F70D
+C6FE    F70E
+C740    F70F
+C741    F710
+C742    F711
+C743    F712
+C744    F713
+C745    F714
+C746    F715
+C747    F716
+C748    F717
+C749    F718
+C74A    F719
+C74B    F71A
+C74C    F71B
+C74D    F71C
+C74E    F71D
+C74F    F71E
+C750    F71F
+C751    F720
+C752    F721
+C753    F722
+C754    F723
+C755    F724
+C756    F725
+C757    F726
+C758    F727
+C759    F728
+C75A    F729
+C75B    F72A
+C75C    F72B
+C75D    F72C
+C75E    F72D
+C75F    F72E
+C760    F72F
+C761    F730
+C762    F731
+C763    F732
+C764    F733
+C765    F734
+C766    F735
+C767    F736
+C768    F737
+C769    F738
+C76A    F739
+C76B    F73A
+C76C    F73B
+C76D    F73C
+C76E    F73D
+C76F    F73E
+C770    F73F
+C771    F740
+C772    F741
+C773    F742
+C774    F743
+C775    F744
+C776    F745
+C777    F746
+C778    F747
+C779    F748
+C77A    F749
+C77B    F74A
+C77C    F74B
+C77D    F74C
+C77E    F74D
+C7A1    F74E
+C7A2    F74F
+C7A3    F750
+C7A4    F751
+C7A5    F752
+C7A6    F753
+C7A7    F754
+C7A8    F755
+C7A9    F756
+C7AA    F757
+C7AB    F758
+C7AC    F759
+C7AD    F75A
+C7AE    F75B
+C7AF    F75C
+C7B0    F75D
+C7B1    F75E
+C7B2    F75F
+C7B3    F760
+C7B4    F761
+C7B5    F762
+C7B6    F763
+C7B7    F764
+C7B8    F765
+C7B9    F766
+C7BA    F767
+C7BB    F768
+C7BC    F769
+C7BD    F76A
+C7BE    F76B
+C7BF    F76C
+C7C0    F76D
+C7C1    F76E
+C7C2    F76F
+C7C3    F770
+C7C4    F771
+C7C5    F772
+C7C6    F773
+C7C7    F774
+C7C8    F775
+C7C9    F776
+C7CA    F777
+C7CB    F778
+C7CC    F779
+C7CD    F77A
+C7CE    F77B
+C7CF    F77C
+C7D0    F77D
+C7D1    F77E
+C7D2    F77F
+C7D3    F780
+C7D4    F781
+C7D5    F782
+C7D6    F783
+C7D7    F784
+C7D8    F785
+C7D9    F786
+C7DA    F787
+C7DB    F788
+C7DC    F789
+C7DD    F78A
+C7DE    F78B
+C7DF    F78C
+C7E0    F78D
+C7E1    F78E
+C7E2    F78F
+C7E3    F790
+C7E4    F791
+C7E5    F792
+C7E6    F793
+C7E7    F794
+C7E8    F795
+C7E9    F796
+C7EA    F797
+C7EB    F798
+C7EC    F799
+C7ED    F79A
+C7EE    F79B
+C7EF    F79C
+C7F0    F79D
+C7F1    F79E
+C7F2    F79F
+C7F3    F7A0
+C7F4    F7A1
+C7F5    F7A2
+C7F6    F7A3
+C7F7    F7A4
+C7F8    F7A5
+C7F9    F7A6
+C7FA    F7A7
+C7FB    F7A8
+C7FC    F7A9
+C7FD    F7AA
+C7FE    F7AB
+C840    F7AC
+C841    F7AD
+C842    F7AE
+C843    F7AF
+C844    F7B0
+C845    F7B1
+C846    F7B2
+C847    F7B3
+C848    F7B4
+C849    F7B5
+C84A    F7B6
+C84B    F7B7
+C84C    F7B8
+C84D    F7B9
+C84E    F7BA
+C84F    F7BB
+C850    F7BC
+C851    F7BD
+C852    F7BE
+C853    F7BF
+C854    F7C0
+C855    F7C1
+C856    F7C2
+C857    F7C3
+C858    F7C4
+C859    F7C5
+C85A    F7C6
+C85B    F7C7
+C85C    F7C8
+C85D    F7C9
+C85E    F7CA
+C85F    F7CB
+C860    F7CC
+C861    F7CD
+C862    F7CE
+C863    F7CF
+C864    F7D0
+C865    F7D1
+C866    F7D2
+C867    F7D3
+C868    F7D4
+C869    F7D5
+C86A    F7D6
+C86B    F7D7
+C86C    F7D8
+C86D    F7D9
+C86E    F7DA
+C86F    F7DB
+C870    F7DC
+C871    F7DD
+C872    F7DE
+C873    F7DF
+C874    F7E0
+C875    F7E1
+C876    F7E2
+C877    F7E3
+C878    F7E4
+C879    F7E5
+C87A    F7E6
+C87B    F7E7
+C87C    F7E8
+C87D    F7E9
+C87E    F7EA
+C8A1    F7EB
+C8A2    F7EC
+C8A3    F7ED
+C8A4    F7EE
+C8CD    F817
+C8CE    F818
+C8CF    F819
+C8D0    F81A
+C8D1    F81B
+C8D2    F81C
+C8D3    F81D
+C8D4    F81E
+C8D5    F81F
+C8D6    F820
+C8D7    F821
+C8D8    F822
+C8D9    F823
+C8DA    F824
+C8DB    F825
+C8DC    F826
+C8DD    F827
+C8DE    F828
+C8DF    F829
+C8E0    F82A
+C8E1    F82B
+C8E2    F82C
+C8E3    F82D
+C8E4    F82E
+C8E5    F82F
+C8E6    F830
+C8E7    F831
+C8E8    F832
+C8E9    F833
+C8EA    F834
+C8EB    F835
+C8EC    F836
+C8ED    F837
+C8EE    F838
+C8EF    F839
+C8F0    F83A
+C8F1    F83B
+C8F5    F83F
+C8F6    F840
+C8F7    F841
+C8F8    F842
+C8F9    F843
+C8FA    F844
+C8FB    F845
+C8FC    F846
+C8FD    F847
+C8FE    F848
+FA40    E000
+FA41    E001
+FA42    E002
+FA43    E003
+FA44    E004
+FA45    E005
+FA46    E006
+FA47    E007
+FA48    E008
+FA49    E009
+FA4A    E00A
+FA4B    E00B
+FA4C    E00C
+FA4D    E00D
+FA4E    E00E
+FA4F    E00F
+FA50    E010
+FA51    E011
+FA52    E012
+FA53    E013
+FA54    E014
+FA55    E015
+FA56    E016
+FA57    E017
+FA58    E018
+FA59    E019
+FA5A    E01A
+FA5B    E01B
+FA5C    E01C
+FA5D    E01D
+FA5E    E01E
+FA60    E020
+FA61    E021
+FA62    E022
+FA63    E023
+FA64    E024
+FA65    E025
+FA67    E027
+FA68    E028
+FA69    E029
+FA6A    E02A
+FA6B    E02B
+FA6C    E02C
+FA6D    E02D
+FA6E    E02E
+FA6F    E02F
+FA70    E030
+FA71    E031
+FA72    E032
+FA73    E033
+FA74    E034
+FA75    E035
+FA76    E036
+FA77    E037
+FA78    E038
+FA79    E039
+FA7A    E03A
+FA7B    E03B
+FA7C    E03C
+FA7D    E03D
+FA7E    E03E
+FAA1    E03F
+FAA2    E040
+FAA3    E041
+FAA4    E042
+FAA5    E043
+FAA6    E044
+FAA7    E045
+FAA8    E046
+FAA9    E047
+FAAA    E048
+FAAB    E049
+FAAC    E04A
+FAAD    E04B
+FAAE    E04C
+FAAF    E04D
+FAB0    E04E
+FAB1    E04F
+FAB2    E050
+FAB3    E051
+FAB4    E052
+FAB5    E053
+FAB6    E054
+FAB7    E055
+FAB8    E056
+FAB9    E057
+FABA    E058
+FABB    E059
+FABC    E05A
+FABE    E05C
+FABF    E05D
+FAC0    E05E
+FAC1    E05F
+FAC2    E060
+FAC3    E061
+FAC4    E062
+FAC6    E064
+FAC7    E065
+FAC8    E066
+FAC9    E067
+FACA    E068
+FACB    E069
+FACC    E06A
+FACD    E06B
+FACE    E06C
+FACF    E06D
+FAD0    E06E
+FAD1    E06F
+FAD2    E070
+FAD3    E071
+FAD4    E072
+FAD6    E074
+FAD7    E075
+FAD8    E076
+FAD9    E077
+FADA    E078
+FADB    E079
+FADC    E07A
+FADD    E07B
+FADE    E07C
+FADF    E07D
+FAE0    E07E
+FAE1    E07F
+FAE2    E080
+FAE3    E081
+FAE4    E082
+FAE5    E083
+FAE6    E084
+FAE7    E085
+FAE8    E086
+FAE9    E087
+FAEA    E088
+FAEB    E089
+FAEC    E08A
+FAED    E08B
+FAEE    E08C
+FAEF    E08D
+FAF0    E08E
+FAF1    E08F
+FAF2    E090
+FAF3    E091
+FAF4    E092
+FAF5    E093
+FAF6    E094
+FAF7    E095
+FAF8    E096
+FAF9    E097
+FAFA    E098
+FAFB    E099
+FAFC    E09A
+FAFD    E09B
+FAFE    E09C
+FB40    E09D
+FB41    E09E
+FB42    E09F
+FB43    E0A0
+FB44    E0A1
+FB45    E0A2
+FB46    E0A3
+FB47    E0A4
+FB49    E0A6
+FB4A    E0A7
+FB4B    E0A8
+FB4C    E0A9
+FB4D    E0AA
+FB4E    E0AB
+FB4F    E0AC
+FB50    E0AD
+FB51    E0AE
+FB52    E0AF
+FB53    E0B0
+FB54    E0B1
+FB55    E0B2
+FB56    E0B3
+FB57    E0B4
+FB58    E0B5
+FB59    E0B6
+FB5A    E0B7
+FB5B    E0B8
+FB5C    E0B9
+FB5D    E0BA
+FB5E    E0BB
+FB5F    E0BC
+FB60    E0BD
+FB61    E0BE
+FB62    E0BF
+FB63    E0C0
+FB64    E0C1
+FB65    E0C2
+FB66    E0C3
+FB67    E0C4
+FB68    E0C5
+FB69    E0C6
+FB6A    E0C7
+FB6B    E0C8
+FB6C    E0C9
+FB6D    E0CA
+FB6E    E0CB
+FB6F    E0CC
+FB70    E0CD
+FB71    E0CE
+FB72    E0CF
+FB73    E0D0
+FB74    E0D1
+FB75    E0D2
+FB76    E0D3
+FB77    E0D4
+FB78    E0D5
+FB79    E0D6
+FB7A    E0D7
+FB7B    E0D8
+FB7C    E0D9
+FB7D    E0DA
+FB7E    E0DB
+FBA1    E0DC
+FBA2    E0DD
+FBA3    E0DE
+FBA4    E0DF
+FBA5    E0E0
+FBA6    E0E1
+FBA7    E0E2
+FBA8    E0E3
+FBA9    E0E4
+FBAA    E0E5
+FBAB    E0E6
+FBAC    E0E7
+FBAD    E0E8
+FBAE    E0E9
+FBAF    E0EA
+FBB0    E0EB
+FBB1    E0EC
+FBB2    E0ED
+FBB3    E0EE
+FBB4    E0EF
+FBB5    E0F0
+FBB6    E0F1
+FBB7    E0F2
+FBB9    E0F4
+FBBA    E0F5
+FBBB    E0F6
+FBBC    E0F7
+FBBD    E0F8
+FBBE    E0F9
+FBBF    E0FA
+FBC0    E0FB
+FBC1    E0FC
+FBC2    E0FD
+FBC3    E0FE
+FBC4    E0FF
+FBC5    E100
+FBC6    E101
+FBC7    E102
+FBC8    E103
+FBC9    E104
+FBCA    E105
+FBCB    E106
+FBCC    E107
+FBCD    E108
+FBCE    E109
+FBCF    E10A
+FBD0    E10B
+FBD1    E10C
+FBD2    E10D
+FBD3    E10E
+FBD4    E10F
+FBD5    E110
+FBD6    E111
+FBD7    E112
+FBD8    E113
+FBD9    E114
+FBDA    E115
+FBDB    E116
+FBDC    E117
+FBDD    E118
+FBDE    E119
+FBDF    E11A
+FBE0    E11B
+FBE1    E11C
+FBE2    E11D
+FBE3    E11E
+FBE4    E11F
+FBE5    E120
+FBE6    E121
+FBE7    E122
+FBE8    E123
+FBE9    E124
+FBEA    E125
+FBEB    E126
+FBEC    E127
+FBED    E128
+FBEE    E129
+FBEF    E12A
+FBF0    E12B
+FBF1    E12C
+FBF2    E12D
+FBF4    E12F
+FBF5    E130
+FBF6    E131
+FBF7    E132
+FBF8    E133
+FBFA    E135
+FBFB    E136
+FBFC    E137
+FBFD    E138
+FBFE    E139
+FC40    E13A
+FC41    E13B
+FC42    E13C
+FC43    E13D
+FC44    E13E
+FC45    E13F
+FC46    E140
+FC47    E141
+FC48    E142
+FC49    E143
+FC4A    E144
+FC4B    E145
+FC4C    E146
+FC4D    E147
+FC4E    E148
+FC50    E14A
+FC51    E14B
+FC52    E14C
+FC53    E14D
+FC54    E14E
+FC55    E14F
+FC56    E150
+FC57    E151
+FC58    E152
+FC59    E153
+FC5A    E154
+FC5B    E155
+FC5C    E156
+FC5D    E157
+FC5E    E158
+FC5F    E159
+FC60    E15A
+FC61    E15B
+FC62    E15C
+FC63    E15D
+FC64    E15E
+FC65    E15F
+FC66    E160
+FC67    E161
+FC68    E162
+FC69    E163
+FC6A    E164
+FC6B    E165
+FC6D    E167
+FC6E    E168
+FC6F    E169
+FC70    E16A
+FC71    E16B
+FC72    E16C
+FC73    E16D
+FC74    E16E
+FC75    E16F
+FC76    E170
+FC77    E171
+FC78    E172
+FC79    E173
+FC7A    E174
+FC7B    E175
+FC7C    E176
+FC7D    E177
+FC7E    E178
+FCA1    E179
+FCA2    E17A
+FCA3    E17B
+FCA4    E17C
+FCA5    E17D
+FCA6    E17E
+FCA7    E17F
+FCA8    E180
+FCA9    E181
+FCAA    E182
+FCAB    E183
+FCAC    E184
+FCAD    E185
+FCAE    E186
+FCAF    E187
+FCB0    E188
+FCB1    E189
+FCB2    E18A
+FCB3    E18B
+FCB4    E18C
+FCB5    E18D
+FCB6    E18E
+FCB7    E18F
+FCB8    E190
+FCBA    E192
+FCBB    E193
+FCBC    E194
+FCBD    E195
+FCBE    E196
+FCBF    E197
+FCC0    E198
+FCC1    E199
+FCC2    E19A
+FCC3    E19B
+FCC4    E19C
+FCC5    E19D
+FCC6    E19E
+FCC7    E19F
+FCC8    E1A0
+FCC9    E1A1
+FCCA    E1A2
+FCCB    E1A3
+FCCC    E1A4
+FCCD    E1A5
+FCCE    E1A6
+FCCF    E1A7
+FCD0    E1A8
+FCD1    E1A9
+FCD2    E1AA
+FCD3    E1AB
+FCD4    E1AC
+FCD5    E1AD
+FCD6    E1AE
+FCD7    E1AF
+FCD8    E1B0
+FCD9    E1B1
+FCDA    E1B2
+FCDB    E1B3
+FCDC    E1B4
+FCDD    E1B5
+FCDE    E1B6
+FCDF    E1B7
+FCE0    E1B8
+FCE1    E1B9
+FCE3    E1BB
+FCE4    E1BC
+FCE5    E1BD
+FCE6    E1BE
+FCE7    E1BF
+FCE8    E1C0
+FCE9    E1C1
+FCEA    E1C2
+FCEB    E1C3
+FCEC    E1C4
+FCED    E1C5
+FCEE    E1C6
+FCEF    E1C7
+FCF0    E1C8
+FCF2    E1CA
+FCF3    E1CB
+FCF4    E1CC
+FCF5    E1CD
+FCF6    E1CE
+FCF7    E1CF
+FCF8    E1D0
+FCF9    E1D1
+FCFA    E1D2
+FCFB    E1D3
+FCFC    E1D4
+FCFD    E1D5
+FCFE    E1D6
+FD40    E1D7
+FD41    E1D8
+FD42    E1D9
+FD43    E1DA
+FD44    E1DB
+FD45    E1DC
+FD46    E1DD
+FD47    E1DE
+FD48    E1DF
+FD49    E1E0
+FD4A    E1E1
+FD4B    E1E2
+FD4C    E1E3
+FD4D    E1E4
+FD4E    E1E5
+FD4F    E1E6
+FD50    E1E7
+FD51    E1E8
+FD52    E1E9
+FD53    E1EA
+FD54    E1EB
+FD55    E1EC
+FD56    E1ED
+FD57    E1EE
+FD58    E1EF
+FD59    E1F0
+FD5A    E1F1
+FD5B    E1F2
+FD5C    E1F3
+FD5D    E1F4
+FD5E    E1F5
+FD5F    E1F6
+FD60    E1F7
+FD61    E1F8
+FD62    E1F9
+FD63    E1FA
+FD64    E1FB
+FD65    E1FC
+FD66    E1FD
+FD67    E1FE
+FD68    E1FF
+FD69    E200
+FD6A    E201
+FD6B    E202
+FD6C    E203
+FD6D    E204
+FD6E    E205
+FD6F    E206
+FD70    E207
+FD71    E208
+FD72    E209
+FD73    E20A
+FD74    E20B
+FD75    E20C
+FD76    E20D
+FD77    E20E
+FD78    E20F
+FD79    E210
+FD7A    E211
+FD7B    E212
+FD7C    E213
+FD7D    E214
+FD7E    E215
+FDA1    E216
+FDA2    E217
+FDA3    E218
+FDA4    E219
+FDA5    E21A
+FDA6    E21B
+FDA7    E21C
+FDA8    E21D
+FDA9    E21E
+FDAA    E21F
+FDAB    E220
+FDAC    E221
+FDAD    E222
+FDAE    E223
+FDAF    E224
+FDB0    E225
+FDB1    E226
+FDB2    E227
+FDB3    E228
+FDB4    E229
+FDB5    E22A
+FDB6    E22B
+FDB9    E22E
+FDBA    E22F
+FDBC    E231
+FDBD    E232
+FDBE    E233
+FDBF    E234
+FDC0    E235
+FDC1    E236
+FDC2    E237
+FDC3    E238
+FDC4    E239
+FDC5    E23A
+FDC6    E23B
+FDC7    E23C
+FDC8    E23D
+FDC9    E23E
+FDCA    E23F
+FDCB    E240
+FDCC    E241
+FDCD    E242
+FDCE    E243
+FDCF    E244
+FDD0    E245
+FDD1    E246
+FDD2    E247
+FDD3    E248
+FDD4    E249
+FDD5    E24A
+FDD6    E24B
+FDD7    E24C
+FDD8    E24D
+FDD9    E24E
+FDDA    E24F
+FDDB    E250
+FDDC    E251
+FDDD    E252
+FDDE    E253
+FDDF    E254
+FDE0    E255
+FDE1    E256
+FDE2    E257
+FDE3    E258
+FDE4    E259
+FDE5    E25A
+FDE6    E25B
+FDE7    E25C
+FDE8    E25D
+FDE9    E25E
+FDEA    E25F
+FDEB    E260
+FDEC    E261
+FDED    E262
+FDEE    E263
+FDEF    E264
+FDF0    E265
+FDF2    E267
+FDF3    E268
+FDF4    E269
+FDF5    E26A
+FDF6    E26B
+FDF7    E26C
+FDF8    E26D
+FDF9    E26E
+FDFA    E26F
+FDFB    E270
+FDFC    E271
+FDFD    E272
+FDFE    E273
+FE40    E274
+FE41    E275
+FE42    E276
+FE43    E277
+FE44    E278
+FE45    E279
+FE46    E27A
+FE47    E27B
+FE48    E27C
+FE49    E27D
+FE4A    E27E
+FE4B    E27F
+FE4C    E280
+FE4D    E281
+FE4E    E282
+FE4F    E283
+FE50    E284
+FE51    E285
+FE53    E287
+FE54    E288
+FE55    E289
+FE56    E28A
+FE57    E28B
+FE58    E28C
+FE59    E28D
+FE5A    E28E
+FE5B    E28F
+FE5C    E290
+FE5D    E291
+FE5E    E292
+FE5F    E293
+FE60    E294
+FE61    E295
+FE62    E296
+FE63    E297
+FE64    E298
+FE65    E299
+FE66    E29A
+FE67    E29B
+FE68    E29C
+FE69    E29D
+FE6A    E29E
+FE6B    E29F
+FE6C    E2A0
+FE6D    E2A1
+FE6E    E2A2
+FE70    E2A4
+FE71    E2A5
+FE72    E2A6
+FE73    E2A7
+FE74    E2A8
+FE75    E2A9
+FE76    E2AA
+FE77    E2AB
+FE78    E2AC
+FE79    E2AD
+FE7A    E2AE
+FE7B    E2AF
+FE7C    E2B0
+FE7D    E2B1
+FE7E    E2B2
+FEA1    E2B3
+FEA2    E2B4
+FEA3    E2B5
+FEA4    E2B6
+FEA5    E2B7
+FEA6    E2B8
+FEA7    E2B9
+FEA8    E2BA
+FEA9    E2BB
+FEAB    E2BD
+FEAC    E2BE
+FEAD    E2BF
+FEAE    E2C0
+FEAF    E2C1
+FEB0    E2C2
+FEB1    E2C3
+FEB2    E2C4
+FEB3    E2C5
+FEB4    E2C6
+FEB5    E2C7
+FEB6    E2C8
+FEB7    E2C9
+FEB8    E2CA
+FEB9    E2CB
+FEBA    E2CC
+FEBB    E2CD
+FEBC    E2CE
+FEBD    E2CF
+FEBE    E2D0
+FEBF    E2D1
+FEC0    E2D2
+FEC1    E2D3
+FEC2    E2D4
+FEC3    E2D5
+FEC4    E2D6
+FEC5    E2D7
+FEC6    E2D8
+FEC7    E2D9
+FEC8    E2DA
+FEC9    E2DB
+FECA    E2DC
+FECB    E2DD
+FECC    E2DE
+FECD    E2DF
+FECE    E2E0
+FECF    E2E1
+FED0    E2E2
+FED1    E2E3
+FED2    E2E4
+FED3    E2E5
+FED4    E2E6
+FED5    E2E7
+FED6    E2E8
+FED7    E2E9
+FED8    E2EA
+FED9    E2EB
+FEDA    E2EC
+FEDB    E2ED
+FEDC    E2EE
+FEDE    E2F0
+FEDF    E2F1
+FEE0    E2F2
+FEE1    E2F3
+FEE2    E2F4
+FEE3    E2F5
+FEE4    E2F6
+FEE5    E2F7
+FEE6    E2F8
+FEE7    E2F9
+FEE8    E2FA
+FEE9    E2FB
+FEEA    E2FC
+FEEB    E2FD
+FEEC    E2FE
+FEED    E2FF
+FEEE    E300
+FEEF    E301
+FEF0    E302
+FEF1    E303
+FEF2    E304
+FEF3    E305
+FEF4    E306
+FEF5    E307
+FEF6    E308
+FEF7    E309
+FEF8    E30A
+FEF9    E30B
+FEFA    E30C
+FEFB    E30D
+FEFC    E30E
+FEFD    E30F
+FEFE    E310
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/HKSCS2008.map	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,5019 @@
+#
+#  http://www.ogcio.gov.hk/ccli/eng/hskcs/mapping_table_2008.html
+#
+#  commnent out following entries
+#
+#  88A3  <00EA,0304>
+#  88A5  <00EA,030C>
+#  8862  <00CA,0304>
+#  8864  <00CA,030C>
+#
+8740         43F0
+8741         4C32
+8742         4603
+8743         45A6
+8744         4578
+8745        27267
+8746         4D77
+8747         45B3
+8748        27CB1
+8749         4CE2
+874A        27CC5
+874B         3B95
+874C         4736
+874D         4744
+874E         4C47
+874F         4C40
+8750        242BF
+8751        23617
+8752        27352
+8753        26E8B
+8754        270D2
+8755         4C57
+8756        2A351
+8757         474F
+8758         45DA
+8759         4C85
+875A        27C6C
+875B         4D07
+875C         4AA4
+875D         46A1
+875E        26B23
+875F         7225
+8760        25A54
+8761        21A63
+8762        23E06
+8763        23F61
+8764         664D
+8765         56FB
+8767         7D95
+8768         591D
+8769        28BB9
+876A         3DF4
+876B         9734
+876C        27BEF
+876D         5BDB
+876E        21D5E
+876F         5AA4
+8770         3625
+8771        29EB0
+8772         5AD1
+8773         5BB7
+8774         5CFC
+8775         676E
+8776         8593
+8777        29945
+8778         7461
+8779         749D
+877A         3875
+877B        21D53
+877C        2369E
+877D        26021
+877E         3EEC
+87A1        258DE
+87A2         3AF5
+87A3         7AFC
+87A4         9F97
+87A5        24161
+87A6        2890D
+87A7        231EA
+87A8        20A8A
+87A9        2325E
+87AA         430A
+87AB         8484
+87AC         9F96
+87AD         942F
+87AE         4930
+87AF         8613
+87B0         5896
+87B1         974A
+87B2         9218
+87B3         79D0
+87B4         7A32
+87B5         6660
+87B6         6A29
+87B7         889D
+87B8         744C
+87B9         7BC5
+87BA         6782
+87BB         7A2C
+87BC         524F
+87BD         9046
+87BE         34E6
+87BF         73C4
+87C0        25DB9
+87C1         74C6
+87C2         9FC7
+87C3         57B3
+87C4         492F
+87C5         544C
+87C6         4131
+87C7        2368E
+87C8         5818
+87C9         7A72
+87CA        27B65
+87CB         8B8F
+87CC         46AE
+87CD        26E88
+87CE         4181
+87CF        25D99
+87D0         7BAE
+87D1        224BC
+87D2         9FC8
+87D3        224C1
+87D4        224C9
+87D5        224CC
+87D6         9FC9
+87D7         8504
+87D8        235BB
+87D9         40B4
+87DA         9FCA
+87DB         44E1
+87DC        2ADFF
+87DD         62C1
+87DE         706E
+87DF         9FCB
+8840         31C0
+8841         31C1
+8842         31C2
+8843         31C3
+8844         31C4
+8845        2010C
+8846         31C5
+8847        200D1
+8848        200CD
+8849         31C6
+884A         31C7
+884B        200CB
+884C        21FE8
+884D         31C8
+884E        200CA
+884F         31C9
+8850         31CA
+8851         31CB
+8852         31CC
+8853        2010E
+8854         31CD
+8855         31CE
+8856         0100
+8857         00C1
+8858         01CD
+8859         00C0
+885A         0112
+885B         00C9
+885C         011A
+885D         00C8
+885E         014C
+885F         00D3
+8860         01D1
+8861         00D2
+#8862  <00CA,0304>
+8863         1EBE
+#8864  <00CA,030C>
+8865         1EC0
+8866         00CA
+8867         0101
+8868         00E1
+8869         01CE
+886A         00E0
+886B         0251
+886C         0113
+886D         00E9
+886E         011B
+886F         00E8
+8870         012B
+8871         00ED
+8872         01D0
+8873         00EC
+8874         014D
+8875         00F3
+8876         01D2
+8877         00F2
+8878         016B
+8879         00FA
+887A         01D4
+887B         00F9
+887C         01D6
+887D         01D8
+887E         01DA
+88A1         01DC
+88A2         00FC
+#88A3  <00EA,0304>
+88A4         1EBF
+#88A5  <00EA,030C>
+88A6         1EC1
+88A7         00EA
+88A8         0261
+88A9         23DA
+88AA         23DB
+8940        2A3A9
+8941        21145
+8943         650A
+8946         4E3D
+8947         6EDD
+8948         9D4E
+8949         91DF
+894C        27735
+894D         6491
+894E         4F1A
+894F         4F28
+8950         4FA8
+8951         5156
+8952         5174
+8953         519C
+8954         51E4
+8955         52A1
+8956         52A8
+8957         533B
+8958         534E
+8959         53D1
+895A         53D8
+895B         56E2
+895C         58F0
+895D         5904
+895E         5907
+895F         5932
+8960         5934
+8961         5B66
+8962         5B9E
+8963         5B9F
+8964         5C9A
+8965         5E86
+8966         603B
+8967         6589
+8968         67FE
+8969         6804
+896A         6865
+896B         6D4E
+896C         70BC
+896D         7535
+896E         7EA4
+896F         7EAC
+8970         7EBA
+8971         7EC7
+8972         7ECF
+8973         7EDF
+8974         7F06
+8975         7F37
+8976         827A
+8977         82CF
+8978         836F
+8979         89C6
+897A         8BBE
+897B         8BE2
+897C         8F66
+897D         8F67
+897E         8F6E
+89A1         7411
+89A2         7CFC
+89A3         7DCD
+89A4         6946
+89A5         7AC9
+89A6         5227
+89AB         918C
+89AC         78B8
+89AD         915E
+89AE         80BC
+89B0         8D0B
+89B1         80F6
+89B2        209E7
+89B5         809F
+89B6         9EC7
+89B7         4CCD
+89B8         9DC9
+89B9         9E0C
+89BA         4C3E
+89BB        29DF6
+89BC        2700E
+89BD         9E0A
+89BE        2A133
+89BF         35C1
+89C1         6E9A
+89C2         823E
+89C3         7519
+89C5         4911
+89C6         9A6C
+89C7         9A8F
+89C8         9F99
+89C9         7987
+89CA        2846C
+89CB        21DCA
+89CC        205D0
+89CD        22AE6
+89CE         4E24
+89CF         4E81
+89D0         4E80
+89D1         4E87
+89D2         4EBF
+89D3         4EEB
+89D4         4F37
+89D5         344C
+89D6         4FBD
+89D7         3E48
+89D8         5003
+89D9         5088
+89DA         347D
+89DB         3493
+89DC         34A5
+89DD         5186
+89DE         5905
+89DF         51DB
+89E0         51FC
+89E1         5205
+89E2         4E89
+89E3         5279
+89E4         5290
+89E5         5327
+89E6         35C7
+89E7         53A9
+89E8         3551
+89E9         53B0
+89EA         3553
+89EB         53C2
+89EC         5423
+89ED         356D
+89EE         3572
+89EF         3681
+89F0         5493
+89F1         54A3
+89F2         54B4
+89F3         54B9
+89F4         54D0
+89F5         54EF
+89F6         5518
+89F7         5523
+89F8         5528
+89F9         3598
+89FA         553F
+89FB         35A5
+89FC         35BF
+89FD         55D7
+89FE         35C5
+8A40        27D84
+8A41         5525
+8A43        20C42
+8A44        20D15
+8A45        2512B
+8A46         5590
+8A47        22CC6
+8A48         39EC
+8A49        20341
+8A4A         8E46
+8A4B        24DB8
+8A4C        294E5
+8A4D         4053
+8A4E        280BE
+8A4F         777A
+8A50        22C38
+8A51         3A34
+8A52         47D5
+8A53        2815D
+8A54        269F2
+8A55        24DEA
+8A56         64DD
+8A57        20D7C
+8A58        20FB4
+8A59        20CD5
+8A5A        210F4
+8A5B         648D
+8A5C         8E7E
+8A5D        20E96
+8A5E        20C0B
+8A5F        20F64
+8A60        22CA9
+8A61        28256
+8A62        244D3
+8A64        20D46
+8A65        29A4D
+8A66        280E9
+8A67         47F4
+8A68        24EA7
+8A69        22CC2
+8A6A         9AB2
+8A6B         3A67
+8A6C        295F4
+8A6D         3FED
+8A6E         3506
+8A6F        252C7
+8A70        297D4
+8A71        278C8
+8A72        22D44
+8A73         9D6E
+8A74         9815
+8A76         43D9
+8A77        260A5
+8A78         64B4
+8A79         54E3
+8A7A        22D4C
+8A7B        22BCA
+8A7C        21077
+8A7D         39FB
+8A7E        2106F
+8AA1        266DA
+8AA2        26716
+8AA3        279A0
+8AA4         64EA
+8AA5        25052
+8AA6        20C43
+8AA7         8E68
+8AA8        221A1
+8AA9        28B4C
+8AAA        20731
+8AAC         480B
+8AAD        201A9
+8AAE         3FFA
+8AAF         5873
+8AB0        22D8D
+8AB2        245C8
+8AB3        204FC
+8AB4        26097
+8AB5        20F4C
+8AB6        20D96
+8AB7         5579
+8AB8         40BB
+8AB9         43BA
+8ABB         4AB4
+8ABC        22A66
+8ABD        2109D
+8ABE         81AA
+8ABF         98F5
+8AC0        20D9C
+8AC1         6379
+8AC2         39FE
+8AC3        22775
+8AC4         8DC0
+8AC5         56A1
+8AC6         647C
+8AC7         3E43
+8AC9        2A601
+8ACA        20E09
+8ACB        22ACF
+8ACC        22CC9
+8ACE        210C8
+8ACF        239C2
+8AD0         3992
+8AD1         3A06
+8AD2        2829B
+8AD3         3578
+8AD4        25E49
+8AD5        220C7
+8AD6         5652
+8AD7        20F31
+8AD8        22CB2
+8AD9        29720
+8ADA         34BC
+8ADB         6C3D
+8ADC        24E3B
+8ADF        27574
+8AE0        22E8B
+8AE1        22208
+8AE2        2A65B
+8AE3        28CCD
+8AE4        20E7A
+8AE5        20C34
+8AE6        2681C
+8AE7         7F93
+8AE8        210CF
+8AE9        22803
+8AEA        22939
+8AEB         35FB
+8AEC        251E3
+8AED        20E8C
+8AEE        20F8D
+8AEF        20EAA
+8AF0         3F93
+8AF1        20F30
+8AF2        20D47
+8AF3        2114F
+8AF4        20E4C
+8AF6        20EAB
+8AF7        20BA9
+8AF8        20D48
+8AF9        210C0
+8AFA        2113D
+8AFB         3FF9
+8AFC        22696
+8AFD         6432
+8AFE        20FAD
+8B40        233F4
+8B41        27639
+8B42        22BCE
+8B43        20D7E
+8B44        20D7F
+8B45        22C51
+8B46        22C55
+8B47         3A18
+8B48        20E98
+8B49        210C7
+8B4A        20F2E
+8B4B        2A632
+8B4C        26B50
+8B4D        28CD2
+8B4E        28D99
+8B4F        28CCA
+8B50         95AA
+8B51         54CC
+8B52         82C4
+8B53         55B9
+8B55        29EC3
+8B56         9C26
+8B57         9AB6
+8B58        2775E
+8B59        22DEE
+8B5A         7140
+8B5B         816D
+8B5C         80EC
+8B5D         5C1C
+8B5E        26572
+8B5F         8134
+8B60         3797
+8B61         535F
+8B62        280BD
+8B63         91B6
+8B64        20EFA
+8B65        20E0F
+8B66        20E77
+8B67        20EFB
+8B68         35DD
+8B69        24DEB
+8B6A         3609
+8B6B        20CD6
+8B6C         56AF
+8B6D        227B5
+8B6E        210C9
+8B6F        20E10
+8B70        20E78
+8B71        21078
+8B72        21148
+8B73        28207
+8B74        21455
+8B75        20E79
+8B76        24E50
+8B77        22DA4
+8B78         5A54
+8B79        2101D
+8B7A        2101E
+8B7B        210F5
+8B7C        210F6
+8B7D         579C
+8B7E        20E11
+8BA1        27694
+8BA2        282CD
+8BA3        20FB5
+8BA4        20E7B
+8BA5        2517E
+8BA6         3703
+8BA7        20FB6
+8BA8        21180
+8BA9        252D8
+8BAA        2A2BD
+8BAB        249DA
+8BAC        2183A
+8BAD        24177
+8BAE        2827C
+8BAF         5899
+8BB0         5268
+8BB1         361A
+8BB2        2573D
+8BB3         7BB2
+8BB4         5B68
+8BB5         4800
+8BB6         4B2C
+8BB7         9F27
+8BB8         49E7
+8BB9         9C1F
+8BBA         9B8D
+8BBB        25B74
+8BBC        2313D
+8BBD         55FB
+8BBE         35F2
+8BBF         5689
+8BC0         4E28
+8BC1         5902
+8BC2        21BC1
+8BC3        2F878
+8BC4         9751
+8BC5        20086
+8BC6         4E5B
+8BC7         4EBB
+8BC8         353E
+8BC9         5C23
+8BCA         5F51
+8BCB         5FC4
+8BCC         38FA
+8BCD         624C
+8BCE         6535
+8BCF         6B7A
+8BD0         6C35
+8BD1         6C3A
+8BD2         706C
+8BD3         722B
+8BD4         4E2C
+8BD5         72AD
+8BD6        248E9
+8BD7         7F52
+8BD8         793B
+8BD9         7CF9
+8BDA         7F53
+8BDB        2626A
+8BDC         34C1
+8BDE        2634B
+8BDF         8002
+8BE0         8080
+8BE1        26612
+8BE2        26951
+8BE3         535D
+8BE4         8864
+8BE5         89C1
+8BE6        278B2
+8BE7         8BA0
+8BE8         8D1D
+8BE9         9485
+8BEA         9578
+8BEB         957F
+8BEC         95E8
+8BED        28E0F
+8BEE         97E6
+8BEF         9875
+8BF0         98CE
+8BF1         98DE
+8BF2         9963
+8BF3        29810
+8BF4         9C7C
+8BF5         9E1F
+8BF6         9EC4
+8BF7         6B6F
+8BF8         F907
+8BF9         4E37
+8BFA        20087
+8BFB         961D
+8BFC         6237
+8BFD         94A2
+8C40         503B
+8C41         6DFE
+8C42        29C73
+8C43         9FA6
+8C44         3DC9
+8C45         888F
+8C46        2414E
+8C47         7077
+8C48         5CF5
+8C49         4B20
+8C4A        251CD
+8C4B         3559
+8C4C        25D30
+8C4D         6122
+8C4E        28A32
+8C4F         8FA7
+8C50         91F6
+8C51         7191
+8C52         6719
+8C53         73BA
+8C54        23281
+8C55        2A107
+8C56         3C8B
+8C57        21980
+8C58         4B10
+8C59         78E4
+8C5A         7402
+8C5B         51AE
+8C5C        2870F
+8C5D         4009
+8C5E         6A63
+8C5F        2A2BA
+8C60         4223
+8C61         860F
+8C62        20A6F
+8C63         7A2A
+8C64        29947
+8C65        28AEA
+8C66         9755
+8C67         704D
+8C68         5324
+8C69        2207E
+8C6A         93F4
+8C6B         76D9
+8C6C        289E3
+8C6D         9FA7
+8C6E         77DD
+8C6F         4EA3
+8C70         4FF0
+8C71         50BC
+8C72         4E2F
+8C73         4F17
+8C74         9FA8
+8C75         5434
+8C76         7D8B
+8C77         5892
+8C78         58D0
+8C79        21DB6
+8C7A         5E92
+8C7B         5E99
+8C7C         5FC2
+8C7D        22712
+8C7E         658B
+8CA1        233F9
+8CA2         6919
+8CA3         6A43
+8CA4        23C63
+8CA5         6CFF
+8CA7         7200
+8CA8        24505
+8CA9         738C
+8CAA         3EDB
+8CAB        24A13
+8CAC         5B15
+8CAD         74B9
+8CAE         8B83
+8CAF        25CA4
+8CB0        25695
+8CB1         7A93
+8CB2         7BEC
+8CB3         7CC3
+8CB4         7E6C
+8CB5         82F8
+8CB6         8597
+8CB7         9FA9
+8CB8         8890
+8CB9         9FAA
+8CBA         8EB9
+8CBB         9FAB
+8CBC         8FCF
+8CBD         855F
+8CBE         99E0
+8CBF         9221
+8CC0         9FAC
+8CC1        28DB9
+8CC2        2143F
+8CC3         4071
+8CC4         42A2
+8CC5         5A1A
+8CC9         9868
+8CCA         676B
+8CCB         4276
+8CCC         573D
+8CCE         85D6
+8CCF        2497B
+8CD0         82BF
+8CD1        2710D
+8CD2         4C81
+8CD3        26D74
+8CD4         5D7B
+8CD5        26B15
+8CD6        26FBE
+8CD7         9FAD
+8CD8         9FAE
+8CD9         5B96
+8CDA         9FAF
+8CDB         66E7
+8CDC         7E5B
+8CDD         6E57
+8CDE         79CA
+8CDF         3D88
+8CE0         44C3
+8CE1        23256
+8CE2        22796
+8CE3         439A
+8CE4         4536
+8CE6         5CD5
+8CE7        23B1A
+8CE8         8AF9
+8CE9         5C78
+8CEA         3D12
+8CEB        23551
+8CEC         5D78
+8CED         9FB2
+8CEE         7157
+8CEF         4558
+8CF0        240EC
+8CF1        21E23
+8CF2         4C77
+8CF3         3978
+8CF4         344A
+8CF5        201A4
+8CF6        26C41
+8CF7         8ACC
+8CF8         4FB4
+8CF9        20239
+8CFA         59BF
+8CFB         816C
+8CFC         9856
+8CFD        298FA
+8CFE         5F3B
+8D40        20B9F
+8D42        221C1
+8D43        2896D
+8D44         4102
+8D45         46BB
+8D46        29079
+8D47         3F07
+8D48         9FB3
+8D49        2A1B5
+8D4A         40F8
+8D4B         37D6
+8D4C         46F7
+8D4D        26C46
+8D4E         417C
+8D4F        286B2
+8D50        273FF
+8D51         456D
+8D52         38D4
+8D53        2549A
+8D54         4561
+8D55         451B
+8D56         4D89
+8D57         4C7B
+8D58         4D76
+8D59         45EA
+8D5A         3FC8
+8D5B        24B0F
+8D5C         3661
+8D5D         44DE
+8D5E         44BD
+8D5F         41ED
+8D60         5D3E
+8D61         5D48
+8D62         5D56
+8D63         3DFC
+8D64         380F
+8D65         5DA4
+8D66         5DB9
+8D67         3820
+8D68         3838
+8D69         5E42
+8D6A         5EBD
+8D6B         5F25
+8D6C         5F83
+8D6D         3908
+8D6E         3914
+8D6F         393F
+8D70         394D
+8D71         60D7
+8D72         613D
+8D73         5CE5
+8D74         3989
+8D75         61B7
+8D76         61B9
+8D77         61CF
+8D78         39B8
+8D79         622C
+8D7A         6290
+8D7B         62E5
+8D7C         6318
+8D7D         39F8
+8D7E         56B1
+8DA1         3A03
+8DA2         63E2
+8DA3         63FB
+8DA4         6407
+8DA5         645A
+8DA6         3A4B
+8DA7         64C0
+8DA8         5D15
+8DA9         5621
+8DAA         9F9F
+8DAB         3A97
+8DAC         6586
+8DAD         3ABD
+8DAE         65FF
+8DAF         6653
+8DB0         3AF2
+8DB1         6692
+8DB2         3B22
+8DB3         6716
+8DB4         3B42
+8DB5         67A4
+8DB6         6800
+8DB7         3B58
+8DB8         684A
+8DB9         6884
+8DBA         3B72
+8DBB         3B71
+8DBC         3B7B
+8DBD         6909
+8DBE         6943
+8DBF         725C
+8DC0         6964
+8DC1         699F
+8DC2         6985
+8DC3         3BBC
+8DC4         69D6
+8DC5         3BDD
+8DC6         6A65
+8DC7         6A74
+8DC8         6A71
+8DC9         6A82
+8DCA         3BEC
+8DCB         6A99
+8DCC         3BF2
+8DCD         6AAB
+8DCE         6AB5
+8DCF         6AD4
+8DD0         6AF6
+8DD1         6B81
+8DD2         6BC1
+8DD3         6BEA
+8DD4         6C75
+8DD5         6CAA
+8DD6         3CCB
+8DD7         6D02
+8DD8         6D06
+8DD9         6D26
+8DDA         6D81
+8DDB         3CEF
+8DDC         6DA4
+8DDD         6DB1
+8DDE         6E15
+8DDF         6E18
+8DE0         6E29
+8DE1         6E86
+8DE2        289C0
+8DE3         6EBB
+8DE4         6EE2
+8DE5         6EDA
+8DE6         9F7F
+8DE7         6EE8
+8DE8         6EE9
+8DE9         6F24
+8DEA         6F34
+8DEB         3D46
+8DEC        23F41
+8DED         6F81
+8DEE         6FBE
+8DEF         3D6A
+8DF0         3D75
+8DF1         71B7
+8DF2         5C99
+8DF3         3D8A
+8DF4         702C
+8DF5         3D91
+8DF6         7050
+8DF7         7054
+8DF8         706F
+8DF9         707F
+8DFA         7089
+8DFB        20325
+8DFC         43C1
+8DFD         35F1
+8DFE        20ED8
+8E40        23ED7
+8E41         57BE
+8E42        26ED3
+8E43         713E
+8E44        257E0
+8E45         364E
+8E46         69A2
+8E47        28BE9
+8E48         5B74
+8E49         7A49
+8E4A        258E1
+8E4B        294D9
+8E4C         7A65
+8E4D         7A7D
+8E4E        259AC
+8E4F         7ABB
+8E50         7AB0
+8E51         7AC2
+8E52         7AC3
+8E53         71D1
+8E54        2648D
+8E55         41CA
+8E56         7ADA
+8E57         7ADD
+8E58         7AEA
+8E59         41EF
+8E5A         54B2
+8E5B        25C01
+8E5C         7B0B
+8E5D         7B55
+8E5E         7B29
+8E5F        2530E
+8E60        25CFE
+8E61         7BA2
+8E62         7B6F
+8E63         839C
+8E64        25BB4
+8E65        26C7F
+8E66         7BD0
+8E67         8421
+8E68         7B92
+8E6A        25D20
+8E6B         3DAD
+8E6C        25C65
+8E6D         8492
+8E6E         7BFA
+8E70         7C35
+8E71        25CC1
+8E72         7C44
+8E73         7C83
+8E74        24882
+8E75         7CA6
+8E76         667D
+8E77        24578
+8E78         7CC9
+8E79         7CC7
+8E7A         7CE6
+8E7B         7C74
+8E7C         7CF3
+8E7D         7CF5
+8EA1         7E67
+8EA2         451D
+8EA3        26E44
+8EA4         7D5D
+8EA5        26ED6
+8EA6         748D
+8EA7         7D89
+8EA8         7DAB
+8EA9         7135
+8EAA         7DB3
+8EAC        24057
+8EAD        26029
+8EAE         7DE4
+8EAF         3D13
+8EB0         7DF5
+8EB1        217F9
+8EB2         7DE5
+8EB3        2836D
+8EB5        26121
+8EB6        2615A
+8EB7         7E6E
+8EB8         7E92
+8EB9         432B
+8EBA         946C
+8EBB         7E27
+8EBC         7F40
+8EBD         7F41
+8EBE         7F47
+8EBF         7936
+8EC0        262D0
+8EC1         99E1
+8EC2         7F97
+8EC3        26351
+8EC4         7FA3
+8EC5        21661
+8EC6        20068
+8EC7         455C
+8EC8        23766
+8EC9         4503
+8ECA        2833A
+8ECB         7FFA
+8ECC        26489
+8ECE         8008
+8ECF         801D
+8ED1         802F
+8ED2        2A087
+8ED3        26CC3
+8ED4         803B
+8ED5         803C
+8ED6         8061
+8ED7        22714
+8ED8         4989
+8ED9        26626
+8EDA        23DE3
+8EDB        266E8
+8EDC         6725
+8EDD         80A7
+8EDE        28A48
+8EDF         8107
+8EE0         811A
+8EE1         58B0
+8EE2        226F6
+8EE3         6C7F
+8EE4        26498
+8EE5        24FB8
+8EE6         64E7
+8EE7        2148A
+8EE8         8218
+8EE9        2185E
+8EEA         6A53
+8EEB        24A65
+8EEC        24A95
+8EED         447A
+8EEE         8229
+8EEF        20B0D
+8EF0        26A52
+8EF1        23D7E
+8EF2         4FF9
+8EF3        214FD
+8EF4         84E2
+8EF5         8362
+8EF6        26B0A
+8EF7        249A7
+8EF8        23530
+8EF9        21773
+8EFA        23DF8
+8EFB         82AA
+8EFC         691B
+8EFD        2F994
+8EFE         41DB
+8F40         854B
+8F41         82D0
+8F42         831A
+8F43        20E16
+8F44        217B4
+8F45         36C1
+8F46        2317D
+8F47        2355A
+8F48         827B
+8F49         82E2
+8F4A         8318
+8F4B        23E8B
+8F4C        26DA3
+8F4D        26B05
+8F4E        26B97
+8F4F        235CE
+8F50         3DBF
+8F51         831D
+8F52         55EC
+8F53         8385
+8F54         450B
+8F55        26DA5
+8F56         83AC
+8F58         83D3
+8F59         347E
+8F5A        26ED4
+8F5B         6A57
+8F5C         855A
+8F5D         3496
+8F5E        26E42
+8F5F        22EEF
+8F60         8458
+8F61        25BE4
+8F62         8471
+8F63         3DD3
+8F64         44E4
+8F65         6AA7
+8F66         844A
+8F67        23CB5
+8F68         7958
+8F6A        26B96
+8F6B        26E77
+8F6C        26E43
+8F6D         84DE
+8F6F         8391
+8F70         44A0
+8F71         8493
+8F72         84E4
+8F73        25C91
+8F74         4240
+8F75        25CC0
+8F76         4543
+8F77         8534
+8F78         5AF2
+8F79        26E99
+8F7A         4527
+8F7B         8573
+8F7C         4516
+8F7D         67BF
+8F7E         8616
+8FA1        28625
+8FA2        2863B
+8FA3         85C1
+8FA4        27088
+8FA5         8602
+8FA6        21582
+8FA7        270CD
+8FA8        2F9B2
+8FA9         456A
+8FAA         8628
+8FAB         3648
+8FAC        218A2
+8FAD         53F7
+8FAE        2739A
+8FAF         867E
+8FB0         8771
+8FB1        2A0F8
+8FB2         87EE
+8FB3        22C27
+8FB4         87B1
+8FB5         87DA
+8FB6         880F
+8FB7         5661
+8FB8         866C
+8FB9         6856
+8FBA         460F
+8FBB         8845
+8FBC         8846
+8FBD        275E0
+8FBE        23DB9
+8FBF        275E4
+8FC0         885E
+8FC1         889C
+8FC2         465B
+8FC3         88B4
+8FC4         88B5
+8FC5         63C1
+8FC6         88C5
+8FC7         7777
+8FC8        2770F
+8FC9         8987
+8FCA         898A
+8FCD         89A7
+8FCE         89BC
+8FCF        28A25
+8FD0         89E7
+8FD1        27924
+8FD2        27ABD
+8FD3         8A9C
+8FD4         7793
+8FD5         91FE
+8FD6         8A90
+8FD7        27A59
+8FD8         7AE9
+8FD9        27B3A
+8FDA        23F8F
+8FDB         4713
+8FDC        27B38
+8FDD         717C
+8FDE         8B0C
+8FDF         8B1F
+8FE0        25430
+8FE1        25565
+8FE2         8B3F
+8FE3         8B4C
+8FE4         8B4D
+8FE5         8AA9
+8FE6        24A7A
+8FE7         8B90
+8FE8         8B9B
+8FE9         8AAF
+8FEA        216DF
+8FEB         4615
+8FEC         884F
+8FED         8C9B
+8FEE        27D54
+8FEF        27D8F
+8FF0        2F9D4
+8FF1         3725
+8FF2        27D53
+8FF3         8CD6
+8FF4        27D98
+8FF5        27DBD
+8FF6         8D12
+8FF7         8D03
+8FF8        21910
+8FF9         8CDB
+8FFA         705C
+8FFB         8D11
+8FFC        24CC9
+8FFD         3ED0
+9040         8DA9
+9041        28002
+9042        21014
+9043        2498A
+9044         3B7C
+9045        281BC
+9046        2710C
+9047         7AE7
+9048         8EAD
+9049         8EB6
+904A         8EC3
+904B         92D4
+904C         8F19
+904D         8F2D
+904E        28365
+904F        28412
+9050         8FA5
+9051         9303
+9052        2A29F
+9053        20A50
+9054         8FB3
+9055         492A
+9056        289DE
+9057        2853D
+9058        23DBB
+9059         5EF8
+905A        23262
+905B         8FF9
+905C        2A014
+905D        286BC
+905E        28501
+905F        22325
+9060         3980
+9061        26ED7
+9062         9037
+9063        2853C
+9064        27ABE
+9065         9061
+9066        2856C
+9067        2860B
+9068         90A8
+9069        28713
+906A         90C4
+906B        286E6
+906C         90AE
+906E         9167
+906F         3AF0
+9070         91A9
+9071         91C4
+9072         7CAC
+9073        28933
+9074        21E89
+9075         920E
+9076         6C9F
+9077         9241
+9078         9262
+9079        255B9
+907B        28AC6
+907C        23C9B
+907D        28B0C
+907E        255DB
+90A1        20D31
+90A2         932C
+90A3         936B
+90A4        28AE1
+90A5        28BEB
+90A6         708F
+90A7         5AC3
+90A8        28AE2
+90A9        28AE5
+90AA         4965
+90AB         9244
+90AC        28BEC
+90AD        28C39
+90AE        28BFF
+90AF         9373
+90B0         945B
+90B1         8EBC
+90B2         9585
+90B3         95A6
+90B4         9426
+90B5         95A0
+90B6         6FF6
+90B7         42B9
+90B8        2267A
+90B9        286D8
+90BA        2127C
+90BB        23E2E
+90BC         49DF
+90BD         6C1C
+90BE         967B
+90BF         9696
+90C0         416C
+90C1         96A3
+90C2        26ED5
+90C3         61DA
+90C4         96B6
+90C5         78F5
+90C6        28AE0
+90C7         96BD
+90C8         53CC
+90C9         49A1
+90CA        26CB8
+90CB        20274
+90CC        26410
+90CD        290AF
+90CE        290E5
+90CF        24AD1
+90D0        21915
+90D1        2330A
+90D2         9731
+90D3         8642
+90D4         9736
+90D5         4A0F
+90D6         453D
+90D7         4585
+90D8        24AE9
+90D9         7075
+90DA         5B41
+90DB         971B
+90DD        291D5
+90DE         9757
+90DF         5B4A
+90E0        291EB
+90E1         975F
+90E2         9425
+90E3         50D0
+90E4        230B7
+90E5        230BC
+90E6         9789
+90E7         979F
+90E8         97B1
+90E9         97BE
+90EA         97C0
+90EB         97D2
+90EC         97E0
+90ED        2546C
+90EE         97EE
+90EF         741C
+90F0        29433
+90F2         97F5
+90F3        2941D
+90F4        2797A
+90F5         4AD1
+90F6         9834
+90F7         9833
+90F8         984B
+90F9         9866
+90FA         3B0E
+90FB        27175
+90FC         3D51
+90FD        20630
+90FE        2415C
+9140        25706
+9141         98CA
+9142         98B7
+9143         98C8
+9144         98C7
+9145         4AFF
+9146        26D27
+9147        216D3
+9148         55B0
+9149         98E1
+914A         98E6
+914B         98EC
+914C         9378
+914D         9939
+914E        24A29
+914F         4B72
+9150        29857
+9151        29905
+9152         99F5
+9153         9A0C
+9154         9A3B
+9155         9A10
+9156         9A58
+9157        25725
+9158         36C4
+9159        290B1
+915A        29BD5
+915B         9AE0
+915C         9AE2
+915D        29B05
+915E         9AF4
+915F         4C0E
+9160         9B14
+9161         9B2D
+9162        28600
+9163         5034
+9164         9B34
+9165        269A8
+9166         38C3
+9167        2307D
+9168         9B50
+9169         9B40
+916A        29D3E
+916B         5A45
+916C        21863
+916D         9B8E
+916E        2424B
+916F         9C02
+9170         9BFF
+9171         9C0C
+9172        29E68
+9173         9DD4
+9174        29FB7
+9175        2A192
+9176        2A1AB
+9177        2A0E1
+9178        2A123
+9179        2A1DF
+917A         9D7E
+917B         9D83
+917C        2A134
+917D         9E0E
+917E         6888
+91A1         9DC4
+91A2        2215B
+91A3        2A193
+91A4        2A220
+91A5        2193B
+91A6        2A233
+91A7         9D39
+91A8        2A0B9
+91A9        2A2B4
+91AA         9E90
+91AB         9E95
+91AC         9E9E
+91AD         9EA2
+91AE         4D34
+91AF         9EAA
+91B0         9EAF
+91B1        24364
+91B2         9EC1
+91B3         3B60
+91B4         39E5
+91B5         3D1D
+91B6         4F32
+91B7         37BE
+91B8        28C2B
+91B9         9F02
+91BA         9F08
+91BB         4B96
+91BC         9424
+91BD        26DA2
+91BE         9F17
+91C0         9F39
+91C1         569F
+91C2         568A
+91C3         9F45
+91C4         99B8
+91C5        2908B
+91C6         97F2
+91C7         847F
+91C8         9F62
+91C9         9F69
+91CA         7ADC
+91CB         9F8E
+91CC         7216
+91CD         4BBE
+91CE        24975
+91CF        249BB
+91D0         7177
+91D1        249F8
+91D2        24348
+91D3        24A51
+91D4         739E
+91D5        28BDA
+91D6        218FA
+91D7         799F
+91D8        2897E
+91D9        28E36
+91DA         9369
+91DB         93F3
+91DC        28A44
+91DD         92EC
+91DE         9381
+91DF         93CB
+91E0        2896C
+91E1        244B9
+91E2         7217
+91E3         3EEB
+91E4         7772
+91E5         7A43
+91E6         70D0
+91E7        24473
+91E8        243F8
+91E9         717E
+91EA        217EF
+91EB         70A3
+91EC        218BE
+91ED        23599
+91EE         3EC7
+91EF        21885
+91F0        2542F
+91F1        217F8
+91F2         3722
+91F3        216FB
+91F4        21839
+91F5         36E1
+91F6        21774
+91F7        218D1
+91F8        25F4B
+91F9         3723
+91FA        216C0
+91FB         575B
+91FC        24A25
+91FD        213FE
+91FE        212A8
+9240        213C6
+9241        214B6
+9242         8503
+9243        236A6
+9245         8455
+9246        24994
+9247        27165
+9248        23E31
+9249        2555C
+924A        23EFB
+924B        27052
+924C         44F4
+924D        236EE
+924E        2999D
+924F        26F26
+9250         67F9
+9251         3733
+9252         3C15
+9253         3DE7
+9254         586C
+9255        21922
+9256         6810
+9257         4057
+9258        2373F
+9259        240E1
+925A        2408B
+925B        2410F
+925C        26C21
+925D         54CB
+925E         569E
+925F        266B1
+9260         5692
+9261        20FDF
+9262        20BA8
+9263        20E0D
+9264         93C6
+9265        28B13
+9266         939C
+9267         4EF8
+9268         512B
+9269         3819
+926A        24436
+926B         4EBC
+926C        20465
+926D        2037F
+926E         4F4B
+926F         4F8A
+9270        25651
+9271         5A68
+9272        201AB
+9273        203CB
+9274         3999
+9275        2030A
+9276        20414
+9277         3435
+9278         4F29
+9279        202C0
+927A        28EB3
+927B        20275
+927C         8ADA
+927D        2020C
+927E         4E98
+92A1         50CD
+92A2         510D
+92A3         4FA2
+92A4         4F03
+92A5        24A0E
+92A6        23E8A
+92A7         4F42
+92A8         502E
+92A9         506C
+92AA         5081
+92AB         4FCC
+92AC         4FE5
+92AD         5058
+92AE         50FC
+92B3         6E76
+92B4        23595
+92B5        23E39
+92B6        23EBF
+92B7         6D72
+92B8        21884
+92B9        23E89
+92BA         51A8
+92BB         51C3
+92BC        205E0
+92BD         44DD
+92BE        204A3
+92BF        20492
+92C0        20491
+92C1         8D7A
+92C2        28A9C
+92C3        2070E
+92C4         5259
+92C5         52A4
+92C6        20873
+92C7         52E1
+92C9         467A
+92CA         718C
+92CB        2438C
+92CC        20C20
+92CD        249AC
+92CE        210E4
+92CF         69D1
+92D0        20E1D
+92D2         3EDE
+92D3         7499
+92D4         7414
+92D5         7456
+92D6         7398
+92D7         4B8E
+92D8        24ABC
+92D9        2408D
+92DA         53D0
+92DB         3584
+92DC         720F
+92DD        240C9
+92DE         55B4
+92DF        20345
+92E0         54CD
+92E1        20BC6
+92E2         571D
+92E3         925D
+92E4         96F4
+92E5         9366
+92E6         57DD
+92E7         578D
+92E8         577F
+92E9         363E
+92EA         58CB
+92EB         5A99
+92EC        28A46
+92ED        216FA
+92EE        2176F
+92EF        21710
+92F0         5A2C
+92F1         59B8
+92F2         928F
+92F3         5A7E
+92F4         5ACF
+92F5         5A12
+92F6        25946
+92F7        219F3
+92F8        21861
+92F9        24295
+92FA         36F5
+92FB         6D05
+92FC         7443
+92FD         5A21
+92FE        25E83
+9340         5A81
+9341        28BD7
+9342        20413
+9343         93E0
+9344         748C
+9345        21303
+9346         7105
+9347         4972
+9348         9408
+9349        289FB
+934A         93BD
+934B         37A0
+934C         5C1E
+934D         5C9E
+934E         5E5E
+934F         5E48
+9350        21996
+9351        2197C
+9352        23AEE
+9353         5ECD
+9354         5B4F
+9355        21903
+9356        21904
+9357         3701
+9358        218A0
+9359         36DD
+935A        216FE
+935B         36D3
+935C         812A
+935D        28A47
+935E        21DBA
+935F        23472
+9360        289A8
+9361         5F0C
+9362         5F0E
+9363        21927
+9364        217AB
+9365         5A6B
+9366        2173B
+9367         5B44
+9368         8614
+9369        275FD
+936A         8860
+936B         607E
+936C        22860
+936D        2262B
+936E         5FDB
+936F         3EB8
+9370        225AF
+9371        225BE
+9372        29088
+9373        26F73
+9374         61C0
+9375        2003E
+9376        20046
+9377        2261B
+9378         6199
+9379         6198
+937A         6075
+937B        22C9B
+937C        22D07
+937D        246D4
+937E        2914D
+93A1         6471
+93A2        24665
+93A3        22B6A
+93A4         3A29
+93A5        22B22
+93A6        23450
+93A7        298EA
+93A8        22E78
+93A9         6337
+93AA        2A45B
+93AB         64B6
+93AC         6331
+93AD         63D1
+93AE        249E3
+93AF        22D67
+93B0         62A4
+93B1        22CA1
+93B2         643B
+93B3         656B
+93B4         6972
+93B5         3BF4
+93B6        2308E
+93B7        232AD
+93B8        24989
+93B9        232AB
+93BA         550D
+93BB        232E0
+93BC        218D9
+93BD        2943F
+93BE         66CE
+93BF        23289
+93C0        231B3
+93C1         3AE0
+93C2         4190
+93C3        25584
+93C4        28B22
+93C5        2558F
+93C6        216FC
+93C7        2555B
+93C8        25425
+93C9         78EE
+93CA        23103
+93CB        2182A
+93CC        23234
+93CD         3464
+93CE        2320F
+93CF        23182
+93D0        242C9
+93D1         668E
+93D2        26D24
+93D3         666B
+93D4         4B93
+93D5         6630
+93D6        27870
+93D7        21DEB
+93D8         6663
+93D9        232D2
+93DA        232E1
+93DB         661E
+93DC        25872
+93DD         38D1
+93DE        2383A
+93DF        237BC
+93E0         3B99
+93E1        237A2
+93E2        233FE
+93E3         74D0
+93E4         3B96
+93E5         678F
+93E6        2462A
+93E7         68B6
+93E8         681E
+93E9         3BC4
+93EA         6ABE
+93EB         3863
+93EC        237D5
+93ED        24487
+93EE         6A33
+93EF         6A52
+93F0         6AC9
+93F1         6B05
+93F2        21912
+93F3         6511
+93F4         6898
+93F5         6A4C
+93F6         3BD7
+93F7         6A7A
+93F8         6B57
+93F9        23FC0
+93FA        23C9A
+93FB         93A0
+93FC         92F2
+93FD        28BEA
+93FE        28ACB
+9440         9289
+9441        2801E
+9442        289DC
+9443         9467
+9444         6DA5
+9445         6F0B
+9446        249EC
+9448        23F7F
+9449         3D8F
+944A         6E04
+944B        2403C
+944C         5A3D
+944D         6E0A
+944E         5847
+944F         6D24
+9450         7842
+9451         713B
+9452        2431A
+9453        24276
+9454         70F1
+9455         7250
+9456         7287
+9457         7294
+9458        2478F
+9459        24725
+945A         5179
+945B        24AA4
+945C        205EB
+945D         747A
+945E        23EF8
+945F        2365F
+9460        24A4A
+9461        24917
+9462        25FE1
+9463         3F06
+9464         3EB1
+9465        24ADF
+9466        28C23
+9467        23F35
+9468         60A7
+9469         3EF3
+946A         74CC
+946B         743C
+946C         9387
+946D         7437
+946E         449F
+946F        26DEA
+9470         4551
+9471         7583
+9472         3F63
+9473        24CD9
+9474        24D06
+9475         3F58
+9476         7555
+9477         7673
+9478        2A5C6
+9479         3B19
+947A         7468
+947B        28ACC
+947C        249AB
+947D        2498E
+947E         3AFB
+94A1         3DCD
+94A2        24A4E
+94A3         3EFF
+94A4        249C5
+94A5        248F3
+94A6         91FA
+94A7         5732
+94A8         9342
+94A9        28AE3
+94AA        21864
+94AB         50DF
+94AC        25221
+94AD        251E7
+94AE         7778
+94AF        23232
+94B0         770E
+94B1         770F
+94B2         777B
+94B3        24697
+94B4        23781
+94B5         3A5E
+94B6        248F0
+94B7         7438
+94B8         749B
+94B9         3EBF
+94BA        24ABA
+94BB        24AC7
+94BC         40C8
+94BD        24A96
+94BE        261AE
+94BF         9307
+94C0        25581
+94C1         781E
+94C2         788D
+94C3         7888
+94C4         78D2
+94C5         73D0
+94C6         7959
+94C7        27741
+94C8        256E3
+94C9         410E
+94CB         8496
+94CC         79A5
+94CD         6A2D
+94CE        23EFA
+94CF         7A3A
+94D0         79F4
+94D1         416E
+94D2        216E6
+94D3         4132
+94D4         9235
+94D5         79F1
+94D6        20D4C
+94D7        2498C
+94D8        20299
+94D9        23DBA
+94DA        2176E
+94DB         3597
+94DC         556B
+94DD         3570
+94DE         36AA
+94DF        201D4
+94E0        20C0D
+94E1         7AE2
+94E2         5A59
+94E3        226F5
+94E4        25AAF
+94E5        25A9C
+94E6         5A0D
+94E7        2025B
+94E8         78F0
+94E9         5A2A
+94EA        25BC6
+94EB         7AFE
+94EC         41F9
+94ED         7C5D
+94EE         7C6D
+94EF         4211
+94F0        25BB3
+94F1        25EBC
+94F2        25EA6
+94F3         7CCD
+94F4        249F9
+94F5        217B0
+94F6         7C8E
+94F7         7C7C
+94F8         7CAE
+94F9         6AB2
+94FA         7DDC
+94FB         7E07
+94FC         7DD3
+94FD         7F4E
+94FE        26261
+9540        2615C
+9541        27B48
+9542         7D97
+9543        25E82
+9544         426A
+9545        26B75
+9546        20916
+9547         67D6
+9548        2004E
+9549        235CF
+954A         57C4
+954B        26412
+954C        263F8
+954D        24962
+954E         7FDD
+954F         7B27
+9550        2082C
+9551        25AE9
+9552        25D43
+9553         7B0C
+9554        25E0E
+9555         99E6
+9556         8645
+9557         9A63
+9558         6A1C
+9559        2343F
+955A         39E2
+955B        249F7
+955C        265AD
+955D         9A1F
+955E        265A0
+955F         8480
+9560        27127
+9561        26CD1
+9562         44EA
+9563         8137
+9564         4402
+9565         80C6
+9566         8109
+9567         8142
+9568        267B4
+9569         98C3
+956A        26A42
+956B         8262
+956C         8265
+956D        26A51
+956E         8453
+956F        26DA7
+9570         8610
+9571        2721B
+9572         5A86
+9573         417F
+9574        21840
+9575         5B2B
+9576        218A1
+9577         5AE4
+9578        218D8
+9579         86A0
+957A        2F9BC
+957B        23D8F
+957C         882D
+957D        27422
+957E         5A02
+95A1         886E
+95A2         4F45
+95A3         8887
+95A4         88BF
+95A5         88E6
+95A6         8965
+95A7         894D
+95A8        25683
+95A9         8954
+95AA        27785
+95AB        27784
+95AC        28BF5
+95AD        28BD9
+95AE        28B9C
+95AF        289F9
+95B0         3EAD
+95B1         84A3
+95B2         46F5
+95B3         46CF
+95B4         37F2
+95B5         8A3D
+95B6         8A1C
+95B7        29448
+95B8         5F4D
+95B9         922B
+95BA        24284
+95BB         65D4
+95BC         7129
+95BD         70C4
+95BE        21845
+95BF         9D6D
+95C0         8C9F
+95C1         8CE9
+95C2        27DDC
+95C3         599A
+95C4         77C3
+95C5         59F0
+95C6         436E
+95C7         36D4
+95C8         8E2A
+95C9         8EA7
+95CA        24C09
+95CB         8F30
+95CC         8F4A
+95CD         42F4
+95CE         6C58
+95CF         6FBB
+95D0        22321
+95D1         489B
+95D2         6F79
+95D3         6E8B
+95D4        217DA
+95D5         9BE9
+95D6         36B5
+95D7        2492F
+95D8         90BB
+95DA         5571
+95DB         4906
+95DC         91BB
+95DD         9404
+95DE        28A4B
+95DF         4062
+95E0        28AFC
+95E1         9427
+95E2        28C1D
+95E3        28C3B
+95E4         84E5
+95E5         8A2B
+95E6         9599
+95E7         95A7
+95E8         9597
+95E9         9596
+95EA        28D34
+95EB         7445
+95EC         3EC2
+95ED        248FF
+95EE        24A42
+95EF        243EA
+95F0         3EE7
+95F1        23225
+95F2         968F
+95F3        28EE7
+95F4        28E66
+95F5        28E65
+95F6         3ECC
+95F7        249ED
+95F8        24A78
+95F9        23FEE
+95FA         7412
+95FB         746B
+95FC         3EFC
+95FD         9741
+95FE        290B0
+9640         6847
+9641         4A1D
+9642        29093
+9643        257DF
+9645         9368
+9646        28989
+9647        28C26
+9648        28B2F
+9649        263BE
+964A         92BA
+964B         5B11
+964C         8B69
+964D         493C
+964E         73F9
+964F        2421B
+9650         979B
+9651         9771
+9652         9938
+9653        20F26
+9654         5DC1
+9655        28BC5
+9656        24AB2
+9657         981F
+9658        294DA
+9659         92F6
+965A        295D7
+965B         91E5
+965C         44C0
+965D        28B50
+965E        24A67
+965F        28B64
+9660         98DC
+9661        28A45
+9662         3F00
+9663         922A
+9664         4925
+9665         8414
+9666         993B
+9667         994D
+9668        27B06
+9669         3DFD
+966A         999B
+966B         4B6F
+966C         99AA
+966D         9A5C
+966E        28B65
+966F        258C8
+9670         6A8F
+9671         9A21
+9672         5AFE
+9673         9A2F
+9674        298F1
+9675         4B90
+9676        29948
+9677         99BC
+9678         4BBD
+9679         4B97
+967A         937D
+967B         5872
+967C        21302
+967D         5822
+967E        249B8
+96A1        214E8
+96A2         7844
+96A3        2271F
+96A4        23DB8
+96A5         68C5
+96A6         3D7D
+96A7         9458
+96A8         3927
+96A9         6150
+96AA        22781
+96AB        2296B
+96AC         6107
+96AD         9C4F
+96AE         9C53
+96AF         9C7B
+96B0         9C35
+96B1         9C10
+96B2         9B7F
+96B3         9BCF
+96B4        29E2D
+96B5         9B9F
+96B6        2A1F5
+96B7        2A0FE
+96B8         9D21
+96B9         4CAE
+96BA        24104
+96BB         9E18
+96BC         4CB0
+96BD         9D0C
+96BE        2A1B4
+96BF        2A0ED
+96C0        2A0F3
+96C1        2992F
+96C2         9DA5
+96C3         84BD
+96C4        26E12
+96C5        26FDF
+96C6        26B82
+96C7         85FC
+96C8         4533
+96C9        26DA4
+96CA        26E84
+96CB        26DF0
+96CC         8420
+96CD         85EE
+96CE        26E00
+96CF        237D7
+96D0        26064
+96D1         79E2
+96D2        2359C
+96D3        23640
+96D4         492D
+96D5        249DE
+96D6         3D62
+96D7         93DB
+96D8         92BE
+96D9         9348
+96DA        202BF
+96DB         78B9
+96DC         9277
+96DD         944D
+96DE         4FE4
+96DF         3440
+96E0         9064
+96E1        2555D
+96E2         783D
+96E3         7854
+96E4         78B6
+96E5         784B
+96E6        21757
+96E7        231C9
+96E8        24941
+96E9         369A
+96EA         4F72
+96EB         6FDA
+96EC         6FD9
+96EE         701E
+96EF         5414
+96F0        241B5
+96F1         57BB
+96F2         58F3
+96F3         578A
+96F4         9D16
+96F5         57D7
+96F6         7134
+96F7         34AF
+96F8        241AC
+96F9         71EB
+96FA        26C40
+96FB        24F97
+96FD        217B5
+96FE        28A49
+9740         610C
+9741         5ACE
+9742         5A0B
+9743         42BC
+9744        24488
+9745         372C
+9746         4B7B
+9747        289FC
+9748         93BB
+9749         93B8
+974A        218D6
+974B        20F1D
+974C         8472
+974D        26CC0
+974E        21413
+974F        242FA
+9750        22C26
+9751        243C1
+9752         5994
+9753        23DB7
+9754        26741
+9755         7DA8
+9756        2615B
+9757        260A4
+9758        249B9
+9759        2498B
+975A        289FA
+975B         92E5
+975C         73E2
+975D         3EE9
+975E         74B4
+975F        28B63
+9760        2189F
+9761         3EE1
+9762        24AB3
+9763         6AD8
+9764         73F3
+9765         73FB
+9766         3ED6
+9767        24A3E
+9768        24A94
+9769        217D9
+976A        24A66
+976B        203A7
+976C        21424
+976D        249E5
+976E         7448
+976F        24916
+9770         70A5
+9771        24976
+9772         9284
+9773         73E6
+9774         935F
+9775        204FE
+9776         9331
+9777        28ACE
+9778        28A16
+9779         9386
+977A        28BE7
+977B        255D5
+977C         4935
+977D        28A82
+977E         716B
+97A1        24943
+97A2        20CFF
+97A3         56A4
+97A4        2061A
+97A5        20BEB
+97A6        20CB8
+97A7         5502
+97A8         79C4
+97A9        217FA
+97AA         7DFE
+97AB        216C2
+97AC        24A50
+97AD        21852
+97AE         452E
+97AF         9401
+97B0         370A
+97B1        28AC0
+97B2        249AD
+97B3         59B0
+97B4        218BF
+97B5        21883
+97B6        27484
+97B7         5AA1
+97B8         36E2
+97B9        23D5B
+97BA         36B0
+97BB         925F
+97BC         5A79
+97BD        28A81
+97BE        21862
+97BF         9374
+97C0         3CCD
+97C1        20AB4
+97C2         4A96
+97C3         398A
+97C4         50F4
+97C5         3D69
+97C6         3D4C
+97C7        2139C
+97C8         7175
+97C9         42FB
+97CA        28218
+97CB         6E0F
+97CC        290E4
+97CD         44EB
+97CE         6D57
+97CF        27E4F
+97D0         7067
+97D1         6CAF
+97D2         3CD6
+97D3        23FED
+97D4        23E2D
+97D5         6E02
+97D6         6F0C
+97D7         3D6F
+97D8        203F5
+97D9         7551
+97DA         36BC
+97DB         34C8
+97DC         4680
+97DD         3EDA
+97DE         4871
+97DF         59C4
+97E0         926E
+97E1         493E
+97E2         8F41
+97E3        28C1C
+97E4        26BC0
+97E5         5812
+97E6         57C8
+97E7         36D6
+97E8        21452
+97E9         70FE
+97EA        24362
+97EB        24A71
+97EC        22FE3
+97ED        212B0
+97EE        223BD
+97EF         68B9
+97F0         6967
+97F1        21398
+97F2        234E5
+97F3        27BF4
+97F4        236DF
+97F5        28A83
+97F6        237D6
+97F7        233FA
+97F8        24C9F
+97F9         6A1A
+97FA        236AD
+97FB        26CB7
+97FC         843E
+97FD         44DF
+97FE         44CE
+9840        26D26
+9841        26D51
+9842        26C82
+9843        26FDE
+9844         6F17
+9845        27109
+9846         833D
+9847        2173A
+9848         83ED
+9849        26C80
+984A        27053
+984B        217DB
+984C         5989
+984D         5A82
+984E        217B3
+984F         5A61
+9850         5A71
+9851        21905
+9852        241FC
+9853         372D
+9854         59EF
+9855        2173C
+9856         36C7
+9857         718E
+9858         9390
+9859         669A
+985A        242A5
+985B         5A6E
+985C         5A2B
+985D        24293
+985E         6A2B
+985F        23EF9
+9860        27736
+9861        2445B
+9862        242CA
+9863         711D
+9864        24259
+9865        289E1
+9866         4FB0
+9867        26D28
+9868         5CC2
+9869        244CE
+986A        27E4D
+986B        243BD
+986C         6A0C
+986D        24256
+986E        21304
+986F         70A6
+9870         7133
+9871        243E9
+9872         3DA5
+9873         6CDF
+9874        2F825
+9875        24A4F
+9876         7E65
+9877         59EB
+9878         5D2F
+9879         3DF3
+987A         5F5C
+987B        24A5D
+987C        217DF
+987D         7DA4
+987E         8426
+98A1         5485
+98A2        23AFA
+98A3        23300
+98A4        20214
+98A5         577E
+98A6        208D5
+98A7        20619
+98A8         3FE5
+98A9        21F9E
+98AA        2A2B6
+98AB         7003
+98AC        2915B
+98AD         5D70
+98AE         738F
+98AF         7CD3
+98B0        28A59
+98B1        29420
+98B2         4FC8
+98B3         7FE7
+98B4         72CD
+98B5         7310
+98B6        27AF4
+98B7         7338
+98B8         7339
+98B9        256F6
+98BA         7341
+98BB         7348
+98BC         3EA9
+98BD        27B18
+98BE         906C
+98BF         71F5
+98C0        248F2
+98C1         73E1
+98C2         81F6
+98C3         3ECA
+98C4         770C
+98C5         3ED1
+98C6         6CA2
+98C7         56FD
+98C8         7419
+98C9         741E
+98CA         741F
+98CB         3EE2
+98CC         3EF0
+98CD         3EF4
+98CE         3EFA
+98CF         74D3
+98D0         3F0E
+98D1         3F53
+98D2         7542
+98D3         756D
+98D4         7572
+98D5         758D
+98D6         3F7C
+98D7         75C8
+98D8         75DC
+98D9         3FC0
+98DA         764D
+98DB         3FD7
+98DC         7674
+98DD         3FDC
+98DE         767A
+98DF        24F5C
+98E0         7188
+98E1         5623
+98E2         8980
+98E3         5869
+98E4         401D
+98E5         7743
+98E6         4039
+98E7         6761
+98E8         4045
+98E9         35DB
+98EA         7798
+98EB         406A
+98EC         406F
+98ED         5C5E
+98EE         77BE
+98EF         77CB
+98F0         58F2
+98F1         7818
+98F2         70B9
+98F3         781C
+98F4         40A8
+98F5         7839
+98F6         7847
+98F7         7851
+98F8         7866
+98F9         8448
+98FA        25535
+98FB         7933
+98FC         6803
+98FD         7932
+98FE         4103
+9940         4109
+9941         7991
+9942         7999
+9943         8FBB
+9944         7A06
+9945         8FBC
+9946         4167
+9947         7A91
+9948         41B2
+9949         7ABC
+994A         8279
+994B         41C4
+994C         7ACF
+994D         7ADB
+994E         41CF
+994F         4E21
+9950         7B62
+9951         7B6C
+9952         7B7B
+9953         7C12
+9954         7C1B
+9955         4260
+9956         427A
+9957         7C7B
+9958         7C9C
+9959         428C
+995A         7CB8
+995B         4294
+995C         7CED
+995D         8F93
+995E         70C0
+995F        20CCF
+9960         7DCF
+9961         7DD4
+9962         7DD0
+9963         7DFD
+9964         7FAE
+9965         7FB4
+9966         729F
+9967         4397
+9968         8020
+9969         8025
+996A         7B39
+996B         802E
+996C         8031
+996D         8054
+996E         3DCC
+996F         57B4
+9970         70A0
+9971         80B7
+9972         80E9
+9973         43ED
+9974         810C
+9975         732A
+9976         810E
+9977         8112
+9978         7560
+9979         8114
+997A         4401
+997B         3B39
+997C         8156
+997D         8159
+997E         815A
+99A1         4413
+99A2         583A
+99A3         817C
+99A4         8184
+99A5         4425
+99A6         8193
+99A7         442D
+99A8         81A5
+99A9         57EF
+99AA         81C1
+99AB         81E4
+99AC         8254
+99AD         448F
+99AE         82A6
+99AF         8276
+99B0         82CA
+99B1         82D8
+99B2         82FF
+99B3         44B0
+99B4         8357
+99B5         9669
+99B6         698A
+99B7         8405
+99B8         70F5
+99B9         8464
+99BA         60E3
+99BB         8488
+99BC         4504
+99BD         84BE
+99BE         84E1
+99BF         84F8
+99C0         8510
+99C1         8538
+99C2         8552
+99C3         453B
+99C4         856F
+99C5         8570
+99C6         85E0
+99C7         4577
+99C8         8672
+99C9         8692
+99CA         86B2
+99CB         86EF
+99CC         9645
+99CD         878B
+99CE         4606
+99CF         4617
+99D0         88AE
+99D1         88FF
+99D2         8924
+99D3         8947
+99D4         8991
+99D5        27967
+99D6         8A29
+99D7         8A38
+99D8         8A94
+99D9         8AB4
+99DA         8C51
+99DB         8CD4
+99DC         8CF2
+99DD         8D1C
+99DE         4798
+99DF         585F
+99E0         8DC3
+99E1         47ED
+99E2         4EEE
+99E3         8E3A
+99E4         55D8
+99E5         5754
+99E6         8E71
+99E7         55F5
+99E8         8EB0
+99E9         4837
+99EA         8ECE
+99EB         8EE2
+99EC         8EE4
+99ED         8EED
+99EE         8EF2
+99EF         8FB7
+99F0         8FC1
+99F1         8FCA
+99F2         8FCC
+99F3         9033
+99F4         99C4
+99F5         48AD
+99F6         98E0
+99F7         9213
+99F8         491E
+99F9         9228
+99FA         9258
+99FB         926B
+99FC         92B1
+99FD         92AE
+99FE         92BF
+9A40         92E3
+9A41         92EB
+9A42         92F3
+9A43         92F4
+9A44         92FD
+9A45         9343
+9A46         9384
+9A47         93AD
+9A48         4945
+9A49         4951
+9A4A         9EBF
+9A4B         9417
+9A4C         5301
+9A4D         941D
+9A4E         942D
+9A4F         943E
+9A50         496A
+9A51         9454
+9A52         9479
+9A53         952D
+9A54         95A2
+9A55         49A7
+9A56         95F4
+9A57         9633
+9A58         49E5
+9A59         67A0
+9A5A         4A24
+9A5B         9740
+9A5C         4A35
+9A5D         97B2
+9A5E         97C2
+9A5F         5654
+9A60         4AE4
+9A61         60E8
+9A62         98B9
+9A63         4B19
+9A64         98F1
+9A65         5844
+9A66         990E
+9A67         9919
+9A68         51B4
+9A69         991C
+9A6A         9937
+9A6B         9942
+9A6C         995D
+9A6D         9962
+9A6E         4B70
+9A6F         99C5
+9A70         4B9D
+9A71         9A3C
+9A72         9B0F
+9A73         7A83
+9A74         9B69
+9A75         9B81
+9A76         9BDD
+9A77         9BF1
+9A78         9BF4
+9A79         4C6D
+9A7A         9C20
+9A7B         376F
+9A7C        21BC2
+9A7D         9D49
+9A7E         9C3A
+9AA1         9EFE
+9AA2         5650
+9AA3         9D93
+9AA4         9DBD
+9AA5         9DC0
+9AA6         9DFC
+9AA7         94F6
+9AA8         8FB6
+9AA9         9E7B
+9AAA         9EAC
+9AAB         9EB1
+9AAC         9EBD
+9AAD         9EC6
+9AAE         94DC
+9AAF         9EE2
+9AB0         9EF1
+9AB1         9EF8
+9AB2         7AC8
+9AB3         9F44
+9AB4        20094
+9AB5        202B7
+9AB6        203A0
+9AB7         691A
+9AB8         94C3
+9AB9         59AC
+9ABA        204D7
+9ABB         5840
+9ABC         94C1
+9ABD         37B9
+9ABE        205D5
+9ABF        20615
+9AC0        20676
+9AC1        216BA
+9AC2         5757
+9AC3         7173
+9AC4        20AC2
+9AC5        20ACD
+9AC6        20BBF
+9AC7         546A
+9AC8        2F83B
+9AC9        20BCB
+9ACA         549E
+9ACB        20BFB
+9ACC        20C3B
+9ACD        20C53
+9ACE        20C65
+9ACF        20C7C
+9AD0         60E7
+9AD1        20C8D
+9AD2         567A
+9AD3        20CB5
+9AD4        20CDD
+9AD5        20CED
+9AD6        20D6F
+9AD7        20DB2
+9AD8        20DC8
+9AD9         6955
+9ADA         9C2F
+9ADB         87A5
+9ADC        20E04
+9ADD        20E0E
+9ADE        20ED7
+9ADF        20F90
+9AE0        20F2D
+9AE1        20E73
+9AE2         5C20
+9AE3        20FBC
+9AE4         5E0B
+9AE5        2105C
+9AE6        2104F
+9AE7        21076
+9AE8         671E
+9AE9        2107B
+9AEA        21088
+9AEB        21096
+9AEC         3647
+9AED        210BF
+9AEE        210D3
+9AEF        2112F
+9AF0        2113B
+9AF1         5364
+9AF2         84AD
+9AF3        212E3
+9AF4        21375
+9AF5        21336
+9AF6         8B81
+9AF7        21577
+9AF8        21619
+9AF9        217C3
+9AFA        217C7
+9AFB         4E78
+9AFC         70BB
+9AFD        2182D
+9AFE        2196A
+9B40        21A2D
+9B41        21A45
+9B42        21C2A
+9B43        21C70
+9B44        21CAC
+9B45        21EC8
+9B46         62C3
+9B47        21ED5
+9B48        21F15
+9B49         7198
+9B4A         6855
+9B4B        22045
+9B4C         69E9
+9B4D         36C8
+9B4E        2227C
+9B4F        223D7
+9B50        223FA
+9B51        2272A
+9B52        22871
+9B53        2294F
+9B54         82FD
+9B55        22967
+9B56        22993
+9B57        22AD5
+9B58         89A5
+9B59        22AE8
+9B5A         8FA0
+9B5B        22B0E
+9B5C         97B8
+9B5D        22B3F
+9B5E         9847
+9B5F         9ABD
+9B60        22C4C
+9B62        22C88
+9B63        22CB7
+9B64        25BE8
+9B65        22D08
+9B66        22D12
+9B67        22DB7
+9B68        22D95
+9B69        22E42
+9B6A        22F74
+9B6B        22FCC
+9B6C        23033
+9B6D        23066
+9B6E        2331F
+9B6F        233DE
+9B70         5FB1
+9B71         6648
+9B72         66BF
+9B73        27A79
+9B74        23567
+9B75        235F3
+9B77        249BA
+9B79        2361A
+9B7A        23716
+9B7C        20346
+9B7D         58B5
+9B7E         670E
+9BA1         6918
+9BA2        23AA7
+9BA3        27657
+9BA4        25FE2
+9BA5        23E11
+9BA6        23EB9
+9BA7        275FE
+9BA8        2209A
+9BA9         48D0
+9BAA         4AB8
+9BAB        24119
+9BAC        28A9A
+9BAD        242EE
+9BAE        2430D
+9BAF        2403B
+9BB0        24334
+9BB1        24396
+9BB2        24A45
+9BB3        205CA
+9BB4         51D2
+9BB5        20611
+9BB6         599F
+9BB7        21EA8
+9BB8         3BBE
+9BB9        23CFF
+9BBA        24404
+9BBB        244D6
+9BBC         5788
+9BBD        24674
+9BBE         399B
+9BBF        2472F
+9BC0        285E8
+9BC1        299C9
+9BC2         3762
+9BC3        221C3
+9BC4         8B5E
+9BC5        28B4E
+9BC7        24812
+9BC8        248FB
+9BC9        24A15
+9BCA         7209
+9BCB        24AC0
+9BCC        20C78
+9BCD         5965
+9BCE        24EA5
+9BCF        24F86
+9BD0        20779
+9BD1         8EDA
+9BD2        2502C
+9BD3         528F
+9BD4         573F
+9BD5         7171
+9BD6        25299
+9BD7        25419
+9BD8        23F4A
+9BD9        24AA7
+9BDA         55BC
+9BDB        25446
+9BDC        2546E
+9BDD        26B52
+9BDF         3473
+9BE0        2553F
+9BE1        27632
+9BE2        2555E
+9BE3         4718
+9BE4        25562
+9BE5        25566
+9BE6        257C7
+9BE7        2493F
+9BE8        2585D
+9BE9         5066
+9BEA         34FB
+9BEB        233CC
+9BED        25903
+9BEE         477C
+9BEF        28948
+9BF0        25AAE
+9BF1        25B89
+9BF2        25C06
+9BF3        21D90
+9BF4         57A1
+9BF5         7151
+9BF7        26102
+9BF8        27C12
+9BF9         9056
+9BFA        261B2
+9BFB        24F9A
+9BFC         8B62
+9BFD        26402
+9BFE        2644A
+9C40         5D5B
+9C41        26BF7
+9C43        26484
+9C44        2191C
+9C45         8AEA
+9C46        249F6
+9C47        26488
+9C48        23FEF
+9C49        26512
+9C4A         4BC0
+9C4B        265BF
+9C4C        266B5
+9C4D        2271B
+9C4E         9465
+9C4F        257E1
+9C50         6195
+9C51         5A27
+9C52        2F8CD
+9C54         56B9
+9C55        24521
+9C56        266FC
+9C57         4E6A
+9C58        24934
+9C59         9656
+9C5A         6D8F
+9C5B        26CBD
+9C5C         3618
+9C5D         8977
+9C5E        26799
+9C5F        2686E
+9C60        26411
+9C61        2685E
+9C63        268C7
+9C64         7B42
+9C65        290C0
+9C66        20A11
+9C67        26926
+9C69        26939
+9C6A         7A45
+9C6C        269FA
+9C6D         9A26
+9C6E        26A2D
+9C6F         365F
+9C70        26469
+9C71        20021
+9C72         7983
+9C73        26A34
+9C74        26B5B
+9C75         5D2C
+9C76        23519
+9C78        26B9D
+9C79         46D0
+9C7A        26CA4
+9C7B         753B
+9C7C         8865
+9C7D        26DAE
+9C7E         58B6
+9CA1         371C
+9CA2        2258D
+9CA3        2704B
+9CA4        271CD
+9CA5         3C54
+9CA6        27280
+9CA7        27285
+9CA8         9281
+9CA9        2217A
+9CAA        2728B
+9CAB         9330
+9CAC        272E6
+9CAD        249D0
+9CAE         6C39
+9CAF         949F
+9CB0        27450
+9CB1        20EF8
+9CB2         8827
+9CB3         88F5
+9CB4        22926
+9CB5        28473
+9CB6        217B1
+9CB7         6EB8
+9CB8        24A2A
+9CB9        21820
+9CBA         39A4
+9CBB         36B9
+9CBE         453F
+9CBF         66B6
+9CC0        29CAD
+9CC1        298A4
+9CC2         8943
+9CC3        277CC
+9CC4        27858
+9CC5         56D6
+9CC6         40DF
+9CC7        2160A
+9CC8         39A1
+9CC9        2372F
+9CCA        280E8
+9CCB        213C5
+9CCC         71AD
+9CCD         8366
+9CCE        279DD
+9CCF        291A8
+9CD1         4CB7
+9CD2        270AF
+9CD3        289AB
+9CD4        279FD
+9CD5        27A0A
+9CD6        27B0B
+9CD7        27D66
+9CD8        2417A
+9CD9         7B43
+9CDA         797E
+9CDB        28009
+9CDC         6FB5
+9CDD        2A2DF
+9CDE         6A03
+9CDF        28318
+9CE0         53A2
+9CE1        26E07
+9CE2         93BF
+9CE3         6836
+9CE4         975D
+9CE5        2816F
+9CE6        28023
+9CE7        269B5
+9CE8        213ED
+9CE9        2322F
+9CEA        28048
+9CEB         5D85
+9CEC        28C30
+9CED        28083
+9CEE         5715
+9CEF         9823
+9CF0        28949
+9CF1         5DAB
+9CF2        24988
+9CF3         65BE
+9CF4         69D5
+9CF5         53D2
+9CF6        24AA5
+9CF7        23F81
+9CF8         3C11
+9CF9         6736
+9CFA        28090
+9CFB        280F4
+9CFC        2812E
+9CFD        21FA1
+9CFE        2814F
+9D40        28189
+9D41        281AF
+9D42        2821A
+9D43        28306
+9D44        2832F
+9D45        2838A
+9D46         35CA
+9D47        28468
+9D48        286AA
+9D49         48FA
+9D4A         63E6
+9D4B        28956
+9D4C         7808
+9D4D         9255
+9D4E        289B8
+9D4F         43F2
+9D50        289E7
+9D51         43DF
+9D52        289E8
+9D53        28B46
+9D54        28BD4
+9D55         59F8
+9D56        28C09
+9D58        28FC5
+9D59        290EC
+9D5B        29110
+9D5C        2913C
+9D5D         3DF7
+9D5E        2915E
+9D5F        24ACA
+9D60         8FD0
+9D61         728F
+9D62         568B
+9D63        294E7
+9D64        295E9
+9D65        295B0
+9D66        295B8
+9D67        29732
+9D68        298D1
+9D69        29949
+9D6A        2996A
+9D6B        299C3
+9D6C        29A28
+9D6D        29B0E
+9D6E        29D5A
+9D6F        29D9B
+9D70         7E9F
+9D71        29EF8
+9D72        29F23
+9D73         4CA4
+9D74         9547
+9D75        2A293
+9D76         71A2
+9D77        2A2FF
+9D78         4D91
+9D79         9012
+9D7A        2A5CB
+9D7B         4D9C
+9D7C        20C9C
+9D7D         8FBE
+9D7E         55C1
+9DA1         8FBA
+9DA2        224B0
+9DA3         8FB9
+9DA4        24A93
+9DA5         4509
+9DA6         7E7F
+9DA7         6F56
+9DA8         6AB1
+9DA9         4EEA
+9DAA         34E4
+9DAB        28B2C
+9DAC        2789D
+9DAD         373A
+9DAE         8E80
+9DAF        217F5
+9DB0        28024
+9DB1        28B6C
+9DB2        28B99
+9DB3        27A3E
+9DB4        266AF
+9DB5         3DEB
+9DB6        27655
+9DB7        23CB7
+9DB8        25635
+9DB9        25956
+9DBA         4E9A
+9DBB        25E81
+9DBC        26258
+9DBD         56BF
+9DBE        20E6D
+9DBF         8E0E
+9DC0         5B6D
+9DC1        23E88
+9DC2        24C9E
+9DC3         63DE
+9DC5        217F6
+9DC6        2187B
+9DC7         6530
+9DC8         562D
+9DC9        25C4A
+9DCA         541A
+9DCB        25311
+9DCC         3DC6
+9DCD        29D98
+9DCE         4C7D
+9DCF         5622
+9DD0         561E
+9DD1         7F49
+9DD2        25ED8
+9DD3         5975
+9DD4        23D40
+9DD5         8770
+9DD6         4E1C
+9DD7        20FEA
+9DD8        20D49
+9DD9        236BA
+9DDA         8117
+9DDB         9D5E
+9DDC         8D18
+9DDD         763B
+9DDE         9C45
+9DDF         764E
+9DE0         77B9
+9DE1         9345
+9DE2         5432
+9DE3         8148
+9DE4         82F7
+9DE5         5625
+9DE6         8132
+9DE7         8418
+9DE8         80BD
+9DE9         55EA
+9DEA         7962
+9DEB         5643
+9DEC         5416
+9DED        20E9D
+9DEE         35CE
+9DEF         5605
+9DF0         55F1
+9DF1         66F1
+9DF2        282E2
+9DF3         362D
+9DF4         7534
+9DF5         55F0
+9DF6         55BA
+9DF7         5497
+9DF8         5572
+9DF9        20C41
+9DFA        20C96
+9DFB         5ED0
+9DFC        25148
+9DFD        20E76
+9DFE        22C62
+9E40        20EA2
+9E41         9EAB
+9E42         7D5A
+9E43         55DE
+9E44        21075
+9E45         629D
+9E46         976D
+9E47         5494
+9E48         8CCD
+9E49         71F6
+9E4A         9176
+9E4B         63FC
+9E4C         63B9
+9E4D         63FE
+9E4E         5569
+9E4F        22B43
+9E50         9C72
+9E51        22EB3
+9E52         519A
+9E53         34DF
+9E54        20DA7
+9E55         51A7
+9E56         544D
+9E57         551E
+9E58         5513
+9E59         7666
+9E5A         8E2D
+9E5B        2688A
+9E5C         75B1
+9E5D         80B6
+9E5E         8804
+9E5F         8786
+9E60         88C7
+9E61         81B6
+9E62         841C
+9E63        210C1
+9E64         44EC
+9E65         7304
+9E66        24706
+9E67         5B90
+9E68         830B
+9E69        26893
+9E6A         567B
+9E6B        226F4
+9E6C        27D2F
+9E6D        241A3
+9E6E        27D73
+9E6F        26ED0
+9E70        272B6
+9E71         9170
+9E72        211D9
+9E73         9208
+9E74        23CFC
+9E75        2A6A9
+9E76        20EAC
+9E77        20EF9
+9E78         7266
+9E79        21CA2
+9E7A         474E
+9E7B        24FC2
+9E7C        27FF9
+9E7D        20FEB
+9E7E         40FA
+9EA1         9C5D
+9EA2         651F
+9EA3        22DA0
+9EA4         48F3
+9EA5        247E0
+9EA6        29D7C
+9EA7        20FEC
+9EA8        20E0A
+9EAA        275A3
+9EAB        20FED
+9EAD        26048
+9EAE        21187
+9EAF         71A3
+9EB0         7E8E
+9EB1         9D50
+9EB2         4E1A
+9EB3         4E04
+9EB4         3577
+9EB5         5B0D
+9EB6         6CB2
+9EB7         5367
+9EB8         36AC
+9EB9         39DC
+9EBA         537D
+9EBB         36A5
+9EBC        24618
+9EBD         589A
+9EBE        24B6E
+9EBF         822D
+9EC0         544B
+9EC1         57AA
+9EC2        25A95
+9EC3        20979
+9EC5         3A52
+9EC6        22465
+9EC7         7374
+9EC8        29EAC
+9EC9         4D09
+9ECA         9BED
+9ECB        23CFE
+9ECC        29F30
+9ECD         4C5B
+9ECE        24FA9
+9ECF        2959E
+9ED0        29FDE
+9ED1         845C
+9ED2        23DB6
+9ED3        272B2
+9ED4        267B3
+9ED5        23720
+9ED6         632E
+9ED7         7D25
+9ED8        23EF7
+9ED9        23E2C
+9EDA         3A2A
+9EDB         9008
+9EDC         52CC
+9EDD         3E74
+9EDE         367A
+9EDF         45E9
+9EE0        2048E
+9EE1         7640
+9EE2         5AF0
+9EE3        20EB6
+9EE4         787A
+9EE5        27F2E
+9EE6         58A7
+9EE7         40BF
+9EE8         567C
+9EE9         9B8B
+9EEA         5D74
+9EEB         7654
+9EEC        2A434
+9EED         9E85
+9EEE         4CE1
+9EF0         37FB
+9EF1         6119
+9EF2        230DA
+9EF3        243F2
+9EF5         565D
+9EF6        212A9
+9EF7         57A7
+9EF8        24963
+9EF9        29E06
+9EFA         5234
+9EFB        270AE
+9EFC         35AD
+9EFE         9D7C
+9F40         7C56
+9F41         9B39
+9F42         57DE
+9F43        2176C
+9F44         5C53
+9F45         64D3
+9F46        294D0
+9F47        26335
+9F48        27164
+9F49         86AD
+9F4A        20D28
+9F4B        26D22
+9F4C        24AE2
+9F4D        20D71
+9F4F         51FE
+9F50        21F0F
+9F51         5D8E
+9F52         9703
+9F53        21DD1
+9F54         9E81
+9F55         904C
+9F56         7B1F
+9F57         9B02
+9F58         5CD1
+9F59         7BA3
+9F5A         6268
+9F5B         6335
+9F5C         9AFF
+9F5D         7BCF
+9F5E         9B2A
+9F5F         7C7E
+9F61         7C42
+9F62         7C86
+9F63         9C15
+9F64         7BFC
+9F65         9B09
+9F67         9C1B
+9F68        2493E
+9F69         9F5A
+9F6A         5573
+9F6B         5BC3
+9F6C         4FFD
+9F6D         9E98
+9F6E         4FF2
+9F6F         5260
+9F70         3E06
+9F71         52D1
+9F72         5767
+9F73         5056
+9F74         59B7
+9F75         5E12
+9F76         97C8
+9F77         9DAB
+9F78         8F5C
+9F79         5469
+9F7A         97B4
+9F7B         9940
+9F7C         97BA
+9F7D         532C
+9F7E         6130
+9FA1         692C
+9FA2         53DA
+9FA3         9C0A
+9FA4         9D02
+9FA5         4C3B
+9FA6         9641
+9FA7         6980
+9FA8         50A6
+9FA9         7546
+9FAA        2176D
+9FAB         99DA
+9FAC         5273
+9FAE         9159
+9FAF         9681
+9FB0         915C
+9FB2         9151
+9FB3        28E97
+9FB4         637F
+9FB5        26D23
+9FB6         6ACA
+9FB7         5611
+9FB8         918E
+9FB9         757A
+9FBA         6285
+9FBB        203FC
+9FBC         734F
+9FBD         7C70
+9FBE        25C21
+9FBF        23CFD
+9FC1        24919
+9FC2         76D6
+9FC3         9B9D
+9FC4         4E2A
+9FC5        20CD4
+9FC6         83BE
+9FC7         8842
+9FC9         5C4A
+9FCA         69C0
+9FCC         577A
+9FCD         521F
+9FCE         5DF5
+9FCF         4ECE
+9FD0         6C31
+9FD1        201F2
+9FD2         4F39
+9FD3         549C
+9FD4         54DA
+9FD5         529A
+9FD6         8D82
+9FD7         35FE
+9FD9         35F3
+9FDB         6B52
+9FDC         917C
+9FDD         9FA5
+9FDE         9B97
+9FDF         982E
+9FE0         98B4
+9FE1         9ABA
+9FE2         9EA8
+9FE3         9E84
+9FE4         717A
+9FE5         7B14
+9FE7         6BFA
+9FE8         8818
+9FE9         7F78
+9FEB         5620
+9FEC        2A64A
+9FED         8E77
+9FEE         9F53
+9FF0         8DD4
+9FF1         8E4F
+9FF2         9E1C
+9FF3         8E01
+9FF4         6282
+9FF5        2837D
+9FF6         8E28
+9FF7         8E75
+9FF8         7AD3
+9FF9        24A77
+9FFA         7A3E
+9FFB         78D8
+9FFC         6CEA
+9FFD         8A67
+9FFE         7607
+A040        28A5A
+A041         9F26
+A042         6CCE
+A043         87D6
+A044         75C3
+A045        2A2B2
+A046         7853
+A047        2F840
+A048         8D0C
+A049         72E2
+A04A         7371
+A04B         8B2D
+A04C         7302
+A04D         74F1
+A04E         8CEB
+A04F        24ABB
+A050         862F
+A051         5FBA
+A052         88A0
+A053         44B7
+A055        2183B
+A056        26E05
+A058         8A7E
+A059        2251B
+A05B         60FD
+A05C         7667
+A05D         9AD7
+A05E         9D44
+A05F         936E
+A060         9B8F
+A061         87F5
+A064         8CF7
+A065         732C
+A066         9721
+A067         9BB0
+A068         35D6
+A069         72B2
+A06A         4C07
+A06B         7C51
+A06C         994A
+A06D        26159
+A06E         6159
+A06F         4C04
+A070         9E96
+A071         617D
+A073         575F
+A074         616F
+A075         62A6
+A076         6239
+A078         3A5C
+A079         61E2
+A07A         53AA
+A07B        233F5
+A07C         6364
+A07D         6802
+A07E         35D2
+A0A1         5D57
+A0A2        28BC2
+A0A3         8FDA
+A0A4        28E39
+A0A6         50D9
+A0A7        21D46
+A0A8         7906
+A0A9         5332
+A0AA         9638
+A0AB        20F3B
+A0AC         4065
+A0AE         77FE
+A0B0         7CC2
+A0B1        25F1A
+A0B2         7CDA
+A0B3         7A2D
+A0B4         8066
+A0B5         8063
+A0B6         7D4D
+A0B7         7505
+A0B8         74F2
+A0B9         8994
+A0BA         821A
+A0BB         670C
+A0BC         8062
+A0BD        27486
+A0BE         805B
+A0BF         74F0
+A0C0         8103
+A0C1         7724
+A0C2         8989
+A0C3        267CC
+A0C4         7553
+A0C5        26ED1
+A0C6         87A9
+A0C7         87CE
+A0C8         81C8
+A0C9         878C
+A0CA         8A49
+A0CB         8CAD
+A0CC         8B43
+A0CD         772B
+A0CE         74F8
+A0CF         84DA
+A0D0         3635
+A0D1         69B2
+A0D2         8DA6
+A0D4         89A9
+A0D6         6DB9
+A0D7         87C1
+A0D8        24011
+A0D9         74E7
+A0DA         3DDB
+A0DB         7176
+A0DC         60A4
+A0DD         619C
+A0DE         3CD1
+A0E0         6077
+A0E2         7F71
+A0E3        28B2D
+A0E5         60E9
+A0E6         4B7E
+A0E7         5220
+A0E8         3C18
+A0E9        23CC7
+A0EA        25ED7
+A0EB        27656
+A0EC        25531
+A0ED        21944
+A0EE        212FE
+A0EF        29903
+A0F0        26DDC
+A0F1        270AD
+A0F2         5CC1
+A0F3        261AD
+A0F4        28A0F
+A0F5        23677
+A0F6        200EE
+A0F7        26846
+A0F8        24F0E
+A0F9         4562
+A0FA         5B1F
+A0FB        2634C
+A0FC         9F50
+A0FD         9EA6
+A0FE        2626B
+C6A1         2460
+C6A2         2461
+C6A3         2462
+C6A4         2463
+C6A5         2464
+C6A6         2465
+C6A7         2466
+C6A8         2467
+C6A9         2468
+C6AA         2469
+C6AB         2474
+C6AC         2475
+C6AD         2476
+C6AE         2477
+C6AF         2478
+C6B0         2479
+C6B1         247A
+C6B2         247B
+C6B3         247C
+C6B4         247D
+C6B5         2170
+C6B6         2171
+C6B7         2172
+C6B8         2173
+C6B9         2174
+C6BA         2175
+C6BB         2176
+C6BC         2177
+C6BD         2178
+C6BE         2179
+C6BF         4E36
+C6C0         4E3F
+C6C1         4E85
+C6C2         4EA0
+C6C3         5182
+C6C4         5196
+C6C5         51AB
+C6C6         52F9
+C6C7         5338
+C6C8         5369
+C6C9         53B6
+C6CA         590A
+C6CB         5B80
+C6CC         5DDB
+C6CD         2F33
+C6CE         5E7F
+C6D0         5F50
+C6D1         5F61
+C6D2         6534
+C6D4         7592
+C6D6         8FB5
+C6D8         00A8
+C6D9         02C6
+C6DA         30FD
+C6DB         30FE
+C6DC         309D
+C6DD         309E
+C6E0         3005
+C6E1         3006
+C6E2         3007
+C6E3         30FC
+C6E4         FF3B
+C6E5         FF3D
+C6E6         273D
+C6E7         3041
+C6E8         3042
+C6E9         3043
+C6EA         3044
+C6EB         3045
+C6EC         3046
+C6ED         3047
+C6EE         3048
+C6EF         3049
+C6F0         304A
+C6F1         304B
+C6F2         304C
+C6F3         304D
+C6F4         304E
+C6F5         304F
+C6F6         3050
+C6F7         3051
+C6F8         3052
+C6F9         3053
+C6FA         3054
+C6FB         3055
+C6FC         3056
+C6FD         3057
+C6FE         3058
+C740         3059
+C741         305A
+C742         305B
+C743         305C
+C744         305D
+C745         305E
+C746         305F
+C747         3060
+C748         3061
+C749         3062
+C74A         3063
+C74B         3064
+C74C         3065
+C74D         3066
+C74E         3067
+C74F         3068
+C750         3069
+C751         306A
+C752         306B
+C753         306C
+C754         306D
+C755         306E
+C756         306F
+C757         3070
+C758         3071
+C759         3072
+C75A         3073
+C75B         3074
+C75C         3075
+C75D         3076
+C75E         3077
+C75F         3078
+C760         3079
+C761         307A
+C762         307B
+C763         307C
+C764         307D
+C765         307E
+C766         307F
+C767         3080
+C768         3081
+C769         3082
+C76A         3083
+C76B         3084
+C76C         3085
+C76D         3086
+C76E         3087
+C76F         3088
+C770         3089
+C771         308A
+C772         308B
+C773         308C
+C774         308D
+C775         308E
+C776         308F
+C777         3090
+C778         3091
+C779         3092
+C77A         3093
+C77B         30A1
+C77C         30A2
+C77D         30A3
+C77E         30A4
+C7A1         30A5
+C7A2         30A6
+C7A3         30A7
+C7A4         30A8
+C7A5         30A9
+C7A6         30AA
+C7A7         30AB
+C7A8         30AC
+C7A9         30AD
+C7AA         30AE
+C7AB         30AF
+C7AC         30B0
+C7AD         30B1
+C7AE         30B2
+C7AF         30B3
+C7B0         30B4
+C7B1         30B5
+C7B2         30B6
+C7B3         30B7
+C7B4         30B8
+C7B5         30B9
+C7B6         30BA
+C7B7         30BB
+C7B8         30BC
+C7B9         30BD
+C7BA         30BE
+C7BB         30BF
+C7BC         30C0
+C7BD         30C1
+C7BE         30C2
+C7BF         30C3
+C7C0         30C4
+C7C1         30C5
+C7C2         30C6
+C7C3         30C7
+C7C4         30C8
+C7C5         30C9
+C7C6         30CA
+C7C7         30CB
+C7C8         30CC
+C7C9         30CD
+C7CA         30CE
+C7CB         30CF
+C7CC         30D0
+C7CD         30D1
+C7CE         30D2
+C7CF         30D3
+C7D0         30D4
+C7D1         30D5
+C7D2         30D6
+C7D3         30D7
+C7D4         30D8
+C7D5         30D9
+C7D6         30DA
+C7D7         30DB
+C7D8         30DC
+C7D9         30DD
+C7DA         30DE
+C7DB         30DF
+C7DC         30E0
+C7DD         30E1
+C7DE         30E2
+C7DF         30E3
+C7E0         30E4
+C7E1         30E5
+C7E2         30E6
+C7E3         30E7
+C7E4         30E8
+C7E5         30E9
+C7E6         30EA
+C7E7         30EB
+C7E8         30EC
+C7E9         30ED
+C7EA         30EE
+C7EB         30EF
+C7EC         30F0
+C7ED         30F1
+C7EE         30F2
+C7EF         30F3
+C7F0         30F4
+C7F1         30F5
+C7F2         30F6
+C7F3         0410
+C7F4         0411
+C7F5         0412
+C7F6         0413
+C7F7         0414
+C7F8         0415
+C7F9         0401
+C7FA         0416
+C7FB         0417
+C7FC         0418
+C7FD         0419
+C7FE         041A
+C840         041B
+C841         041C
+C842         041D
+C843         041E
+C844         041F
+C845         0420
+C846         0421
+C847         0422
+C848         0423
+C849         0424
+C84A         0425
+C84B         0426
+C84C         0427
+C84D         0428
+C84E         0429
+C84F         042A
+C850         042B
+C851         042C
+C852         042D
+C853         042E
+C854         042F
+C855         0430
+C856         0431
+C857         0432
+C858         0433
+C859         0434
+C85A         0435
+C85B         0451
+C85C         0436
+C85D         0437
+C85E         0438
+C85F         0439
+C860         043A
+C861         043B
+C862         043C
+C863         043D
+C864         043E
+C865         043F
+C866         0440
+C867         0441
+C868         0442
+C869         0443
+C86A         0444
+C86B         0445
+C86C         0446
+C86D         0447
+C86E         0448
+C86F         0449
+C870         044A
+C871         044B
+C872         044C
+C873         044D
+C874         044E
+C875         044F
+C876         21E7
+C877         21B8
+C878         21B9
+C879         31CF
+C87A        200CC
+C87B         4E5A
+C87C        2008A
+C87D         5202
+C87E         4491
+C8A1         9FB0
+C8A2         5188
+C8A3         9FB1
+C8A4        27607
+C8CD         FFE2
+C8CE         FFE4
+C8CF         FF07
+C8D0         FF02
+C8D1         3231
+C8D2         2116
+C8D3         2121
+C8D4         309B
+C8D5         309C
+C8D6         2E80
+C8D7         2E84
+C8D8         2E86
+C8D9         2E87
+C8DA         2E88
+C8DB         2E8A
+C8DC         2E8C
+C8DD         2E8D
+C8DE         2E95
+C8DF         2E9C
+C8E0         2E9D
+C8E1         2EA5
+C8E2         2EA7
+C8E3         2EAA
+C8E4         2EAC
+C8E5         2EAE
+C8E6         2EB6
+C8E7         2EBC
+C8E8         2EBE
+C8E9         2EC6
+C8EA         2ECA
+C8EB         2ECC
+C8EC         2ECD
+C8ED         2ECF
+C8EE         2ED6
+C8EF         2ED7
+C8F0         2EDE
+C8F1         2EE3
+C8F5         0283
+C8F6         0250
+C8F7         025B
+C8F8         0254
+C8F9         0275
+C8FA         0153
+C8FB         00F8
+C8FC         014B
+C8FD         028A
+C8FE         026A
+F9D6         7881
+F9D7         92B9
+F9D8         88CF
+F9D9         58BB
+F9DA         6052
+F9DB         7CA7
+F9DC         5AFA
+F9DD         2554
+F9DE         2566
+F9DF         2557
+F9E0         2560
+F9E1         256C
+F9E2         2563
+F9E3         255A
+F9E4         2569
+F9E5         255D
+F9E6         2552
+F9E7         2564
+F9E8         2555
+F9E9         255E
+F9EA         256A
+F9EB         2561
+F9EC         2558
+F9ED         2567
+F9EE         255B
+F9EF         2553
+F9F0         2565
+F9F1         2556
+F9F2         255F
+F9F3         256B
+F9F4         2562
+F9F5         2559
+F9F6         2568
+F9F7         255C
+F9F8         2551
+F9F9         2550
+F9FA         256D
+F9FB         256E
+F9FC         2570
+F9FD         256F
+F9FE         FFED
+FA40        20547
+FA41         92DB
+FA42        205DF
+FA43        23FC5
+FA44         854C
+FA45         42B5
+FA46         73EF
+FA47         51B5
+FA48         3649
+FA49        24942
+FA4A        289E4
+FA4B         9344
+FA4C        219DB
+FA4D         82EE
+FA4E        23CC8
+FA4F         783C
+FA50         6744
+FA51         62DF
+FA52        24933
+FA53        289AA
+FA54        202A0
+FA55        26BB3
+FA56        21305
+FA57         4FAB
+FA58        224ED
+FA59         5008
+FA5A        26D29
+FA5B        27A84
+FA5C        23600
+FA5D        24AB1
+FA5E        22513
+FA60        2037E
+FA61         5FA4
+FA62        20380
+FA63        20347
+FA64         6EDB
+FA65        2041F
+FA67         5101
+FA68         347A
+FA69         510E
+FA6A         986C
+FA6B         3743
+FA6C         8416
+FA6D        249A4
+FA6E        20487
+FA6F         5160
+FA70        233B4
+FA71         516A
+FA72        20BFF
+FA73        220FC
+FA74        202E5
+FA75        22530
+FA76        2058E
+FA77        23233
+FA78        21983
+FA79         5B82
+FA7A         877D
+FA7B        205B3
+FA7C        23C99
+FA7D         51B2
+FA7E         51B8
+FAA1         9D34
+FAA2         51C9
+FAA3         51CF
+FAA4         51D1
+FAA5         3CDC
+FAA6         51D3
+FAA7        24AA6
+FAA8         51B3
+FAA9         51E2
+FAAA         5342
+FAAB         51ED
+FAAC         83CD
+FAAD         693E
+FAAE        2372D
+FAAF         5F7B
+FAB0         520B
+FAB1         5226
+FAB2         523C
+FAB3         52B5
+FAB4         5257
+FAB5         5294
+FAB6         52B9
+FAB7         52C5
+FAB8         7C15
+FAB9         8542
+FABA         52E0
+FABB         860D
+FABC        26B13
+FABE        28ADE
+FABF         5549
+FAC0         6ED9
+FAC1        23F80
+FAC2        20954
+FAC3        23FEC
+FAC4         5333
+FAC6        20BE2
+FAC7         6CCB
+FAC8        21726
+FAC9         681B
+FACA         73D5
+FACB         604A
+FACC         3EAA
+FACD         38CC
+FACE        216E8
+FACF         71DD
+FAD0         44A2
+FAD1         536D
+FAD2         5374
+FAD3        286AB
+FAD4         537E
+FAD6        21596
+FAD7        21613
+FAD8         77E6
+FAD9         5393
+FADA        28A9B
+FADB         53A0
+FADC         53AB
+FADD         53AE
+FADE         73A7
+FADF        25772
+FAE0         3F59
+FAE1         739C
+FAE2         53C1
+FAE3         53C5
+FAE4         6C49
+FAE5         4E49
+FAE6         57FE
+FAE7         53D9
+FAE8         3AAB
+FAE9        20B8F
+FAEA         53E0
+FAEB        23FEB
+FAEC        22DA3
+FAED         53F6
+FAEE        20C77
+FAEF         5413
+FAF0         7079
+FAF1         552B
+FAF2         6657
+FAF3         6D5B
+FAF4         546D
+FAF5        26B53
+FAF6        20D74
+FAF7         555D
+FAF8         548F
+FAF9         54A4
+FAFA         47A6
+FAFB        2170D
+FAFC        20EDD
+FAFD         3DB4
+FAFE        20D4D
+FB40        289BC
+FB41        22698
+FB42         5547
+FB43         4CED
+FB44         542F
+FB45         7417
+FB46         5586
+FB47         55A9
+FB49        218D7
+FB4A        2403A
+FB4B         4552
+FB4C        24435
+FB4D         66B3
+FB4E        210B4
+FB4F         5637
+FB50         66CD
+FB51        2328A
+FB52         66A4
+FB53         66AD
+FB54         564D
+FB55         564F
+FB56         78F1
+FB57         56F1
+FB58         9787
+FB59         53FE
+FB5A         5700
+FB5B         56EF
+FB5C         56ED
+FB5D        28B66
+FB5E         3623
+FB5F        2124F
+FB60         5746
+FB61        241A5
+FB62         6C6E
+FB63         708B
+FB64         5742
+FB65         36B1
+FB66        26C7E
+FB67         57E6
+FB68        21416
+FB69         5803
+FB6A        21454
+FB6B        24363
+FB6C         5826
+FB6D        24BF5
+FB6E         585C
+FB6F         58AA
+FB70         3561
+FB71         58E0
+FB72         58DC
+FB73        2123C
+FB74         58FB
+FB75         5BFF
+FB76         5743
+FB77        2A150
+FB78        24278
+FB79         93D3
+FB7A         35A1
+FB7B         591F
+FB7C         68A6
+FB7D         36C3
+FB7E         6E59
+FBA1        2163E
+FBA2         5A24
+FBA3         5553
+FBA4        21692
+FBA5         8505
+FBA6         59C9
+FBA7        20D4E
+FBA8        26C81
+FBA9        26D2A
+FBAA        217DC
+FBAB         59D9
+FBAC        217FB
+FBAD        217B2
+FBAE        26DA6
+FBAF         6D71
+FBB0        21828
+FBB1        216D5
+FBB2         59F9
+FBB3        26E45
+FBB4         5AAB
+FBB5         5A63
+FBB6         36E6
+FBB7        249A9
+FBB9         3708
+FBBA         5A96
+FBBB         7465
+FBBC         5AD3
+FBBD        26FA1
+FBBE        22554
+FBBF         3D85
+FBC0        21911
+FBC1         3732
+FBC2        216B8
+FBC3         5E83
+FBC4         52D0
+FBC5         5B76
+FBC6         6588
+FBC7         5B7C
+FBC8        27A0E
+FBC9         4004
+FBCA         485D
+FBCB        20204
+FBCC         5BD5
+FBCD         6160
+FBCE        21A34
+FBCF        259CC
+FBD0        205A5
+FBD1         5BF3
+FBD2         5B9D
+FBD3         4D10
+FBD4         5C05
+FBD5        21B44
+FBD6         5C13
+FBD7         73CE
+FBD8         5C14
+FBD9        21CA5
+FBDA        26B28
+FBDB         5C49
+FBDC         48DD
+FBDD         5C85
+FBDE         5CE9
+FBDF         5CEF
+FBE0         5D8B
+FBE1        21DF9
+FBE2        21E37
+FBE3         5D10
+FBE4         5D18
+FBE5         5D46
+FBE6        21EA4
+FBE7         5CBA
+FBE8         5DD7
+FBE9         82FC
+FBEA         382D
+FBEB        24901
+FBEC        22049
+FBED        22173
+FBEE         8287
+FBEF         3836
+FBF0         3BC2
+FBF1         5E2E
+FBF2         6A8A
+FBF4         5E7A
+FBF5        244BC
+FBF6        20CD3
+FBF7         53A6
+FBF8         4EB7
+FBFA         53A8
+FBFB        21771
+FBFC         5E09
+FBFD         5EF4
+FBFE        28482
+FC40         5EF9
+FC41         5EFB
+FC42         38A0
+FC43         5EFC
+FC44         683E
+FC45         941B
+FC46         5F0D
+FC47        201C1
+FC48        2F894
+FC49         3ADE
+FC4A         48AE
+FC4B        2133A
+FC4C         5F3A
+FC4D        26888
+FC4E        223D0
+FC50        22471
+FC51         5F63
+FC52         97BD
+FC53        26E6E
+FC54         5F72
+FC55         9340
+FC56        28A36
+FC57         5FA7
+FC58         5DB6
+FC59         3D5F
+FC5A        25250
+FC5B        21F6A
+FC5C        270F8
+FC5D        22668
+FC5E         91D6
+FC5F        2029E
+FC60        28A29
+FC61         6031
+FC62         6685
+FC63        21877
+FC64         3963
+FC65         3DC7
+FC66         3639
+FC67         5790
+FC68        227B4
+FC69         7971
+FC6A         3E40
+FC6B         609E
+FC6D         60B3
+FC6E        24982
+FC6F        2498F
+FC70        27A53
+FC71         74A4
+FC72         50E1
+FC73         5AA0
+FC74         6164
+FC75         8424
+FC76         6142
+FC77        2F8A6
+FC78        26ED2
+FC79         6181
+FC7A         51F4
+FC7B        20656
+FC7C         6187
+FC7D         5BAA
+FC7E        23FB7
+FCA1        2285F
+FCA2         61D3
+FCA3        28B9D
+FCA4        2995D
+FCA5         61D0
+FCA6         3932
+FCA7        22980
+FCA8        228C1
+FCA9         6023
+FCAA         615C
+FCAB         651E
+FCAC         638B
+FCAD        20118
+FCAE         62C5
+FCAF        21770
+FCB0         62D5
+FCB1        22E0D
+FCB2         636C
+FCB3        249DF
+FCB4         3A17
+FCB5         6438
+FCB6         63F8
+FCB7        2138E
+FCB8        217FC
+FCBA         6F8A
+FCBB        22E36
+FCBC         9814
+FCBD        2408C
+FCBE        2571D
+FCBF         64E1
+FCC0         64E5
+FCC1         947B
+FCC2         3A66
+FCC3         643A
+FCC4         3A57
+FCC5         654D
+FCC6         6F16
+FCC7        24A28
+FCC8        24A23
+FCC9         6585
+FCCA         656D
+FCCB         655F
+FCCC        2307E
+FCCD         65B5
+FCCE        24940
+FCCF         4B37
+FCD0         65D1
+FCD1         40D8
+FCD2        21829
+FCD3         65E0
+FCD4         65E3
+FCD5         5FDF
+FCD6        23400
+FCD7         6618
+FCD8        231F7
+FCD9        231F8
+FCDA         6644
+FCDB        231A4
+FCDC        231A5
+FCDD         664B
+FCDE        20E75
+FCDF         6667
+FCE0        251E6
+FCE1         6673
+FCE3        21E3D
+FCE4        23231
+FCE5        285F4
+FCE6        231C8
+FCE7        25313
+FCE8         77C5
+FCE9        228F7
+FCEA         99A4
+FCEB         6702
+FCEC        2439C
+FCED        24A21
+FCEE         3B2B
+FCEF         69FA
+FCF0        237C2
+FCF2         6767
+FCF3         6762
+FCF4        241CD
+FCF5        290ED
+FCF6         67D7
+FCF7         44E9
+FCF8         6822
+FCF9         6E50
+FCFA         923C
+FCFB         6801
+FCFC        233E6
+FCFD        26DA0
+FCFE         685D
+FD40        2346F
+FD41         69E1
+FD42         6A0B
+FD43        28ADF
+FD44         6973
+FD45         68C3
+FD46        235CD
+FD47         6901
+FD48         6900
+FD49         3D32
+FD4A         3A01
+FD4B        2363C
+FD4C         3B80
+FD4D         67AC
+FD4E         6961
+FD4F        28A4A
+FD50         42FC
+FD51         6936
+FD52         6998
+FD53         3BA1
+FD54        203C9
+FD55         8363
+FD56         5090
+FD57         69F9
+FD58        23659
+FD59        2212A
+FD5A         6A45
+FD5B        23703
+FD5C         6A9D
+FD5D         3BF3
+FD5E         67B1
+FD5F         6AC8
+FD60        2919C
+FD61         3C0D
+FD62         6B1D
+FD63        20923
+FD64         60DE
+FD65         6B35
+FD66         6B74
+FD67        227CD
+FD68         6EB5
+FD69        23ADB
+FD6A        203B5
+FD6B        21958
+FD6C         3740
+FD6D         5421
+FD6E        23B5A
+FD6F         6BE1
+FD70        23EFC
+FD71         6BDC
+FD72         6C37
+FD73        2248B
+FD74        248F1
+FD75        26B51
+FD76         6C5A
+FD77         8226
+FD78         6C79
+FD79        23DBC
+FD7A         44C5
+FD7B        23DBD
+FD7C        241A4
+FD7D        2490C
+FD7E        24900
+FDA1        23CC9
+FDA2         36E5
+FDA3         3CEB
+FDA4        20D32
+FDA5         9B83
+FDA6        231F9
+FDA7        22491
+FDA8         7F8F
+FDA9         6837
+FDAA        26D25
+FDAB        26DA1
+FDAC        26DEB
+FDAD         6D96
+FDAE         6D5C
+FDAF         6E7C
+FDB0         6F04
+FDB1        2497F
+FDB2        24085
+FDB3        26E72
+FDB4         8533
+FDB5        26F74
+FDB6         51C7
+FDB9         842E
+FDBA        28B21
+FDBC        23E2F
+FDBD         7453
+FDBE        23F82
+FDBF         79CC
+FDC0         6E4F
+FDC1         5A91
+FDC2        2304B
+FDC3         6FF8
+FDC4         370D
+FDC5         6F9D
+FDC6        23E30
+FDC7         6EFA
+FDC8        21497
+FDC9        2403D
+FDCA         4555
+FDCB         93F0
+FDCC         6F44
+FDCD         6F5C
+FDCE         3D4E
+FDCF         6F74
+FDD0        29170
+FDD1         3D3B
+FDD2         6F9F
+FDD3        24144
+FDD4         6FD3
+FDD5        24091
+FDD6        24155
+FDD7        24039
+FDD8        23FF0
+FDD9        23FB4
+FDDA        2413F
+FDDB         51DF
+FDDC        24156
+FDDD        24157
+FDDE        24140
+FDDF        261DD
+FDE0         704B
+FDE1         707E
+FDE2         70A7
+FDE3         7081
+FDE4         70CC
+FDE5         70D5
+FDE6         70D6
+FDE7         70DF
+FDE8         4104
+FDE9         3DE8
+FDEA         71B4
+FDEB         7196
+FDEC        24277
+FDED         712B
+FDEE         7145
+FDEF         5A88
+FDF0         714A
+FDF2         5C9C
+FDF3        24365
+FDF4         714F
+FDF5         9362
+FDF6        242C1
+FDF7         712C
+FDF8        2445A
+FDF9        24A27
+FDFA        24A22
+FDFB         71BA
+FDFC        28BE8
+FDFD         70BD
+FDFE         720E
+FE40         9442
+FE41         7215
+FE42         5911
+FE43         9443
+FE44         7224
+FE45         9341
+FE46        25605
+FE47         722E
+FE48         7240
+FE49        24974
+FE4A         68BD
+FE4B         7255
+FE4C         7257
+FE4D         3E55
+FE4E        23044
+FE4F         680D
+FE50         6F3D
+FE51         7282
+FE53         732B
+FE54        24823
+FE55        2882B
+FE56         48ED
+FE57        28804
+FE58         7328
+FE59         732E
+FE5A         73CF
+FE5B         73AA
+FE5C        20C3A
+FE5D        26A2E
+FE5E         73C9
+FE5F         7449
+FE60        241E2
+FE61        216E7
+FE62        24A24
+FE63         6623
+FE64         36C5
+FE65        249B7
+FE66        2498D
+FE67        249FB
+FE68         73F7
+FE69         7415
+FE6A         6903
+FE6B        24A26
+FE6C         7439
+FE6D        205C3
+FE6E         3ED7
+FE70        228AD
+FE71         7460
+FE72        28EB2
+FE73         7447
+FE74         73E4
+FE75         7476
+FE76         83B9
+FE77         746C
+FE78         3730
+FE79         7474
+FE7A         93F1
+FE7B         6A2C
+FE7C         7482
+FE7D         4953
+FE7E        24A8C
+FEA1        2415F
+FEA2        24A79
+FEA3        28B8F
+FEA4         5B46
+FEA5        28C03
+FEA6        2189E
+FEA7         74C8
+FEA8        21988
+FEA9         750E
+FEAB         751E
+FEAC        28ED9
+FEAD        21A4B
+FEAE         5BD7
+FEAF        28EAC
+FEB0         9385
+FEB1         754D
+FEB2         754A
+FEB3         7567
+FEB4         756E
+FEB5        24F82
+FEB6         3F04
+FEB7        24D13
+FEB8         758E
+FEB9         745D
+FEBA         759E
+FEBB         75B4
+FEBC         7602
+FEBD         762C
+FEBE         7651
+FEBF         764F
+FEC0         766F
+FEC1         7676
+FEC2        263F5
+FEC3         7690
+FEC4         81EF
+FEC5         37F8
+FEC6        26911
+FEC7        2690E
+FEC8         76A1
+FEC9         76A5
+FECA         76B7
+FECB         76CC
+FECC        26F9F
+FECD         8462
+FECE        2509D
+FECF        2517D
+FED0        21E1C
+FED1         771E
+FED2         7726
+FED3         7740
+FED4         64AF
+FED5        25220
+FED6         7758
+FED7        232AC
+FED8         77AF
+FED9        28964
+FEDA        28968
+FEDB        216C1
+FEDC         77F4
+FEDE        21376
+FEDF        24A12
+FEE0         68CA
+FEE1         78AF
+FEE2         78C7
+FEE3         78D3
+FEE4         96A5
+FEE5         792E
+FEE6        255E0
+FEE7         78D7
+FEE8         7934
+FEE9         78B1
+FEEA        2760C
+FEEB         8FB8
+FEEC         8884
+FEED        28B2B
+FEEE        26083
+FEEF        2261C
+FEF0         7986
+FEF1         8900
+FEF2         6902
+FEF3         7980
+FEF4        25857
+FEF5         799D
+FEF6        27B39
+FEF7         793C
+FEF8         79A9
+FEF9         6E2A
+FEFA        27126
+FEFB         3EA8
+FEFC         79C6
+FEFD        2910D
+FEFE         79D4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/HKSCS_XP.c2b	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,529 @@
+# Generated from HKSCS.Encoder
+#
+0xFA45    0xE005
+0xFA48    0xE008
+0xFA68    0xE028
+0xFA6B    0xE02B
+0xFAA5    0xE043
+0xFACC    0xE06A
+0xFACD    0xE06B
+0xFAD0    0xE06E
+0xFAE0    0xE07E
+0xFAE8    0xE086
+0xFAFA    0xE098
+0xFAFD    0xE09B
+0xFB43    0xE0A0
+0xFB4B    0xE0A8
+0xFB5E    0xE0BB
+0xFB65    0xE0C2
+0xFB70    0xE0CD
+0xFB7A    0xE0D7
+0xFB7D    0xE0DA
+0xFBB6    0xE0F1
+0xFBB9    0xE0F4
+0xFBBF    0xE0FA
+0xFBC1    0xE0FC
+0xFBC9    0xE104
+0xFBCA    0xE105
+0xFBD3    0xE10E
+0xFBDC    0xE117
+0xFBEA    0xE125
+0xFBEF    0xE12A
+0xFBF0    0xE12B
+0xFC42    0xE13C
+0xFC49    0xE143
+0xFC4A    0xE144
+0xFC59    0xE153
+0xFC64    0xE15E
+0xFC65    0xE15F
+0xFC66    0xE160
+0xFC6A    0xE164
+0xFCA6    0xE17E
+0xFCB4    0xE18C
+0xFCC2    0xE19A
+0xFCC4    0xE19C
+0xFCCF    0xE1A7
+0xFCD1    0xE1A9
+0xFCEE    0xE1C6
+0xFCF7    0xE1CF
+0xFD49    0xE1E0
+0xFD4A    0xE1E1
+0xFD4C    0xE1E3
+0xFD50    0xE1E7
+0xFD53    0xE1EA
+0xFD5D    0xE1F4
+0xFD61    0xE1F8
+0xFD6C    0xE203
+0xFD7A    0xE211
+0xFDA2    0xE217
+0xFDA3    0xE218
+0xFDC4    0xE239
+0xFDCA    0xE23F
+0xFDCE    0xE243
+0xFDD1    0xE246
+0xFDE8    0xE25D
+0xFDE9    0xE25E
+0xFE4D    0xE281
+0xFE56    0xE28A
+0xFE64    0xE298
+0xFE6E    0xE2A2
+0xFE78    0xE2AC
+0xFE7D    0xE2B1
+0xFEB6    0xE2C8
+0xFEC5    0xE2D7
+0xFEFB    0xE30D
+0x8E45    0xE316
+0x8E55    0xE326
+0x8E59    0xE32A
+0x8E6B    0xE33C
+0x8EA2    0xE351
+0x8EAF    0xE35E
+0x8EB9    0xE368
+0x8EC7    0xE376
+0x8EC9    0xE378
+0x8ED8    0xE387
+0x8EED    0xE39C
+0x8EFE    0xE3AD
+0x8F45    0xE3B3
+0x8F50    0xE3BE
+0x8F54    0xE3C2
+0x8F59    0xE3C7
+0x8F5D    0xE3CB
+0x8F63    0xE3D1
+0x8F64    0xE3D2
+0x8F70    0xE3DE
+0x8F74    0xE3E2
+0x8F76    0xE3E4
+0x8F7A    0xE3E8
+0x8F7C    0xE3EA
+0x8FA9    0xE3F5
+0x8FAB    0xE3F7
+0x8FBA    0xE406
+0x8FC2    0xE40E
+0x8FDB    0xE427
+0x8FEB    0xE437
+0x8FF1    0xE43D
+0x8FFD    0xE449
+0x9044    0xE44F
+0x9055    0xE460
+0x9060    0xE46B
+0x906F    0xE47A
+0x90AA    0xE493
+0x90B7    0xE4A0
+0x90BC    0xE4A5
+0x90C0    0xE4A9
+0x90C9    0xE4B2
+0x90D5    0xE4BE
+0x90D6    0xE4BF
+0x90D7    0xE4C0
+0x90F5    0xE4DE
+0x90FA    0xE4E3
+0x90FC    0xE4E5
+0x9145    0xE4ED
+0x914F    0xE4F7
+0x9158    0xE500
+0x915F    0xE507
+0x9166    0xE50E
+0x91AE    0xE534
+0x91B3    0xE539
+0x91B4    0xE53A
+0x91B5    0xE53B
+0x91B7    0xE53D
+0x91BB    0xE541
+0x91CD    0xE553
+0x91E3    0xE569
+0x91EE    0xE574
+0x91F2    0xE578
+0x91F5    0xE57B
+0x91F9    0xE57F
+0x924C    0xE591
+0x9251    0xE596
+0x9252    0xE597
+0x9253    0xE598
+0x9257    0xE59C
+0x9269    0xE5AE
+0x9274    0xE5B9
+0x9277    0xE5BC
+0x92BD    0xE5E0
+0x92C9    0xE5EC
+0x92D2    0xE5F5
+0x92D7    0xE5FA
+0x92DB    0xE5FE
+0x92E9    0xE60C
+0x92FA    0xE61D
+0x9347    0xE629
+0x934B    0xE62D
+0x9357    0xE639
+0x9359    0xE63B
+0x935B    0xE63D
+0x936F    0xE651
+0x93A4    0xE664
+0x93B5    0xE675
+0x93C1    0xE681
+0x93C2    0xE682
+0x93CD    0xE68D
+0x93D4    0xE694
+0x93DD    0xE69D
+0x93E0    0xE6A0
+0x93E4    0xE6A4
+0x93E9    0xE6A9
+0x93EB    0xE6AB
+0x93F6    0xE6B6
+0x9449    0xE6C8
+0x9463    0xE6E2
+0x9464    0xE6E3
+0x9469    0xE6E8
+0x946E    0xE6ED
+0x9470    0xE6EF
+0x9472    0xE6F1
+0x9475    0xE6F4
+0x9479    0xE6F8
+0x947E    0xE6FD
+0x94A1    0xE6FE
+0x94A3    0xE700
+0x94B5    0xE712
+0x94B9    0xE716
+0x94BC    0xE719
+0x94C9    0xE726
+0x94D1    0xE72E
+0x94D3    0xE730
+0x94DB    0xE738
+0x94DD    0xE73A
+0x94DE    0xE73B
+0x94EC    0xE749
+0x94EF    0xE74C
+0x9544    0xE760
+0x955A    0xE776
+0x9562    0xE77E
+0x9564    0xE780
+0x9573    0xE78F
+0x95B0    0xE7AA
+0x95B2    0xE7AC
+0x95B3    0xE7AD
+0x95B4    0xE7AE
+0x95C6    0xE7C0
+0x95C7    0xE7C1
+0x95CD    0xE7C7
+0x95D1    0xE7CB
+0x95D6    0xE7D0
+0x95DB    0xE7D5
+0x95DF    0xE7D9
+0x95EC    0xE7E6
+0x95F0    0xE7EA
+0x95F6    0xE7F0
+0x95FC    0xE7F6
+0x9641    0xE7FA
+0x964D    0xE806
+0x965C    0xE815
+0x9662    0xE81B
+0x9664    0xE81D
+0x9669    0xE822
+0x966B    0xE824
+0x9675    0xE82E
+0x9678    0xE831
+0x9679    0xE832
+0x96A6    0xE83D
+0x96A8    0xE83F
+0x96B9    0xE850
+0x96BC    0xE853
+0x96C8    0xE85F
+0x96D4    0xE86B
+0x96D6    0xE86D
+0x96DF    0xE876
+0x96E9    0xE880
+0x96F7    0xE88E
+0x9743    0xE899
+0x9745    0xE89B
+0x9746    0xE89C
+0x975D    0xE8B3
+0x9761    0xE8B7
+0x9766    0xE8BC
+0x977C    0xE8D2
+0x97AE    0xE8E2
+0x97B0    0xE8E4
+0x97B8    0xE8EC
+0x97BA    0xE8EE
+0x97C0    0xE8F4
+0x97C2    0xE8F6
+0x97C3    0xE8F7
+0x97C5    0xE8F9
+0x97C6    0xE8FA
+0x97C9    0xE8FD
+0x97CD    0xE901
+0x97D2    0xE906
+0x97D7    0xE90B
+0x97DA    0xE90E
+0x97DB    0xE90F
+0x97DC    0xE910
+0x97DD    0xE911
+0x97DE    0xE912
+0x97E1    0xE915
+0x97E7    0xE91B
+0x97FD    0xE931
+0x97FE    0xE932
+0x9853    0xE946
+0x9856    0xE949
+0x9872    0xE965
+0x9879    0xE96C
+0x98A8    0xE979
+0x98BC    0xE98D
+0x98C3    0xE994
+0x98C5    0xE996
+0x98CB    0xE99C
+0x98CC    0xE99D
+0x98CD    0xE99E
+0x98CE    0xE99F
+0x98D0    0xE9A1
+0x98D1    0xE9A2
+0x98D6    0xE9A7
+0x98D9    0xE9AA
+0x98DB    0xE9AC
+0x98DD    0xE9AE
+0x98E4    0xE9B5
+0x98E6    0xE9B7
+0x98E8    0xE9B9
+0x98E9    0xE9BA
+0x98EB    0xE9BC
+0x98EC    0xE9BD
+0x98F4    0xE9C5
+0x98FE    0xE9CF
+0x9940    0xE9D0
+0x9946    0xE9D6
+0x9948    0xE9D8
+0x994B    0xE9DB
+0x994E    0xE9DE
+0x9955    0xE9E5
+0x9956    0xE9E6
+0x9959    0xE9E9
+0x995B    0xE9EB
+0x9967    0xE9F7
+0x996E    0xE9FE
+0x9973    0xEA03
+0x997A    0xEA0A
+0x997B    0xEA0B
+0x99A1    0xEA0F
+0x99A5    0xEA13
+0x99A7    0xEA15
+0x99AD    0xEA1B
+0x99B3    0xEA21
+0x99BC    0xEA2A
+0x99C3    0xEA31
+0x99C7    0xEA35
+0x99CE    0xEA3C
+0x99CF    0xEA3D
+0x99DE    0xEA4C
+0x99E1    0xEA4F
+0x99E9    0xEA57
+0x99F5    0xEA63
+0x99F8    0xEA66
+0x9A48    0xEA75
+0x9A49    0xEA76
+0x9A50    0xEA7D
+0x9A55    0xEA82
+0x9A58    0xEA85
+0x9A5A    0xEA87
+0x9A5C    0xEA89
+0x9A60    0xEA8D
+0x9A63    0xEA90
+0x9A6E    0xEA9B
+0x9A70    0xEA9D
+0x9A79    0xEAA6
+0x9A7B    0xEAA8
+0x9ABD    0xEAC8
+0x9AEC    0xEAF7
+0x9B4D    0xEB17
+0x9BA9    0xEB51
+0x9BAA    0xEB52
+0x9BB8    0xEB60
+0x9BBE    0xEB66
+0x9BC2    0xEB6A
+0x9BDF    0xEB87
+0x9BE3    0xEB8B
+0x9BEA    0xEB92
+0x9BEE    0xEB96
+0x9C4A    0xEBB1
+0x9C5C    0xEBC3
+0x9C6F    0xEBD6
+0x9C79    0xEBE0
+0x9CA1    0xEBE6
+0x9CA5    0xEBEA
+0x9CBA    0xEBFF
+0x9CBB    0xEC00
+0x9CBE    0xEC03
+0x9CC6    0xEC0B
+0x9CC8    0xEC0D
+0x9CD1    0xEC16
+0x9CF8    0xEC3D
+0x9D46    0xEC4A
+0x9D49    0xEC4D
+0x9D4F    0xEC53
+0x9D51    0xEC55
+0x9D5D    0xEC61
+0x9D73    0xEC77
+0x9D78    0xEC7C
+0x9D7B    0xEC7F
+0x9DA5    0xEC87
+0x9DAA    0xEC8C
+0x9DAD    0xEC8F
+0x9DB5    0xEC97
+0x9DCC    0xECAE
+0x9DCE    0xECB0
+0x9DEE    0xECD0
+0x9DF3    0xECD5
+0x9E53    0xECF4
+0x9E64    0xED05
+0x9E7A    0xED1B
+0x9E7E    0xED1F
+0x9EA4    0xED23
+0x9EB4    0xED33
+0x9EB8    0xED37
+0x9EB9    0xED38
+0x9EBB    0xED3A
+0x9EC5    0xED44
+0x9EC9    0xED48
+0x9ECD    0xED4C
+0x9EDA    0xED59
+0x9EDD    0xED5C
+0x9EDE    0xED5D
+0x9EDF    0xED5E
+0x9EE5    0xED64
+0x9EE7    0xED66
+0x9EEE    0xED6D
+0x9EF0    0xED6F
+0x9EFC    0xED7B
+0x9F70    0xEDAE
+0x9FA5    0xEDC1
+0x9FD7    0xEDF3
+0x9FD9    0xEDF5
+0xA053    0xEE2E
+0xA068    0xEE43
+0xA06A    0xEE45
+0xA06F    0xEE4A
+0xA078    0xEE53
+0xA07E    0xEE59
+0xA0AC    0xEE65
+0xA0D0    0xEE89
+0xA0DA    0xEE93
+0xA0DE    0xEE97
+0xA0E6    0xEE9F
+0xA0F9    0xEEB2
+0x89B7    0xF3F5
+0x89BA    0xF3F8
+0x89BF    0xF3FD
+0x89C5    0xF403
+0x89D5    0xF413
+0x89D7    0xF415
+0x89DA    0xF418
+0x89DB    0xF419
+0x89DC    0xF41A
+0x89E6    0xF424
+0x89E8    0xF426
+0x89EA    0xF428
+0x89ED    0xF42B
+0x89EE    0xF42C
+0x89EF    0xF42D
+0x89F9    0xF437
+0x89FB    0xF439
+0x89FC    0xF43A
+0x89FE    0xF43C
+0x8A48    0xF445
+0x8A4D    0xF44A
+0x8A51    0xF44E
+0x8A52    0xF44F
+0x8A67    0xF464
+0x8A6B    0xF468
+0x8A6D    0xF46A
+0x8A6E    0xF46B
+0x8A76    0xF473
+0x8A7D    0xF47A
+0x8AAC    0xF487
+0x8AAE    0xF489
+0x8AB8    0xF493
+0x8AB9    0xF494
+0x8ABB    0xF496
+0x8AC2    0xF49D
+0x8AC7    0xF4A2
+0x8AD0    0xF4AB
+0x8AD1    0xF4AC
+0x8AD3    0xF4AE
+0x8ADA    0xF4B5
+0x8AEB    0xF4C6
+0x8AF0    0xF4CB
+0x8AFB    0xF4D6
+0x8B47    0xF4E1
+0x8B60    0xF4FA
+0x8B68    0xF502
+0x8B6A    0xF504
+0x8BA6    0xF51E
+0x8BB1    0xF529
+0x8BB5    0xF52D
+0x8BB6    0xF52E
+0x8BB8    0xF530
+0x8BBE    0xF536
+0x8BC8    0xF540
+0x8BCC    0xF544
+0x8BDC    0xF554
+0x8D63    0xF637
+0x8D64    0xF638
+0x8D67    0xF63B
+0x8D68    0xF63C
+0x8D6D    0xF641
+0x8D6E    0xF642
+0x8D6F    0xF643
+0x8D70    0xF644
+0x8D74    0xF648
+0x8D78    0xF64C
+0x8D7D    0xF651
+0x8DA1    0xF653
+0x8DA6    0xF658
+0x8DAB    0xF65D
+0x8DAD    0xF65F
+0x8DB0    0xF662
+0x8DB2    0xF664
+0x8DB4    0xF666
+0x8DB7    0xF669
+0x8DBA    0xF66C
+0x8DBB    0xF66D
+0x8DBC    0xF66E
+0x8DC3    0xF675
+0x8DC5    0xF677
+0x8DCA    0xF67C
+0x8DCC    0xF67E
+0x8DD6    0xF688
+0x8DDB    0xF68D
+0x8DEB    0xF69D
+0x8DEF    0xF6A1
+0x8DF0    0xF6A2
+0x8DF3    0xF6A5
+0x8DF5    0xF6A7
+0x8DFC    0xF6AE
+0x8DFD    0xF6AF
+0xC6CD    0xF6DD
+0xC8D6    0xF820
+0xC8D7    0xF821
+0xC8D8    0xF822
+0xC8D9    0xF823
+0xC8DA    0xF824
+0xC8DB    0xF825
+0xC8DC    0xF826
+0xC8DD    0xF827
+0xC8DE    0xF828
+0xC8DF    0xF829
+0xC8E0    0xF82A
+0xC8E1    0xF82B
+0xC8E2    0xF82C
+0xC8E3    0xF82D
+0xC8E4    0xF82E
+0xC8E5    0xF82F
+0xC8E6    0xF830
+0xC8E7    0xF831
+0xC8E8    0xF832
+0xC8E9    0xF833
+0xC8EA    0xF834
+0xC8EB    0xF835
+0xC8EC    0xF836
+0xC8ED    0xF837
+0xC8EE    0xF838
+0xC8EF    0xF839
+0xC8F0    0xF83A
+0xC8F1    0xF83B
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/HKSCS_XP.map	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,4704 @@
+# Generated from HKSCS.Encoder
+#
+0x8840    0xF303
+0x8841    0xF304
+0x8842    0xF305
+0x8843    0xF306
+0x8844    0xF307
+0x8845    0xF308
+0x8846    0xF309
+0x8847    0xF30A
+0x8848    0xF30B
+0x8849    0xF30C
+0x884A    0xF30D
+0x884B    0xF30E
+0x884C    0xF30F
+0x884D    0xF310
+0x884E    0xF311
+0x884F    0xF312
+0x8850    0xF313
+0x8851    0xF314
+0x8852    0xF315
+0x8853    0xF316
+0x8854    0xF317
+0x8855    0xF318
+0x8856    0x0100
+0x8857    0x00C1
+0x8858    0x01CD
+0x8859    0x00C0
+0x885A    0x0112
+0x885B    0x00C9
+0x885C    0x011A
+0x885D    0x00C8
+0x885E    0x014C
+0x885F    0x00D3
+0x8860    0x01D1
+0x8861    0x00D2
+0x8862    0xF325
+0x8863    0x1EBE
+0x8864    0xF327
+0x8865    0x1EC0
+0x8866    0x00CA
+0x8867    0x0101
+0x8868    0x00E1
+0x8869    0x01CE
+0x886A    0x00E0
+0x886B    0x0251
+0x886C    0x0113
+0x886D    0x00E9
+0x886E    0x011B
+0x886F    0x00E8
+0x8870    0x012B
+0x8871    0x00ED
+0x8872    0x01D0
+0x8873    0x00EC
+0x8874    0x014D
+0x8875    0x00F3
+0x8876    0x01D2
+0x8877    0x00F2
+0x8878    0x016B
+0x8879    0x00FA
+0x887A    0x01D4
+0x887B    0x00F9
+0x887C    0x01D6
+0x887D    0x01D8
+0x887E    0x01DA
+0x88A1    0x01DC
+0x88A2    0x00FC
+0x88A3    0xF344
+0x88A4    0x1EBF
+0x88A5    0xF346
+0x88A6    0x1EC1
+0x88A7    0x00EA
+0x88A8    0x0261
+0x88A9    0xF34A
+0x88AA    0xF34B
+0x8940    0xF3A0
+0x8941    0xF3A1
+0x8943    0x650A
+0x8946    0x4E3D
+0x8947    0x6EDD
+0x8948    0x9D4E
+0x8949    0x91DF
+0x894C    0xF3AC
+0x894D    0x6491
+0x894E    0x4F1A
+0x894F    0x4F28
+0x8950    0x4FA8
+0x8951    0x5156
+0x8952    0x5174
+0x8953    0x519C
+0x8954    0x51E4
+0x8955    0x52A1
+0x8956    0x52A8
+0x8957    0x533B
+0x8958    0x534E
+0x8959    0x53D1
+0x895A    0x53D8
+0x895B    0x56E2
+0x895C    0x58F0
+0x895D    0x5904
+0x895E    0x5907
+0x895F    0x5932
+0x8960    0x5934
+0x8961    0x5B66
+0x8962    0x5B9E
+0x8963    0x5B9F
+0x8964    0x5C9A
+0x8965    0x5E86
+0x8966    0x603B
+0x8967    0x6589
+0x8968    0x67FE
+0x8969    0x6804
+0x896A    0x6865
+0x896B    0x6D4E
+0x896C    0x70BC
+0x896D    0x7535
+0x896E    0x7EA4
+0x896F    0x7EAC
+0x8970    0x7EBA
+0x8971    0x7EC7
+0x8972    0x7ECF
+0x8973    0x7EDF
+0x8974    0x7F06
+0x8975    0x7F37
+0x8976    0x827A
+0x8977    0x82CF
+0x8978    0x836F
+0x8979    0x89C6
+0x897A    0x8BBE
+0x897B    0x8BE2
+0x897C    0x8F66
+0x897D    0x8F67
+0x897E    0x8F6E
+0x89A1    0x7411
+0x89A2    0x7CFC
+0x89A3    0x7DCD
+0x89A4    0x6946
+0x89A5    0x7AC9
+0x89A6    0x5227
+0x89AB    0x918C
+0x89AC    0x78B8
+0x89AD    0x915E
+0x89AE    0x80BC
+0x89B0    0x8D0B
+0x89B1    0x80F6
+0x89B2    0xF3F0
+0x89B5    0x809F
+0x89B6    0x9EC7
+0x89B7    0x4CCD
+0x89B8    0x9DC9
+0x89B9    0x9E0C
+0x89BA    0x4C3E
+0x89BB    0xF3F9
+0x89BC    0xF3FA
+0x89BD    0x9E0A
+0x89BE    0xF3FC
+0x89BF    0x35C1
+0x89C1    0x6E9A
+0x89C2    0x823E
+0x89C3    0x7519
+0x89C5    0x4911
+0x89C6    0x9A6C
+0x89C7    0x9A8F
+0x89C8    0x9F99
+0x89C9    0x7987
+0x89CA    0xF408
+0x89CB    0xF409
+0x89CC    0xF40A
+0x89CD    0xF40B
+0x89CE    0x4E24
+0x89CF    0x4E81
+0x89D0    0x4E80
+0x89D1    0x4E87
+0x89D2    0x4EBF
+0x89D3    0x4EEB
+0x89D4    0x4F37
+0x89D5    0x344C
+0x89D6    0x4FBD
+0x89D7    0x3E48
+0x89D8    0x5003
+0x89D9    0x5088
+0x89DA    0x347D
+0x89DB    0x3493
+0x89DC    0x34A5
+0x89DD    0x5186
+0x89DE    0x5905
+0x89DF    0x51DB
+0x89E0    0x51FC
+0x89E1    0x5205
+0x89E2    0x4E89
+0x89E3    0x5279
+0x89E4    0x5290
+0x89E5    0x5327
+0x89E6    0x35C7
+0x89E7    0x53A9
+0x89E8    0x3551
+0x89E9    0x53B0
+0x89EA    0x3553
+0x89EB    0x53C2
+0x89EC    0x5423
+0x89ED    0x356D
+0x89EE    0x3572
+0x89EF    0x3681
+0x89F0    0x5493
+0x89F1    0x54A3
+0x89F2    0x54B4
+0x89F3    0x54B9
+0x89F4    0x54D0
+0x89F5    0x54EF
+0x89F6    0x5518
+0x89F7    0x5523
+0x89F8    0x5528
+0x89F9    0x3598
+0x89FA    0x553F
+0x89FB    0x35A5
+0x89FC    0x35BF
+0x89FD    0x55D7
+0x89FE    0x35C5
+0x8A40    0xF43D
+0x8A41    0x5525
+0x8A43    0xF440
+0x8A44    0xF441
+0x8A45    0xF442
+0x8A46    0x5590
+0x8A47    0xF444
+0x8A48    0x39EC
+0x8A49    0xF446
+0x8A4A    0x8E46
+0x8A4B    0xF448
+0x8A4C    0xF449
+0x8A4D    0x4053
+0x8A4E    0xF44B
+0x8A4F    0x777A
+0x8A50    0xF44D
+0x8A51    0x3A34
+0x8A52    0x47D5
+0x8A53    0xF450
+0x8A54    0xF451
+0x8A55    0xF452
+0x8A56    0x64DD
+0x8A57    0xF454
+0x8A58    0xF455
+0x8A59    0xF456
+0x8A5A    0xF457
+0x8A5B    0x648D
+0x8A5C    0x8E7E
+0x8A5D    0xF45A
+0x8A5E    0xF45B
+0x8A5F    0xF45C
+0x8A60    0xF45D
+0x8A61    0xF45E
+0x8A62    0xF45F
+0x8A64    0xF461
+0x8A65    0xF462
+0x8A66    0xF463
+0x8A67    0x47F4
+0x8A68    0xF465
+0x8A69    0xF466
+0x8A6A    0x9AB2
+0x8A6B    0x3A67
+0x8A6C    0xF469
+0x8A6D    0x3FED
+0x8A6E    0x3506
+0x8A6F    0xF46C
+0x8A70    0xF46D
+0x8A71    0xF46E
+0x8A72    0xF46F
+0x8A73    0x9D6E
+0x8A74    0x9815
+0x8A76    0x43D9
+0x8A77    0xF474
+0x8A78    0x64B4
+0x8A79    0x54E3
+0x8A7A    0xF477
+0x8A7B    0xF478
+0x8A7C    0xF479
+0x8A7D    0x39FB
+0x8A7E    0xF47B
+0x8AA1    0xF47C
+0x8AA2    0xF47D
+0x8AA3    0xF47E
+0x8AA4    0x64EA
+0x8AA5    0xF480
+0x8AA6    0xF481
+0x8AA7    0x8E68
+0x8AA8    0xF483
+0x8AA9    0xF484
+0x8AAA    0xF485
+0x8AAC    0x480B
+0x8AAD    0xF488
+0x8AAE    0x3FFA
+0x8AAF    0x5873
+0x8AB0    0xF48B
+0x8AB2    0xF48D
+0x8AB3    0xF48E
+0x8AB4    0xF48F
+0x8AB5    0xF490
+0x8AB6    0xF491
+0x8AB7    0x5579
+0x8AB8    0x40BB
+0x8AB9    0x43BA
+0x8ABB    0x4AB4
+0x8ABC    0xF497
+0x8ABD    0xF498
+0x8ABE    0x81AA
+0x8ABF    0x98F5
+0x8AC0    0xF49B
+0x8AC1    0x6379
+0x8AC2    0x39FE
+0x8AC3    0xF49E
+0x8AC4    0x8DC0
+0x8AC5    0x56A1
+0x8AC6    0x647C
+0x8AC7    0x3E43
+0x8AC9    0xF4A4
+0x8ACA    0xF4A5
+0x8ACB    0xF4A6
+0x8ACC    0xF4A7
+0x8ACE    0xF4A9
+0x8ACF    0xF4AA
+0x8AD0    0x3992
+0x8AD1    0x3A06
+0x8AD2    0xF4AD
+0x8AD3    0x3578
+0x8AD4    0xF4AF
+0x8AD5    0xF4B0
+0x8AD6    0x5652
+0x8AD7    0xF4B2
+0x8AD8    0xF4B3
+0x8AD9    0xF4B4
+0x8ADA    0x34BC
+0x8ADB    0x6C3D
+0x8ADC    0xF4B7
+0x8ADF    0xF4BA
+0x8AE0    0xF4BB
+0x8AE1    0xF4BC
+0x8AE2    0xF4BD
+0x8AE3    0xF4BE
+0x8AE4    0xF4BF
+0x8AE5    0xF4C0
+0x8AE6    0xF4C1
+0x8AE7    0x7F93
+0x8AE8    0xF4C3
+0x8AE9    0xF4C4
+0x8AEA    0xF4C5
+0x8AEB    0x35FB
+0x8AEC    0xF4C7
+0x8AED    0xF4C8
+0x8AEE    0xF4C9
+0x8AEF    0xF4CA
+0x8AF0    0x3F93
+0x8AF1    0xF4CC
+0x8AF2    0xF4CD
+0x8AF3    0xF4CE
+0x8AF4    0xF4CF
+0x8AF6    0xF4D1
+0x8AF7    0xF4D2
+0x8AF8    0xF4D3
+0x8AF9    0xF4D4
+0x8AFA    0xF4D5
+0x8AFB    0x3FF9
+0x8AFC    0xF4D7
+0x8AFD    0x6432
+0x8AFE    0xF4D9
+0x8B40    0xF4DA
+0x8B41    0xF4DB
+0x8B42    0xF4DC
+0x8B43    0xF4DD
+0x8B44    0xF4DE
+0x8B45    0xF4DF
+0x8B46    0xF4E0
+0x8B47    0x3A18
+0x8B48    0xF4E2
+0x8B49    0xF4E3
+0x8B4A    0xF4E4
+0x8B4B    0xF4E5
+0x8B4C    0xF4E6
+0x8B4D    0xF4E7
+0x8B4E    0xF4E8
+0x8B4F    0xF4E9
+0x8B50    0x95AA
+0x8B51    0x54CC
+0x8B52    0x82C4
+0x8B53    0x55B9
+0x8B55    0xF4EF
+0x8B56    0x9C26
+0x8B57    0x9AB6
+0x8B58    0xF4F2
+0x8B59    0xF4F3
+0x8B5A    0x7140
+0x8B5B    0x816D
+0x8B5C    0x80EC
+0x8B5D    0x5C1C
+0x8B5E    0xF4F8
+0x8B5F    0x8134
+0x8B60    0x3797
+0x8B61    0x535F
+0x8B62    0xF4FC
+0x8B63    0x91B6
+0x8B64    0xF4FE
+0x8B65    0xF4FF
+0x8B66    0xF500
+0x8B67    0xF501
+0x8B68    0x35DD
+0x8B69    0xF503
+0x8B6A    0x3609
+0x8B6B    0xF505
+0x8B6C    0x56AF
+0x8B6D    0xF507
+0x8B6E    0xF508
+0x8B6F    0xF509
+0x8B70    0xF50A
+0x8B71    0xF50B
+0x8B72    0xF50C
+0x8B73    0xF50D
+0x8B74    0xF50E
+0x8B75    0xF50F
+0x8B76    0xF510
+0x8B77    0xF511
+0x8B78    0x5A54
+0x8B79    0xF513
+0x8B7A    0xF514
+0x8B7B    0xF515
+0x8B7C    0xF516
+0x8B7D    0x579C
+0x8B7E    0xF518
+0x8BA1    0xF519
+0x8BA2    0xF51A
+0x8BA3    0xF51B
+0x8BA4    0xF51C
+0x8BA5    0xF51D
+0x8BA6    0x3703
+0x8BA7    0xF51F
+0x8BA8    0xF520
+0x8BA9    0xF521
+0x8BAA    0xF522
+0x8BAB    0xF523
+0x8BAC    0xF524
+0x8BAD    0xF525
+0x8BAE    0xF526
+0x8BAF    0x5899
+0x8BB0    0x5268
+0x8BB1    0x361A
+0x8BB2    0xF52A
+0x8BB3    0x7BB2
+0x8BB4    0x5B68
+0x8BB5    0x4800
+0x8BB6    0x4B2C
+0x8BB7    0x9F27
+0x8BB8    0x49E7
+0x8BB9    0x9C1F
+0x8BBA    0x9B8D
+0x8BBB    0xF533
+0x8BBC    0xF534
+0x8BBD    0x55FB
+0x8BBE    0x35F2
+0x8BBF    0x5689
+0x8BC0    0x4E28
+0x8BC1    0x5902
+0x8BC2    0xF53A
+0x8BC3    0xF53B
+0x8BC4    0x9751
+0x8BC5    0xF53D
+0x8BC6    0x4E5B
+0x8BC7    0x4EBB
+0x8BC8    0x353E
+0x8BC9    0x5C23
+0x8BCA    0x5F51
+0x8BCB    0x5FC4
+0x8BCC    0x38FA
+0x8BCD    0x624C
+0x8BCE    0x6535
+0x8BCF    0x6B7A
+0x8BD0    0x6C35
+0x8BD1    0x6C3A
+0x8BD2    0x706C
+0x8BD3    0x722B
+0x8BD4    0x4E2C
+0x8BD5    0x72AD
+0x8BD6    0xF54E
+0x8BD7    0x7F52
+0x8BD8    0x793B
+0x8BD9    0x7CF9
+0x8BDA    0x7F53
+0x8BDB    0xF553
+0x8BDC    0x34C1
+0x8BDE    0xF556
+0x8BDF    0x8002
+0x8BE0    0x8080
+0x8BE1    0xF559
+0x8BE2    0xF55A
+0x8BE3    0x535D
+0x8BE4    0x8864
+0x8BE5    0x89C1
+0x8BE6    0xF55E
+0x8BE7    0x8BA0
+0x8BE8    0x8D1D
+0x8BE9    0x9485
+0x8BEA    0x9578
+0x8BEB    0x957F
+0x8BEC    0x95E8
+0x8BED    0xF565
+0x8BEE    0x97E6
+0x8BEF    0x9875
+0x8BF0    0x98CE
+0x8BF1    0x98DE
+0x8BF2    0x9963
+0x8BF3    0xF56B
+0x8BF4    0x9C7C
+0x8BF5    0x9E1F
+0x8BF6    0x9EC4
+0x8BF7    0x6B6F
+0x8BF8    0x9F9C
+0x8BF9    0x4E37
+0x8BFA    0xF572
+0x8BFB    0x961D
+0x8BFC    0x6237
+0x8BFD    0x94A2
+0x8D60    0x5D3E
+0x8D61    0x5D48
+0x8D62    0x5D56
+0x8D63    0x3DFC
+0x8D64    0x380F
+0x8D65    0x5DA4
+0x8D66    0x5DB9
+0x8D67    0x3820
+0x8D68    0x3838
+0x8D69    0x5E42
+0x8D6A    0x5EBD
+0x8D6B    0x5F25
+0x8D6C    0x5F83
+0x8D6D    0x3908
+0x8D6E    0x3914
+0x8D6F    0x393F
+0x8D70    0x394D
+0x8D71    0x60D7
+0x8D72    0x613D
+0x8D73    0x5CE5
+0x8D74    0x3989
+0x8D75    0x61B7
+0x8D76    0x61B9
+0x8D77    0x61CF
+0x8D78    0x39B8
+0x8D79    0x622C
+0x8D7A    0x6290
+0x8D7B    0x62E5
+0x8D7C    0x6318
+0x8D7D    0x39F8
+0x8D7E    0x56B1
+0x8DA1    0x3A03
+0x8DA2    0x63E2
+0x8DA3    0x63FB
+0x8DA4    0x6407
+0x8DA5    0x645A
+0x8DA6    0x3A4B
+0x8DA7    0x64C0
+0x8DA8    0x5D15
+0x8DA9    0x5621
+0x8DAA    0x9F9F
+0x8DAB    0x3A97
+0x8DAC    0x6586
+0x8DAD    0x3ABD
+0x8DAE    0x65FF
+0x8DAF    0x6653
+0x8DB0    0x3AF2
+0x8DB1    0x6692
+0x8DB2    0x3B22
+0x8DB3    0x6716
+0x8DB4    0x3B42
+0x8DB5    0x67A4
+0x8DB6    0x6800
+0x8DB7    0x3B58
+0x8DB8    0x684A
+0x8DB9    0x6884
+0x8DBA    0x3B72
+0x8DBB    0x3B71
+0x8DBC    0x3B7B
+0x8DBD    0x6909
+0x8DBE    0x6943
+0x8DBF    0x725C
+0x8DC0    0x6964
+0x8DC1    0x699F
+0x8DC2    0x6985
+0x8DC3    0x3BBC
+0x8DC4    0x69D6
+0x8DC5    0x3BDD
+0x8DC6    0x6A65
+0x8DC7    0x6A74
+0x8DC8    0x6A71
+0x8DC9    0x6A82
+0x8DCA    0x3BEC
+0x8DCB    0x6A99
+0x8DCC    0x3BF2
+0x8DCD    0x6AAB
+0x8DCE    0x6AB5
+0x8DCF    0x6AD4
+0x8DD0    0x6AF6
+0x8DD1    0x6B81
+0x8DD2    0x6BC1
+0x8DD3    0x6BEA
+0x8DD4    0x6C75
+0x8DD5    0x6CAA
+0x8DD6    0x3CCB
+0x8DD7    0x6D02
+0x8DD8    0x6D06
+0x8DD9    0x6D26
+0x8DDA    0x6D81
+0x8DDB    0x3CEF
+0x8DDC    0x6DA4
+0x8DDD    0x6DB1
+0x8DDE    0x6E15
+0x8DDF    0x6E18
+0x8DE0    0x6E29
+0x8DE1    0x6E86
+0x8DE2    0xF694
+0x8DE3    0x6EBB
+0x8DE4    0x6EE2
+0x8DE5    0x6EDA
+0x8DE6    0x9F7F
+0x8DE7    0x6EE8
+0x8DE8    0x6EE9
+0x8DE9    0x6F24
+0x8DEA    0x6F34
+0x8DEB    0x3D46
+0x8DEC    0xF69E
+0x8DED    0x6F81
+0x8DEE    0x6FBE
+0x8DEF    0x3D6A
+0x8DF0    0x3D75
+0x8DF1    0x71B7
+0x8DF2    0x5C99
+0x8DF3    0x3D8A
+0x8DF4    0x702C
+0x8DF5    0x3D91
+0x8DF6    0x7050
+0x8DF7    0x7054
+0x8DF8    0x706F
+0x8DF9    0x707F
+0x8DFA    0x7089
+0x8DFB    0xF6AD
+0x8DFC    0x43C1
+0x8DFD    0x35F1
+0x8DFE    0xF6B0
+0x8E40    0xE311
+0x8E41    0x57BE
+0x8E42    0xE313
+0x8E43    0x713E
+0x8E44    0xE315
+0x8E45    0x364E
+0x8E46    0x69A2
+0x8E47    0xE318
+0x8E48    0x5B74
+0x8E49    0x7A49
+0x8E4A    0xE31B
+0x8E4B    0xE31C
+0x8E4C    0x7A65
+0x8E4D    0x7A7D
+0x8E4E    0xE31F
+0x8E4F    0x7ABB
+0x8E50    0x7AB0
+0x8E51    0x7AC2
+0x8E52    0x7AC3
+0x8E53    0x71D1
+0x8E54    0xE325
+0x8E55    0x41CA
+0x8E56    0x7ADA
+0x8E57    0x7ADD
+0x8E58    0x7AEA
+0x8E59    0x41EF
+0x8E5A    0x54B2
+0x8E5B    0xE32C
+0x8E5C    0x7B0B
+0x8E5D    0x7B55
+0x8E5E    0x7B29
+0x8E5F    0xE330
+0x8E60    0xE331
+0x8E61    0x7BA2
+0x8E62    0x7B6F
+0x8E63    0x839C
+0x8E64    0xE335
+0x8E65    0xE336
+0x8E66    0x7BD0
+0x8E67    0x8421
+0x8E68    0x7B92
+0x8E6A    0xE33B
+0x8E6B    0x3DAD
+0x8E6C    0xE33D
+0x8E6D    0x8492
+0x8E6E    0x7BFA
+0x8E70    0x7C35
+0x8E71    0xE342
+0x8E72    0x7C44
+0x8E73    0x7C83
+0x8E74    0xE345
+0x8E75    0x7CA6
+0x8E76    0x667D
+0x8E77    0xE348
+0x8E78    0x7CC9
+0x8E79    0x7CC7
+0x8E7A    0x7CE6
+0x8E7B    0x7C74
+0x8E7C    0x7CF3
+0x8E7D    0x7CF5
+0x8EA1    0x7E67
+0x8EA2    0x451D
+0x8EA3    0xE352
+0x8EA4    0x7D5D
+0x8EA5    0xE354
+0x8EA6    0x748D
+0x8EA7    0x7D89
+0x8EA8    0x7DAB
+0x8EA9    0x7135
+0x8EAA    0x7DB3
+0x8EAC    0xE35B
+0x8EAD    0xE35C
+0x8EAE    0x7DE4
+0x8EAF    0x3D13
+0x8EB0    0x7DF5
+0x8EB1    0xE360
+0x8EB2    0x7DE5
+0x8EB3    0xE362
+0x8EB5    0xE364
+0x8EB6    0xE365
+0x8EB7    0x7E6E
+0x8EB8    0x7E92
+0x8EB9    0x432B
+0x8EBA    0x946C
+0x8EBB    0x7E27
+0x8EBC    0x7F40
+0x8EBD    0x7F41
+0x8EBE    0x7F47
+0x8EBF    0x7936
+0x8EC0    0xE36F
+0x8EC1    0x99E1
+0x8EC2    0x7F97
+0x8EC3    0xE372
+0x8EC4    0x7FA3
+0x8EC5    0xE374
+0x8EC6    0xE375
+0x8EC7    0x455C
+0x8EC8    0xE377
+0x8EC9    0x4503
+0x8ECA    0xE379
+0x8ECB    0x7FFA
+0x8ECC    0xE37B
+0x8ECE    0x8008
+0x8ECF    0x801D
+0x8ED1    0x802F
+0x8ED2    0xE381
+0x8ED3    0xE382
+0x8ED4    0x803B
+0x8ED5    0x803C
+0x8ED6    0x8061
+0x8ED7    0xE386
+0x8ED8    0x4989
+0x8ED9    0xE388
+0x8EDA    0xE389
+0x8EDB    0xE38A
+0x8EDC    0x6725
+0x8EDD    0x80A7
+0x8EDE    0xE38D
+0x8EDF    0x8107
+0x8EE0    0x811A
+0x8EE1    0x58B0
+0x8EE2    0xE391
+0x8EE3    0x6C7F
+0x8EE4    0xE393
+0x8EE5    0xE394
+0x8EE6    0x64E7
+0x8EE7    0xE396
+0x8EE8    0x8218
+0x8EE9    0xE398
+0x8EEA    0x6A53
+0x8EEB    0xE39A
+0x8EEC    0xE39B
+0x8EED    0x447A
+0x8EEE    0x8229
+0x8EEF    0xE39E
+0x8EF0    0xE39F
+0x8EF1    0xE3A0
+0x8EF2    0x4FF9
+0x8EF3    0xE3A2
+0x8EF4    0x84E2
+0x8EF5    0x8362
+0x8EF6    0xE3A5
+0x8EF7    0xE3A6
+0x8EF8    0xE3A7
+0x8EF9    0xE3A8
+0x8EFA    0xE3A9
+0x8EFB    0x82AA
+0x8EFC    0x691B
+0x8EFD    0xE3AC
+0x8EFE    0x41DB
+0x8F40    0x854B
+0x8F41    0x82D0
+0x8F42    0x831A
+0x8F43    0xE3B1
+0x8F44    0xE3B2
+0x8F45    0x36C1
+0x8F46    0xE3B4
+0x8F47    0xE3B5
+0x8F48    0x827B
+0x8F49    0x82E2
+0x8F4A    0x8318
+0x8F4B    0xE3B9
+0x8F4C    0xE3BA
+0x8F4D    0xE3BB
+0x8F4E    0xE3BC
+0x8F4F    0xE3BD
+0x8F50    0x3DBF
+0x8F51    0x831D
+0x8F52    0x55EC
+0x8F53    0x8385
+0x8F54    0x450B
+0x8F55    0xE3C3
+0x8F56    0x83AC
+0x8F58    0x83D3
+0x8F59    0x347E
+0x8F5A    0xE3C8
+0x8F5B    0x6A57
+0x8F5C    0x855A
+0x8F5D    0x3496
+0x8F5E    0xE3CC
+0x8F5F    0xE3CD
+0x8F60    0x8458
+0x8F61    0xE3CF
+0x8F62    0x8471
+0x8F63    0x3DD3
+0x8F64    0x44E4
+0x8F65    0x6AA7
+0x8F66    0x844A
+0x8F67    0xE3D5
+0x8F68    0x7958
+0x8F6A    0xE3D8
+0x8F6B    0xE3D9
+0x8F6C    0xE3DA
+0x8F6D    0x84DE
+0x8F6F    0x8391
+0x8F70    0x44A0
+0x8F71    0x8493
+0x8F72    0x84E4
+0x8F73    0xE3E1
+0x8F74    0x4240
+0x8F75    0xE3E3
+0x8F76    0x4543
+0x8F77    0x8534
+0x8F78    0x5AF2
+0x8F79    0xE3E7
+0x8F7A    0x4527
+0x8F7B    0x8573
+0x8F7C    0x4516
+0x8F7D    0x67BF
+0x8F7E    0x8616
+0x8FA1    0xE3ED
+0x8FA2    0xE3EE
+0x8FA3    0x85C1
+0x8FA4    0xE3F0
+0x8FA5    0x8602
+0x8FA6    0xE3F2
+0x8FA7    0xE3F3
+0x8FA8    0xE3F4
+0x8FA9    0x456A
+0x8FAA    0x8628
+0x8FAB    0x3648
+0x8FAC    0xE3F8
+0x8FAD    0x53F7
+0x8FAE    0xE3FA
+0x8FAF    0x867E
+0x8FB0    0x8771
+0x8FB1    0xE3FD
+0x8FB2    0x87EE
+0x8FB3    0xE3FF
+0x8FB4    0x87B1
+0x8FB5    0x87DA
+0x8FB6    0x880F
+0x8FB7    0x5661
+0x8FB8    0x866C
+0x8FB9    0x6856
+0x8FBA    0x460F
+0x8FBB    0x8845
+0x8FBC    0x8846
+0x8FBD    0xE409
+0x8FBE    0xE40A
+0x8FBF    0xE40B
+0x8FC0    0x885E
+0x8FC1    0x889C
+0x8FC2    0x465B
+0x8FC3    0x88B4
+0x8FC4    0x88B5
+0x8FC5    0x63C1
+0x8FC6    0x88C5
+0x8FC7    0x7777
+0x8FC8    0xE414
+0x8FC9    0x8987
+0x8FCA    0x898A
+0x8FCD    0x89A7
+0x8FCE    0x89BC
+0x8FCF    0xE41B
+0x8FD0    0x89E7
+0x8FD1    0xE41D
+0x8FD2    0xE41E
+0x8FD3    0x8A9C
+0x8FD4    0x7793
+0x8FD5    0x91FE
+0x8FD6    0x8A90
+0x8FD7    0xE423
+0x8FD8    0x7AE9
+0x8FD9    0xE425
+0x8FDA    0xE426
+0x8FDB    0x4713
+0x8FDC    0xE428
+0x8FDD    0x717C
+0x8FDE    0x8B0C
+0x8FDF    0x8B1F
+0x8FE0    0xE42C
+0x8FE1    0xE42D
+0x8FE2    0x8B3F
+0x8FE3    0x8B4C
+0x8FE4    0x8B4D
+0x8FE5    0x8AA9
+0x8FE6    0xE432
+0x8FE7    0x8B90
+0x8FE8    0x8B9B
+0x8FE9    0x8AAF
+0x8FEA    0xE436
+0x8FEB    0x4615
+0x8FEC    0x884F
+0x8FED    0x8C9B
+0x8FEE    0xE43A
+0x8FEF    0xE43B
+0x8FF0    0xE43C
+0x8FF1    0x3725
+0x8FF2    0xE43E
+0x8FF3    0x8CD6
+0x8FF4    0xE440
+0x8FF5    0xE441
+0x8FF6    0x8D12
+0x8FF7    0x8D03
+0x8FF8    0xE444
+0x8FF9    0x8CDB
+0x8FFA    0x705C
+0x8FFB    0x8D11
+0x8FFC    0xE448
+0x8FFD    0x3ED0
+0x9040    0x8DA9
+0x9041    0xE44C
+0x9042    0xE44D
+0x9043    0xE44E
+0x9044    0x3B7C
+0x9045    0xE450
+0x9046    0xE451
+0x9047    0x7AE7
+0x9048    0x8EAD
+0x9049    0x8EB6
+0x904A    0x8EC3
+0x904B    0x92D4
+0x904C    0x8F19
+0x904D    0x8F2D
+0x904E    0xE459
+0x904F    0xE45A
+0x9050    0x8FA5
+0x9051    0x9303
+0x9052    0xE45D
+0x9053    0xE45E
+0x9054    0x8FB3
+0x9055    0x492A
+0x9056    0xE461
+0x9057    0xE462
+0x9058    0xE463
+0x9059    0x5EF8
+0x905A    0xE465
+0x905B    0x8FF9
+0x905C    0xE467
+0x905D    0xE468
+0x905E    0xE469
+0x905F    0xE46A
+0x9060    0x3980
+0x9061    0xE46C
+0x9062    0x9037
+0x9063    0xE46E
+0x9064    0xE46F
+0x9065    0x9061
+0x9066    0xE471
+0x9067    0xE472
+0x9068    0x90A8
+0x9069    0xE474
+0x906A    0x90C4
+0x906B    0xE476
+0x906C    0x90AE
+0x906E    0x9167
+0x906F    0x3AF0
+0x9070    0x91A9
+0x9071    0x91C4
+0x9072    0x7CAC
+0x9073    0xE47E
+0x9074    0xE47F
+0x9075    0x920E
+0x9076    0x6C9F
+0x9077    0x9241
+0x9078    0x9262
+0x9079    0xE484
+0x907B    0xE486
+0x907C    0xE487
+0x907D    0xE488
+0x907E    0xE489
+0x90A1    0xE48A
+0x90A2    0x932C
+0x90A3    0x936B
+0x90A4    0xE48D
+0x90A5    0xE48E
+0x90A6    0x708F
+0x90A7    0x5AC3
+0x90A8    0xE491
+0x90A9    0xE492
+0x90AA    0x4965
+0x90AB    0x9244
+0x90AC    0xE495
+0x90AD    0xE496
+0x90AE    0xE497
+0x90AF    0x9373
+0x90B0    0x945B
+0x90B1    0x8EBC
+0x90B2    0x9585
+0x90B3    0x95A6
+0x90B4    0x9426
+0x90B5    0x95A0
+0x90B6    0x6FF6
+0x90B7    0x42B9
+0x90B8    0xE4A1
+0x90B9    0xE4A2
+0x90BA    0xE4A3
+0x90BB    0xE4A4
+0x90BC    0x49DF
+0x90BD    0x6C1C
+0x90BE    0x967B
+0x90BF    0x9696
+0x90C0    0x416C
+0x90C1    0x96A3
+0x90C2    0xE4AB
+0x90C3    0x61DA
+0x90C4    0x96B6
+0x90C5    0x78F5
+0x90C6    0xE4AF
+0x90C7    0x96BD
+0x90C8    0x53CC
+0x90C9    0x49A1
+0x90CA    0xE4B3
+0x90CB    0xE4B4
+0x90CC    0xE4B5
+0x90CD    0xE4B6
+0x90CE    0xE4B7
+0x90CF    0xE4B8
+0x90D0    0xE4B9
+0x90D1    0xE4BA
+0x90D2    0x9731
+0x90D3    0x8642
+0x90D4    0x9736
+0x90D5    0x4A0F
+0x90D6    0x453D
+0x90D7    0x4585
+0x90D8    0xE4C1
+0x90D9    0x7075
+0x90DA    0x5B41
+0x90DB    0x971B
+0x90DD    0xE4C6
+0x90DE    0x9757
+0x90DF    0x5B4A
+0x90E0    0xE4C9
+0x90E1    0x975F
+0x90E2    0x9425
+0x90E3    0x50D0
+0x90E4    0xE4CD
+0x90E5    0xE4CE
+0x90E6    0x9789
+0x90E7    0x979F
+0x90E8    0x97B1
+0x90E9    0x97BE
+0x90EA    0x97C0
+0x90EB    0x97D2
+0x90EC    0x97E0
+0x90ED    0xE4D6
+0x90EE    0x97EE
+0x90EF    0x741C
+0x90F0    0xE4D9
+0x90F2    0x97F5
+0x90F3    0xE4DC
+0x90F4    0xE4DD
+0x90F5    0x4AD1
+0x90F6    0x9834
+0x90F7    0x9833
+0x90F8    0x984B
+0x90F9    0x9866
+0x90FA    0x3B0E
+0x90FB    0xE4E4
+0x90FC    0x3D51
+0x90FD    0xE4E6
+0x90FE    0xE4E7
+0x9140    0xE4E8
+0x9141    0x98CA
+0x9142    0x98B7
+0x9143    0x98C8
+0x9144    0x98C7
+0x9145    0x4AFF
+0x9146    0xE4EE
+0x9147    0xE4EF
+0x9148    0x55B0
+0x9149    0x98E1
+0x914A    0x98E6
+0x914B    0x98EC
+0x914C    0x9378
+0x914D    0x9939
+0x914E    0xE4F6
+0x914F    0x4B72
+0x9150    0xE4F8
+0x9151    0xE4F9
+0x9152    0x99F5
+0x9153    0x9A0C
+0x9154    0x9A3B
+0x9155    0x9A10
+0x9156    0x9A58
+0x9157    0xE4FF
+0x9158    0x36C4
+0x9159    0xE501
+0x915A    0xE502
+0x915B    0x9AE0
+0x915C    0x9AE2
+0x915D    0xE505
+0x915E    0x9AF4
+0x915F    0x4C0E
+0x9160    0x9B14
+0x9161    0x9B2D
+0x9162    0xE50A
+0x9163    0x5034
+0x9164    0x9B34
+0x9165    0xE50D
+0x9166    0x38C3
+0x9167    0xE50F
+0x9168    0x9B50
+0x9169    0x9B40
+0x916A    0xE512
+0x916B    0x5A45
+0x916C    0xE514
+0x916D    0x9B8E
+0x916E    0xE516
+0x916F    0x9C02
+0x9170    0x9BFF
+0x9171    0x9C0C
+0x9172    0xE51A
+0x9173    0x9DD4
+0x9174    0xE51C
+0x9175    0xE51D
+0x9176    0xE51E
+0x9177    0xE51F
+0x9178    0xE520
+0x9179    0xE521
+0x917A    0x9D7E
+0x917B    0x9D83
+0x917C    0xE524
+0x917D    0x9E0E
+0x917E    0x6888
+0x91A1    0x9DC4
+0x91A2    0xE528
+0x91A3    0xE529
+0x91A4    0xE52A
+0x91A5    0xE52B
+0x91A6    0xE52C
+0x91A7    0x9D39
+0x91A8    0xE52E
+0x91A9    0xE52F
+0x91AA    0x9E90
+0x91AB    0x9E95
+0x91AC    0x9E9E
+0x91AD    0x9EA2
+0x91AE    0x4D34
+0x91AF    0x9EAA
+0x91B0    0x9EAF
+0x91B1    0xE537
+0x91B2    0x9EC1
+0x91B3    0x3B60
+0x91B4    0x39E5
+0x91B5    0x3D1D
+0x91B6    0x4F32
+0x91B7    0x37BE
+0x91B8    0xE53E
+0x91B9    0x9F02
+0x91BA    0x9F08
+0x91BB    0x4B96
+0x91BC    0x9424
+0x91BD    0xE543
+0x91BE    0x9F17
+0x91C0    0x9F39
+0x91C1    0x569F
+0x91C2    0x568A
+0x91C3    0x9F45
+0x91C4    0x99B8
+0x91C5    0xE54B
+0x91C6    0x97F2
+0x91C7    0x847F
+0x91C8    0x9F62
+0x91C9    0x9F69
+0x91CA    0x7ADC
+0x91CB    0x9F8E
+0x91CC    0x7216
+0x91CD    0x4BBE
+0x91CE    0xE554
+0x91CF    0xE555
+0x91D0    0x7177
+0x91D1    0xE557
+0x91D2    0xE558
+0x91D3    0xE559
+0x91D4    0x739E
+0x91D5    0xE55B
+0x91D6    0xE55C
+0x91D7    0x799F
+0x91D8    0xE55E
+0x91D9    0xE55F
+0x91DA    0x9369
+0x91DB    0x93F3
+0x91DC    0xE562
+0x91DD    0x92EC
+0x91DE    0x9381
+0x91DF    0x93CB
+0x91E0    0xE566
+0x91E1    0xE567
+0x91E2    0x7217
+0x91E3    0x3EEB
+0x91E4    0x7772
+0x91E5    0x7A43
+0x91E6    0x70D0
+0x91E7    0xE56D
+0x91E8    0xE56E
+0x91E9    0x717E
+0x91EA    0xE570
+0x91EB    0x70A3
+0x91EC    0xE572
+0x91ED    0xE573
+0x91EE    0x3EC7
+0x91EF    0xE575
+0x91F0    0xE576
+0x91F1    0xE577
+0x91F2    0x3722
+0x91F3    0xE579
+0x91F4    0xE57A
+0x91F5    0x36E1
+0x91F6    0xE57C
+0x91F7    0xE57D
+0x91F8    0xE57E
+0x91F9    0x3723
+0x91FA    0xE580
+0x91FB    0x575B
+0x91FC    0xE582
+0x91FD    0xE583
+0x91FE    0xE584
+0x9240    0xE585
+0x9241    0xE586
+0x9242    0x8503
+0x9243    0xE588
+0x9245    0x8455
+0x9246    0xE58B
+0x9247    0xE58C
+0x9248    0xE58D
+0x9249    0xE58E
+0x924A    0xE58F
+0x924B    0xE590
+0x924C    0x44F4
+0x924D    0xE592
+0x924E    0xE593
+0x924F    0xE594
+0x9250    0x67F9
+0x9251    0x3733
+0x9252    0x3C15
+0x9253    0x3DE7
+0x9254    0x586C
+0x9255    0xE59A
+0x9256    0x6810
+0x9257    0x4057
+0x9258    0xE59D
+0x9259    0xE59E
+0x925A    0xE59F
+0x925B    0xE5A0
+0x925C    0xE5A1
+0x925D    0x54CB
+0x925E    0x569E
+0x925F    0xE5A4
+0x9260    0x5692
+0x9261    0xE5A6
+0x9262    0xE5A7
+0x9263    0xE5A8
+0x9264    0x93C6
+0x9265    0xE5AA
+0x9266    0x939C
+0x9267    0x4EF8
+0x9268    0x512B
+0x9269    0x3819
+0x926A    0xE5AF
+0x926B    0x4EBC
+0x926C    0xE5B1
+0x926D    0xE5B2
+0x926E    0x4F4B
+0x926F    0x4F8A
+0x9270    0xE5B5
+0x9271    0x5A68
+0x9272    0xE5B7
+0x9273    0xE5B8
+0x9274    0x3999
+0x9275    0xE5BA
+0x9276    0xE5BB
+0x9277    0x3435
+0x9278    0x4F29
+0x9279    0xE5BE
+0x927A    0xE5BF
+0x927B    0xE5C0
+0x927C    0x8ADA
+0x927D    0xE5C2
+0x927E    0x4E98
+0x92A1    0x50CD
+0x92A2    0x510D
+0x92A3    0x4FA2
+0x92A4    0x4F03
+0x92A5    0xE5C8
+0x92A6    0xE5C9
+0x92A7    0x4F42
+0x92A8    0x502E
+0x92A9    0x506C
+0x92AA    0x5081
+0x92AB    0x4FCC
+0x92AC    0x4FE5
+0x92AD    0x5058
+0x92AE    0x50FC
+0x92B3    0x6E76
+0x92B4    0xE5D7
+0x92B5    0xE5D8
+0x92B6    0xE5D9
+0x92B7    0x6D72
+0x92B8    0xE5DB
+0x92B9    0xE5DC
+0x92BA    0x51A8
+0x92BB    0x51C3
+0x92BC    0xE5DF
+0x92BD    0x44DD
+0x92BE    0xE5E1
+0x92BF    0xE5E2
+0x92C0    0xE5E3
+0x92C1    0x8D7A
+0x92C2    0xE5E5
+0x92C3    0xE5E6
+0x92C4    0x5259
+0x92C5    0x52A4
+0x92C6    0xE5E9
+0x92C7    0x52E1
+0x92C9    0x467A
+0x92CA    0x718C
+0x92CB    0xE5EE
+0x92CC    0xE5EF
+0x92CD    0xE5F0
+0x92CE    0xE5F1
+0x92CF    0x69D1
+0x92D0    0xE5F3
+0x92D2    0x3EDE
+0x92D3    0x7499
+0x92D4    0x7414
+0x92D5    0x7456
+0x92D6    0x7398
+0x92D7    0x4B8E
+0x92D8    0xE5FB
+0x92D9    0xE5FC
+0x92DA    0x53D0
+0x92DB    0x3584
+0x92DC    0x720F
+0x92DD    0xE600
+0x92DE    0x55B4
+0x92DF    0xE602
+0x92E0    0x54CD
+0x92E1    0xE604
+0x92E2    0x571D
+0x92E3    0x925D
+0x92E4    0x96F4
+0x92E5    0x9366
+0x92E6    0x57DD
+0x92E7    0x578D
+0x92E8    0x577F
+0x92E9    0x363E
+0x92EA    0x58CB
+0x92EB    0x5A99
+0x92EC    0xE60F
+0x92ED    0xE610
+0x92EE    0xE611
+0x92EF    0xE612
+0x92F0    0x5A2C
+0x92F1    0x59B8
+0x92F2    0x928F
+0x92F3    0x5A7E
+0x92F4    0x5ACF
+0x92F5    0x5A12
+0x92F6    0xE619
+0x92F7    0xE61A
+0x92F8    0xE61B
+0x92F9    0xE61C
+0x92FA    0x36F5
+0x92FB    0x6D05
+0x92FC    0x7443
+0x92FD    0x5A21
+0x92FE    0xE621
+0x9340    0x5A81
+0x9341    0xE623
+0x9342    0xE624
+0x9343    0x93E0
+0x9344    0x748C
+0x9345    0xE627
+0x9346    0x7105
+0x9347    0x4972
+0x9348    0x9408
+0x9349    0xE62B
+0x934A    0x93BD
+0x934B    0x37A0
+0x934C    0x5C1E
+0x934D    0x5C9E
+0x934E    0x5E5E
+0x934F    0x5E48
+0x9350    0xE632
+0x9351    0xE633
+0x9352    0xE634
+0x9353    0x5ECD
+0x9354    0x5B4F
+0x9355    0xE637
+0x9356    0xE638
+0x9357    0x3701
+0x9358    0xE63A
+0x9359    0x36DD
+0x935A    0xE63C
+0x935B    0x36D3
+0x935C    0x812A
+0x935D    0xE63F
+0x935E    0xE640
+0x935F    0xE641
+0x9360    0xE642
+0x9361    0x5F0C
+0x9362    0x5F0E
+0x9363    0xE645
+0x9364    0xE646
+0x9365    0x5A6B
+0x9366    0xE648
+0x9367    0x5B44
+0x9368    0x8614
+0x9369    0xE64B
+0x936A    0x8860
+0x936B    0x607E
+0x936C    0xE64E
+0x936D    0xE64F
+0x936E    0x5FDB
+0x936F    0x3EB8
+0x9370    0xE652
+0x9371    0xE653
+0x9372    0xE654
+0x9373    0xE655
+0x9374    0x61C0
+0x9375    0xE657
+0x9376    0xE658
+0x9377    0xE659
+0x9378    0x6199
+0x9379    0x6198
+0x937A    0x6075
+0x937B    0xE65D
+0x937C    0xE65E
+0x937D    0xE65F
+0x937E    0xE660
+0x93A1    0x6471
+0x93A2    0xE662
+0x93A3    0xE663
+0x93A4    0x3A29
+0x93A5    0xE665
+0x93A6    0xE666
+0x93A7    0xE667
+0x93A8    0xE668
+0x93A9    0x6337
+0x93AA    0xE66A
+0x93AB    0x64B6
+0x93AC    0x6331
+0x93AD    0x63D1
+0x93AE    0xE66E
+0x93AF    0xE66F
+0x93B0    0x62A4
+0x93B1    0xE671
+0x93B2    0x643B
+0x93B3    0x656B
+0x93B4    0x6972
+0x93B5    0x3BF4
+0x93B6    0xE676
+0x93B7    0xE677
+0x93B8    0xE678
+0x93B9    0xE679
+0x93BA    0x550D
+0x93BB    0xE67B
+0x93BC    0xE67C
+0x93BD    0xE67D
+0x93BE    0x66CE
+0x93BF    0xE67F
+0x93C0    0xE680
+0x93C1    0x3AE0
+0x93C2    0x4190
+0x93C3    0xE683
+0x93C4    0xE684
+0x93C5    0xE685
+0x93C6    0xE686
+0x93C7    0xE687
+0x93C8    0xE688
+0x93C9    0x78EE
+0x93CA    0xE68A
+0x93CB    0xE68B
+0x93CC    0xE68C
+0x93CD    0x3464
+0x93CE    0xE68E
+0x93CF    0xE68F
+0x93D0    0xE690
+0x93D1    0x668E
+0x93D2    0xE692
+0x93D3    0x666B
+0x93D4    0x4B93
+0x93D5    0x6630
+0x93D6    0xE696
+0x93D7    0xE697
+0x93D8    0x6663
+0x93D9    0xE699
+0x93DA    0xE69A
+0x93DB    0x661E
+0x93DC    0xE69C
+0x93DD    0x38D1
+0x93DE    0xE69E
+0x93DF    0xE69F
+0x93E0    0x3B99
+0x93E1    0xE6A1
+0x93E2    0xE6A2
+0x93E3    0x74D0
+0x93E4    0x3B96
+0x93E5    0x678F
+0x93E6    0xE6A6
+0x93E7    0x68B6
+0x93E8    0x681E
+0x93E9    0x3BC4
+0x93EA    0x6ABE
+0x93EB    0x3863
+0x93EC    0xE6AC
+0x93ED    0xE6AD
+0x93EE    0x6A33
+0x93EF    0x6A52
+0x93F0    0x6AC9
+0x93F1    0x6B05
+0x93F2    0xE6B2
+0x93F3    0x6511
+0x93F4    0x6898
+0x93F5    0x6A4C
+0x93F6    0x3BD7
+0x93F7    0x6A7A
+0x93F8    0x6B57
+0x93F9    0xE6B9
+0x93FA    0xE6BA
+0x93FB    0x93A0
+0x93FC    0x92F2
+0x93FD    0xE6BD
+0x93FE    0xE6BE
+0x9440    0x9289
+0x9441    0xE6C0
+0x9442    0xE6C1
+0x9443    0x9467
+0x9444    0x6DA5
+0x9445    0x6F0B
+0x9446    0xE6C5
+0x9448    0xE6C7
+0x9449    0x3D8F
+0x944A    0x6E04
+0x944B    0xE6CA
+0x944C    0x5A3D
+0x944D    0x6E0A
+0x944E    0x5847
+0x944F    0x6D24
+0x9450    0x7842
+0x9451    0x713B
+0x9452    0xE6D1
+0x9453    0xE6D2
+0x9454    0x70F1
+0x9455    0x7250
+0x9456    0x7287
+0x9457    0x7294
+0x9458    0xE6D7
+0x9459    0xE6D8
+0x945A    0x5179
+0x945B    0xE6DA
+0x945C    0xE6DB
+0x945D    0x747A
+0x945E    0xE6DD
+0x945F    0xE6DE
+0x9460    0xE6DF
+0x9461    0xE6E0
+0x9462    0xE6E1
+0x9463    0x3F06
+0x9464    0x3EB1
+0x9465    0xE6E4
+0x9466    0xE6E5
+0x9467    0xE6E6
+0x9468    0x60A7
+0x9469    0x3EF3
+0x946A    0x74CC
+0x946B    0x743C
+0x946C    0x9387
+0x946D    0x7437
+0x946E    0x449F
+0x946F    0xE6EE
+0x9470    0x4551
+0x9471    0x7583
+0x9472    0x3F63
+0x9473    0xE6F2
+0x9474    0xE6F3
+0x9475    0x3F58
+0x9476    0x7555
+0x9477    0x7673
+0x9478    0xE6F7
+0x9479    0x3B19
+0x947A    0x7468
+0x947B    0xE6FA
+0x947C    0xE6FB
+0x947D    0xE6FC
+0x947E    0x3AFB
+0x94A1    0x3DCD
+0x94A2    0xE6FF
+0x94A3    0x3EFF
+0x94A4    0xE701
+0x94A5    0xE702
+0x94A6    0x91FA
+0x94A7    0x5732
+0x94A8    0x9342
+0x94A9    0xE706
+0x94AA    0xE707
+0x94AB    0x50DF
+0x94AC    0xE709
+0x94AD    0xE70A
+0x94AE    0x7778
+0x94AF    0xE70C
+0x94B0    0x770E
+0x94B1    0x770F
+0x94B2    0x777B
+0x94B3    0xE710
+0x94B4    0xE711
+0x94B5    0x3A5E
+0x94B6    0xE713
+0x94B7    0x7438
+0x94B8    0x749B
+0x94B9    0x3EBF
+0x94BA    0xE717
+0x94BB    0xE718
+0x94BC    0x40C8
+0x94BD    0xE71A
+0x94BE    0xE71B
+0x94BF    0x9307
+0x94C0    0xE71D
+0x94C1    0x781E
+0x94C2    0x788D
+0x94C3    0x7888
+0x94C4    0x78D2
+0x94C5    0x73D0
+0x94C6    0x7959
+0x94C7    0xE724
+0x94C8    0xE725
+0x94C9    0x410E
+0x94CB    0x8496
+0x94CC    0x79A5
+0x94CD    0x6A2D
+0x94CE    0xE72B
+0x94CF    0x7A3A
+0x94D0    0x79F4
+0x94D1    0x416E
+0x94D2    0xE72F
+0x94D3    0x4132
+0x94D4    0x9235
+0x94D5    0x79F1
+0x94D6    0xE733
+0x94D7    0xE734
+0x94D8    0xE735
+0x94D9    0xE736
+0x94DA    0xE737
+0x94DB    0x3597
+0x94DC    0x556B
+0x94DD    0x3570
+0x94DE    0x36AA
+0x94DF    0xE73C
+0x94E0    0xE73D
+0x94E1    0x7AE2
+0x94E2    0x5A59
+0x94E3    0xE740
+0x94E4    0xE741
+0x94E5    0xE742
+0x94E6    0x5A0D
+0x94E7    0xE744
+0x94E8    0x78F0
+0x94E9    0x5A2A
+0x94EA    0xE747
+0x94EB    0x7AFE
+0x94EC    0x41F9
+0x94ED    0x7C5D
+0x94EE    0x7C6D
+0x94EF    0x4211
+0x94F0    0xE74D
+0x94F1    0xE74E
+0x94F2    0xE74F
+0x94F3    0x7CCD
+0x94F4    0xE751
+0x94F5    0xE752
+0x94F6    0x7C8E
+0x94F7    0x7C7C
+0x94F8    0x7CAE
+0x94F9    0x6AB2
+0x94FA    0x7DDC
+0x94FB    0x7E07
+0x94FC    0x7DD3
+0x94FD    0x7F4E
+0x94FE    0xE75B
+0x9540    0xE75C
+0x9541    0xE75D
+0x9542    0x7D97
+0x9543    0xE75F
+0x9544    0x426A
+0x9545    0xE761
+0x9546    0xE762
+0x9547    0x67D6
+0x9548    0xE764
+0x9549    0xE765
+0x954A    0x57C4
+0x954B    0xE767
+0x954C    0xE768
+0x954D    0xE769
+0x954E    0x7FDD
+0x954F    0x7B27
+0x9550    0xE76C
+0x9551    0xE76D
+0x9552    0xE76E
+0x9553    0x7B0C
+0x9554    0xE770
+0x9555    0x99E6
+0x9556    0x8645
+0x9557    0x9A63
+0x9558    0x6A1C
+0x9559    0xE775
+0x955A    0x39E2
+0x955B    0xE777
+0x955C    0xE778
+0x955D    0x9A1F
+0x955E    0xE77A
+0x955F    0x8480
+0x9560    0xE77C
+0x9561    0xE77D
+0x9562    0x44EA
+0x9563    0x8137
+0x9564    0x4402
+0x9565    0x80C6
+0x9566    0x8109
+0x9567    0x8142
+0x9568    0xE784
+0x9569    0x98C3
+0x956A    0xE786
+0x956B    0x8262
+0x956C    0x8265
+0x956D    0xE789
+0x956E    0x8453
+0x956F    0xE78B
+0x9570    0x8610
+0x9571    0xE78D
+0x9572    0x5A86
+0x9573    0x417F
+0x9574    0xE790
+0x9575    0x5B2B
+0x9576    0xE792
+0x9577    0x5AE4
+0x9578    0xE794
+0x9579    0x86A0
+0x957A    0xE796
+0x957B    0xE797
+0x957C    0x882D
+0x957D    0xE799
+0x957E    0x5A02
+0x95A1    0x886E
+0x95A2    0x4F45
+0x95A3    0x8887
+0x95A4    0x88BF
+0x95A5    0x88E6
+0x95A6    0x8965
+0x95A7    0x894D
+0x95A8    0xE7A2
+0x95A9    0x8954
+0x95AA    0xE7A4
+0x95AB    0xE7A5
+0x95AC    0xE7A6
+0x95AD    0xE7A7
+0x95AE    0xE7A8
+0x95AF    0xE7A9
+0x95B0    0x3EAD
+0x95B1    0x84A3
+0x95B2    0x46F5
+0x95B3    0x46CF
+0x95B4    0x37F2
+0x95B5    0x8A3D
+0x95B6    0x8A1C
+0x95B7    0xE7B1
+0x95B8    0x5F4D
+0x95B9    0x922B
+0x95BA    0xE7B4
+0x95BB    0x65D4
+0x95BC    0x7129
+0x95BD    0x70C4
+0x95BE    0xE7B8
+0x95BF    0x9D6D
+0x95C0    0x8C9F
+0x95C1    0x8CE9
+0x95C2    0xE7BC
+0x95C3    0x599A
+0x95C4    0x77C3
+0x95C5    0x59F0
+0x95C6    0x436E
+0x95C7    0x36D4
+0x95C8    0x8E2A
+0x95C9    0x8EA7
+0x95CA    0xE7C4
+0x95CB    0x8F30
+0x95CC    0x8F4A
+0x95CD    0x42F4
+0x95CE    0x6C58
+0x95CF    0x6FBB
+0x95D0    0xE7CA
+0x95D1    0x489B
+0x95D2    0x6F79
+0x95D3    0x6E8B
+0x95D4    0xE7CE
+0x95D5    0x9BE9
+0x95D6    0x36B5
+0x95D7    0xE7D1
+0x95D8    0x90BB
+0x95DA    0x5571
+0x95DB    0x4906
+0x95DC    0x91BB
+0x95DD    0x9404
+0x95DE    0xE7D8
+0x95DF    0x4062
+0x95E0    0xE7DA
+0x95E1    0x9427
+0x95E2    0xE7DC
+0x95E3    0xE7DD
+0x95E4    0x84E5
+0x95E5    0x8A2B
+0x95E6    0x9599
+0x95E7    0x95A7
+0x95E8    0x9597
+0x95E9    0x9596
+0x95EA    0xE7E4
+0x95EB    0x7445
+0x95EC    0x3EC2
+0x95ED    0xE7E7
+0x95EE    0xE7E8
+0x95EF    0xE7E9
+0x95F0    0x3EE7
+0x95F1    0xE7EB
+0x95F2    0x968F
+0x95F3    0xE7ED
+0x95F4    0xE7EE
+0x95F5    0xE7EF
+0x95F6    0x3ECC
+0x95F7    0xE7F1
+0x95F8    0xE7F2
+0x95F9    0xE7F3
+0x95FA    0x7412
+0x95FB    0x746B
+0x95FC    0x3EFC
+0x95FD    0x9741
+0x95FE    0xE7F8
+0x9640    0x6847
+0x9641    0x4A1D
+0x9642    0xE7FB
+0x9643    0xE7FC
+0x9645    0x9368
+0x9646    0xE7FF
+0x9647    0xE800
+0x9648    0xE801
+0x9649    0xE802
+0x964A    0x92BA
+0x964B    0x5B11
+0x964C    0x8B69
+0x964D    0x493C
+0x964E    0x73F9
+0x964F    0xE808
+0x9650    0x979B
+0x9651    0x9771
+0x9652    0x9938
+0x9653    0xE80C
+0x9654    0x5DC1
+0x9655    0xE80E
+0x9656    0xE80F
+0x9657    0x981F
+0x9658    0xE811
+0x9659    0x92F6
+0x965A    0xE813
+0x965B    0x91E5
+0x965C    0x44C0
+0x965D    0xE816
+0x965E    0xE817
+0x965F    0xE818
+0x9660    0x98DC
+0x9661    0xE81A
+0x9662    0x3F00
+0x9663    0x922A
+0x9664    0x4925
+0x9665    0x8414
+0x9666    0x993B
+0x9667    0x994D
+0x9668    0xE821
+0x9669    0x3DFD
+0x966A    0x999B
+0x966B    0x4B6F
+0x966C    0x99AA
+0x966D    0x9A5C
+0x966E    0xE827
+0x966F    0xE828
+0x9670    0x6A8F
+0x9671    0x9A21
+0x9672    0x5AFE
+0x9673    0x9A2F
+0x9674    0xE82D
+0x9675    0x4B90
+0x9676    0xE82F
+0x9677    0x99BC
+0x9678    0x4BBD
+0x9679    0x4B97
+0x967A    0x937D
+0x967B    0x5872
+0x967C    0xE835
+0x967D    0x5822
+0x967E    0xE837
+0x96A1    0xE838
+0x96A2    0x7844
+0x96A3    0xE83A
+0x96A4    0xE83B
+0x96A5    0x68C5
+0x96A6    0x3D7D
+0x96A7    0x9458
+0x96A8    0x3927
+0x96A9    0x6150
+0x96AA    0xE841
+0x96AB    0xE842
+0x96AC    0x6107
+0x96AD    0x9C4F
+0x96AE    0x9C53
+0x96AF    0x9C7B
+0x96B0    0x9C35
+0x96B1    0x9C10
+0x96B2    0x9B7F
+0x96B3    0x9BCF
+0x96B4    0xE84B
+0x96B5    0x9B9F
+0x96B6    0xE84D
+0x96B7    0xE84E
+0x96B8    0x9D21
+0x96B9    0x4CAE
+0x96BA    0xE851
+0x96BB    0x9E18
+0x96BC    0x4CB0
+0x96BD    0x9D0C
+0x96BE    0xE855
+0x96BF    0xE856
+0x96C0    0xE857
+0x96C1    0xE858
+0x96C2    0x9DA5
+0x96C3    0x84BD
+0x96C4    0xE85B
+0x96C5    0xE85C
+0x96C6    0xE85D
+0x96C7    0x85FC
+0x96C8    0x4533
+0x96C9    0xE860
+0x96CA    0xE861
+0x96CB    0xE862
+0x96CC    0x8420
+0x96CD    0x85EE
+0x96CE    0xE865
+0x96CF    0xE866
+0x96D0    0xE867
+0x96D1    0x79E2
+0x96D2    0xE869
+0x96D3    0xE86A
+0x96D4    0x492D
+0x96D5    0xE86C
+0x96D6    0x3D62
+0x96D7    0x93DB
+0x96D8    0x92BE
+0x96D9    0x9348
+0x96DA    0xE871
+0x96DB    0x78B9
+0x96DC    0x9277
+0x96DD    0x944D
+0x96DE    0x4FE4
+0x96DF    0x3440
+0x96E0    0x9064
+0x96E1    0xE878
+0x96E2    0x783D
+0x96E3    0x7854
+0x96E4    0x78B6
+0x96E5    0x784B
+0x96E6    0xE87D
+0x96E7    0xE87E
+0x96E8    0xE87F
+0x96E9    0x369A
+0x96EA    0x4F72
+0x96EB    0x6FDA
+0x96EC    0x6FD9
+0x96EE    0x701E
+0x96EF    0x5414
+0x96F0    0xE887
+0x96F1    0x57BB
+0x96F2    0x58F3
+0x96F3    0x578A
+0x96F4    0x9D16
+0x96F5    0x57D7
+0x96F6    0x7134
+0x96F7    0x34AF
+0x96F8    0xE88F
+0x96F9    0x71EB
+0x96FA    0xE891
+0x96FB    0xE892
+0x96FD    0xE894
+0x96FE    0xE895
+0x9740    0x610C
+0x9741    0x5ACE
+0x9742    0x5A0B
+0x9743    0x42BC
+0x9744    0xE89A
+0x9745    0x372C
+0x9746    0x4B7B
+0x9747    0xE89D
+0x9748    0x93BB
+0x9749    0x93B8
+0x974A    0xE8A0
+0x974B    0xE8A1
+0x974C    0x8472
+0x974D    0xE8A3
+0x974E    0xE8A4
+0x974F    0xE8A5
+0x9750    0xE8A6
+0x9751    0xE8A7
+0x9752    0x5994
+0x9753    0xE8A9
+0x9754    0xE8AA
+0x9755    0x7DA8
+0x9756    0xE8AC
+0x9757    0xE8AD
+0x9758    0xE8AE
+0x9759    0xE8AF
+0x975A    0xE8B0
+0x975B    0x92E5
+0x975C    0x73E2
+0x975D    0x3EE9
+0x975E    0x74B4
+0x975F    0xE8B5
+0x9760    0xE8B6
+0x9761    0x3EE1
+0x9762    0xE8B8
+0x9763    0x6AD8
+0x9764    0x73F3
+0x9765    0x73FB
+0x9766    0x3ED6
+0x9767    0xE8BD
+0x9768    0xE8BE
+0x9769    0xE8BF
+0x976A    0xE8C0
+0x976B    0xE8C1
+0x976C    0xE8C2
+0x976D    0xE8C3
+0x976E    0x7448
+0x976F    0xE8C5
+0x9770    0x70A5
+0x9771    0xE8C7
+0x9772    0x9284
+0x9773    0x73E6
+0x9774    0x935F
+0x9775    0xE8CB
+0x9776    0x9331
+0x9777    0xE8CD
+0x9778    0xE8CE
+0x9779    0x9386
+0x977A    0xE8D0
+0x977B    0xE8D1
+0x977C    0x4935
+0x977D    0xE8D3
+0x977E    0x716B
+0x97A1    0xE8D5
+0x97A2    0xE8D6
+0x97A3    0x56A4
+0x97A4    0xE8D8
+0x97A5    0xE8D9
+0x97A6    0xE8DA
+0x97A7    0x5502
+0x97A8    0x79C4
+0x97A9    0xE8DD
+0x97AA    0x7DFE
+0x97AB    0xE8DF
+0x97AC    0xE8E0
+0x97AD    0xE8E1
+0x97AE    0x452E
+0x97AF    0x9401
+0x97B0    0x370A
+0x97B1    0xE8E5
+0x97B2    0xE8E6
+0x97B3    0x59B0
+0x97B4    0xE8E8
+0x97B5    0xE8E9
+0x97B6    0xE8EA
+0x97B7    0x5AA1
+0x97B8    0x36E2
+0x97B9    0xE8ED
+0x97BA    0x36B0
+0x97BB    0x925F
+0x97BC    0x5A79
+0x97BD    0xE8F1
+0x97BE    0xE8F2
+0x97BF    0x9374
+0x97C0    0x3CCD
+0x97C1    0xE8F5
+0x97C2    0x4A96
+0x97C3    0x398A
+0x97C4    0x50F4
+0x97C5    0x3D69
+0x97C6    0x3D4C
+0x97C7    0xE8FB
+0x97C8    0x7175
+0x97C9    0x42FB
+0x97CA    0xE8FE
+0x97CB    0x6E0F
+0x97CC    0xE900
+0x97CD    0x44EB
+0x97CE    0x6D57
+0x97CF    0xE903
+0x97D0    0x7067
+0x97D1    0x6CAF
+0x97D2    0x3CD6
+0x97D3    0xE907
+0x97D4    0xE908
+0x97D5    0x6E02
+0x97D6    0x6F0C
+0x97D7    0x3D6F
+0x97D8    0xE90C
+0x97D9    0x7551
+0x97DA    0x36BC
+0x97DB    0x34C8
+0x97DC    0x4680
+0x97DD    0x3EDA
+0x97DE    0x4871
+0x97DF    0x59C4
+0x97E0    0x926E
+0x97E1    0x493E
+0x97E2    0x8F41
+0x97E3    0xE917
+0x97E4    0xE918
+0x97E5    0x5812
+0x97E6    0x57C8
+0x97E7    0x36D6
+0x97E8    0xE91C
+0x97E9    0x70FE
+0x97EA    0xE91E
+0x97EB    0xE91F
+0x97EC    0xE920
+0x97ED    0xE921
+0x97EE    0xE922
+0x97EF    0x68B9
+0x97F0    0x6967
+0x97F1    0xE925
+0x97F2    0xE926
+0x97F3    0xE927
+0x97F4    0xE928
+0x97F5    0xE929
+0x97F6    0xE92A
+0x97F7    0xE92B
+0x97F8    0xE92C
+0x97F9    0x6A1A
+0x97FA    0xE92E
+0x97FB    0xE92F
+0x97FC    0x843E
+0x97FD    0x44DF
+0x97FE    0x44CE
+0x9840    0xE933
+0x9841    0xE934
+0x9842    0xE935
+0x9843    0xE936
+0x9844    0x6F17
+0x9845    0xE938
+0x9846    0x833D
+0x9847    0xE93A
+0x9848    0x83ED
+0x9849    0xE93C
+0x984A    0xE93D
+0x984B    0xE93E
+0x984C    0x5989
+0x984D    0x5A82
+0x984E    0xE941
+0x984F    0x5A61
+0x9850    0x5A71
+0x9851    0xE944
+0x9852    0xE945
+0x9853    0x372D
+0x9854    0x59EF
+0x9855    0xE948
+0x9856    0x36C7
+0x9857    0x718E
+0x9858    0x9390
+0x9859    0x669A
+0x985A    0xE94D
+0x985B    0x5A6E
+0x985C    0x5A2B
+0x985D    0xE950
+0x985E    0x6A2B
+0x985F    0xE952
+0x9860    0xE953
+0x9861    0xE954
+0x9862    0xE955
+0x9863    0x711D
+0x9864    0xE957
+0x9865    0xE958
+0x9866    0x4FB0
+0x9867    0xE95A
+0x9868    0x5CC2
+0x9869    0xE95C
+0x986A    0xE95D
+0x986B    0xE95E
+0x986C    0x6A0C
+0x986D    0xE960
+0x986E    0xE961
+0x986F    0x70A6
+0x9870    0x7133
+0x9871    0xE964
+0x9872    0x3DA5
+0x9873    0x6CDF
+0x9874    0xE967
+0x9875    0xE968
+0x9876    0x7E65
+0x9877    0x59EB
+0x9878    0x5D2F
+0x9879    0x3DF3
+0x987A    0x5F5C
+0x987B    0xE96E
+0x987C    0xE96F
+0x987D    0x7DA4
+0x987E    0x8426
+0x98A1    0x5485
+0x98A2    0xE973
+0x98A3    0xE974
+0x98A4    0xE975
+0x98A5    0x577E
+0x98A6    0xE977
+0x98A7    0xE978
+0x98A8    0x3FE5
+0x98A9    0xE97A
+0x98AA    0xE97B
+0x98AB    0x7003
+0x98AC    0xE97D
+0x98AD    0x5D70
+0x98AE    0x738F
+0x98AF    0x7CD3
+0x98B0    0xE981
+0x98B1    0xE982
+0x98B2    0x4FC8
+0x98B3    0x7FE7
+0x98B4    0x72CD
+0x98B5    0x7310
+0x98B6    0xE987
+0x98B7    0x7338
+0x98B8    0x7339
+0x98B9    0xE98A
+0x98BA    0x7341
+0x98BB    0x7348
+0x98BC    0x3EA9
+0x98BD    0xE98E
+0x98BE    0x906C
+0x98BF    0x71F5
+0x98C0    0xE991
+0x98C1    0x73E1
+0x98C2    0x81F6
+0x98C3    0x3ECA
+0x98C4    0x770C
+0x98C5    0x3ED1
+0x98C6    0x6CA2
+0x98C7    0x56FD
+0x98C8    0x7419
+0x98C9    0x741E
+0x98CA    0x741F
+0x98CB    0x3EE2
+0x98CC    0x3EF0
+0x98CD    0x3EF4
+0x98CE    0x3EFA
+0x98CF    0x74D3
+0x98D0    0x3F0E
+0x98D1    0x3F53
+0x98D2    0x7542
+0x98D3    0x756D
+0x98D4    0x7572
+0x98D5    0x758D
+0x98D6    0x3F7C
+0x98D7    0x75C8
+0x98D8    0x75DC
+0x98D9    0x3FC0
+0x98DA    0x764D
+0x98DB    0x3FD7
+0x98DC    0x7674
+0x98DD    0x3FDC
+0x98DE    0x767A
+0x98DF    0xE9B0
+0x98E0    0x7188
+0x98E1    0x5623
+0x98E2    0x8980
+0x98E3    0x5869
+0x98E4    0x401D
+0x98E5    0x7743
+0x98E6    0x4039
+0x98E7    0x6761
+0x98E8    0x4045
+0x98E9    0x35DB
+0x98EA    0x7798
+0x98EB    0x406A
+0x98EC    0x406F
+0x98ED    0x5C5E
+0x98EE    0x77BE
+0x98EF    0x77CB
+0x98F0    0x58F2
+0x98F1    0x7818
+0x98F2    0x70B9
+0x98F3    0x781C
+0x98F4    0x40A8
+0x98F5    0x7839
+0x98F6    0x7847
+0x98F7    0x7851
+0x98F8    0x7866
+0x98F9    0x8448
+0x98FA    0xE9CB
+0x98FB    0x7933
+0x98FC    0x6803
+0x98FD    0x7932
+0x98FE    0x4103
+0x9940    0x4109
+0x9941    0x7991
+0x9942    0x7999
+0x9943    0x8FBB
+0x9944    0x7A06
+0x9945    0x8FBC
+0x9946    0x4167
+0x9947    0x7A91
+0x9948    0x41B2
+0x9949    0x7ABC
+0x994A    0x8279
+0x994B    0x41C4
+0x994C    0x7ACF
+0x994D    0x7ADB
+0x994E    0x41CF
+0x994F    0x4E21
+0x9950    0x7B62
+0x9951    0x7B6C
+0x9952    0x7B7B
+0x9953    0x7C12
+0x9954    0x7C1B
+0x9955    0x4260
+0x9956    0x427A
+0x9957    0x7C7B
+0x9958    0x7C9C
+0x9959    0x428C
+0x995A    0x7CB8
+0x995B    0x4294
+0x995C    0x7CED
+0x995D    0x8F93
+0x995E    0x70C0
+0x995F    0xE9EF
+0x9960    0x7DCF
+0x9961    0x7DD4
+0x9962    0x7DD0
+0x9963    0x7DFD
+0x9964    0x7FAE
+0x9965    0x7FB4
+0x9966    0x729F
+0x9967    0x4397
+0x9968    0x8020
+0x9969    0x8025
+0x996A    0x7B39
+0x996B    0x802E
+0x996C    0x8031
+0x996D    0x8054
+0x996E    0x3DCC
+0x996F    0x57B4
+0x9970    0x70A0
+0x9971    0x80B7
+0x9972    0x80E9
+0x9973    0x43ED
+0x9974    0x810C
+0x9975    0x732A
+0x9976    0x810E
+0x9977    0x8112
+0x9978    0x7560
+0x9979    0x8114
+0x997A    0x4401
+0x997B    0x3B39
+0x997C    0x8156
+0x997D    0x8159
+0x997E    0x815A
+0x99A1    0x4413
+0x99A2    0x583A
+0x99A3    0x817C
+0x99A4    0x8184
+0x99A5    0x4425
+0x99A6    0x8193
+0x99A7    0x442D
+0x99A8    0x81A5
+0x99A9    0x57EF
+0x99AA    0x81C1
+0x99AB    0x81E4
+0x99AC    0x8254
+0x99AD    0x448F
+0x99AE    0x82A6
+0x99AF    0x8276
+0x99B0    0x82CA
+0x99B1    0x82D8
+0x99B2    0x82FF
+0x99B3    0x44B0
+0x99B4    0x8357
+0x99B5    0x9669
+0x99B6    0x698A
+0x99B7    0x8405
+0x99B8    0x70F5
+0x99B9    0x8464
+0x99BA    0x60E3
+0x99BB    0x8488
+0x99BC    0x4504
+0x99BD    0x84BE
+0x99BE    0x84E1
+0x99BF    0x84F8
+0x99C0    0x8510
+0x99C1    0x8538
+0x99C2    0x8552
+0x99C3    0x453B
+0x99C4    0x856F
+0x99C5    0x8570
+0x99C6    0x85E0
+0x99C7    0x4577
+0x99C8    0x8672
+0x99C9    0x8692
+0x99CA    0x86B2
+0x99CB    0x86EF
+0x99CC    0x9645
+0x99CD    0x878B
+0x99CE    0x4606
+0x99CF    0x4617
+0x99D0    0x88AE
+0x99D1    0x88FF
+0x99D2    0x8924
+0x99D3    0x8947
+0x99D4    0x8991
+0x99D5    0xEA43
+0x99D6    0x8A29
+0x99D7    0x8A38
+0x99D8    0x8A94
+0x99D9    0x8AB4
+0x99DA    0x8C51
+0x99DB    0x8CD4
+0x99DC    0x8CF2
+0x99DD    0x8D1C
+0x99DE    0x4798
+0x99DF    0x585F
+0x99E0    0x8DC3
+0x99E1    0x47ED
+0x99E2    0x4EEE
+0x99E3    0x8E3A
+0x99E4    0x55D8
+0x99E5    0x5754
+0x99E6    0x8E71
+0x99E7    0x55F5
+0x99E8    0x8EB0
+0x99E9    0x4837
+0x99EA    0x8ECE
+0x99EB    0x8EE2
+0x99EC    0x8EE4
+0x99ED    0x8EED
+0x99EE    0x8EF2
+0x99EF    0x8FB7
+0x99F0    0x8FC1
+0x99F1    0x8FCA
+0x99F2    0x8FCC
+0x99F3    0x9033
+0x99F4    0x99C4
+0x99F5    0x48AD
+0x99F6    0x98E0
+0x99F7    0x9213
+0x99F8    0x491E
+0x99F9    0x9228
+0x99FA    0x9258
+0x99FB    0x926B
+0x99FC    0x92B1
+0x99FD    0x92AE
+0x99FE    0x92BF
+0x9A40    0x92E3
+0x9A41    0x92EB
+0x9A42    0x92F3
+0x9A43    0x92F4
+0x9A44    0x92FD
+0x9A45    0x9343
+0x9A46    0x9384
+0x9A47    0x93AD
+0x9A48    0x4945
+0x9A49    0x4951
+0x9A4A    0x9EBF
+0x9A4B    0x9417
+0x9A4C    0x5301
+0x9A4D    0x941D
+0x9A4E    0x942D
+0x9A4F    0x943E
+0x9A50    0x496A
+0x9A51    0x9454
+0x9A52    0x9479
+0x9A53    0x952D
+0x9A54    0x95A2
+0x9A55    0x49A7
+0x9A56    0x95F4
+0x9A57    0x9633
+0x9A58    0x49E5
+0x9A59    0x67A0
+0x9A5A    0x4A24
+0x9A5B    0x9740
+0x9A5C    0x4A35
+0x9A5D    0x97B2
+0x9A5E    0x97C2
+0x9A5F    0x5654
+0x9A60    0x4AE4
+0x9A61    0x60E8
+0x9A62    0x98B9
+0x9A63    0x4B19
+0x9A64    0x98F1
+0x9A65    0x5844
+0x9A66    0x990E
+0x9A67    0x9919
+0x9A68    0x51B4
+0x9A69    0x991C
+0x9A6A    0x9937
+0x9A6B    0x9942
+0x9A6C    0x995D
+0x9A6D    0x9962
+0x9A6E    0x4B70
+0x9A6F    0x99C5
+0x9A70    0x4B9D
+0x9A71    0x9A3C
+0x9A72    0x9B0F
+0x9A73    0x7A83
+0x9A74    0x9B69
+0x9A75    0x9B81
+0x9A76    0x9BDD
+0x9A77    0x9BF1
+0x9A78    0x9BF4
+0x9A79    0x4C6D
+0x9A7A    0x9C20
+0x9A7B    0x376F
+0x9A7C    0xEAA9
+0x9A7D    0x9D49
+0x9A7E    0x9C3A
+0x9AA1    0x9EFE
+0x9AA2    0x5650
+0x9AA3    0x9D93
+0x9AA4    0x9DBD
+0x9AA5    0x9DC0
+0x9AA6    0x9DFC
+0x9AA7    0x94F6
+0x9AA8    0x8FB6
+0x9AA9    0x9E7B
+0x9AAA    0x9EAC
+0x9AAB    0x9EB1
+0x9AAC    0x9EBD
+0x9AAD    0x9EC6
+0x9AAE    0x94DC
+0x9AAF    0x9EE2
+0x9AB0    0x9EF1
+0x9AB1    0x9EF8
+0x9AB2    0x7AC8
+0x9AB3    0x9F44
+0x9AB4    0xEABF
+0x9AB5    0xEAC0
+0x9AB6    0xEAC1
+0x9AB7    0x691A
+0x9AB8    0x94C3
+0x9AB9    0x59AC
+0x9ABA    0xEAC5
+0x9ABB    0x5840
+0x9ABC    0x94C1
+0x9ABD    0x37B9
+0x9ABE    0xEAC9
+0x9ABF    0xEACA
+0x9AC0    0xEACB
+0x9AC1    0xEACC
+0x9AC2    0x5757
+0x9AC3    0x7173
+0x9AC4    0xEACF
+0x9AC5    0xEAD0
+0x9AC6    0xEAD1
+0x9AC7    0x546A
+0x9AC8    0xEAD3
+0x9AC9    0xEAD4
+0x9ACA    0x549E
+0x9ACB    0xEAD6
+0x9ACC    0xEAD7
+0x9ACD    0xEAD8
+0x9ACE    0xEAD9
+0x9ACF    0xEADA
+0x9AD0    0x60E7
+0x9AD1    0xEADC
+0x9AD2    0x567A
+0x9AD3    0xEADE
+0x9AD4    0xEADF
+0x9AD5    0xEAE0
+0x9AD6    0xEAE1
+0x9AD7    0xEAE2
+0x9AD8    0xEAE3
+0x9AD9    0x6955
+0x9ADA    0x9C2F
+0x9ADB    0x87A5
+0x9ADC    0xEAE7
+0x9ADD    0xEAE8
+0x9ADE    0xEAE9
+0x9ADF    0xEAEA
+0x9AE0    0xEAEB
+0x9AE1    0xEAEC
+0x9AE2    0x5C20
+0x9AE3    0xEAEE
+0x9AE4    0x5E0B
+0x9AE5    0xEAF0
+0x9AE6    0xEAF1
+0x9AE7    0xEAF2
+0x9AE8    0x671E
+0x9AE9    0xEAF4
+0x9AEA    0xEAF5
+0x9AEB    0xEAF6
+0x9AEC    0x3647
+0x9AED    0xEAF8
+0x9AEE    0xEAF9
+0x9AEF    0xEAFA
+0x9AF0    0xEAFB
+0x9AF1    0x5364
+0x9AF2    0x84AD
+0x9AF3    0xEAFE
+0x9AF4    0xEAFF
+0x9AF5    0xEB00
+0x9AF6    0x8B81
+0x9AF7    0xEB02
+0x9AF8    0xEB03
+0x9AF9    0xEB04
+0x9AFA    0xEB05
+0x9AFB    0x4E78
+0x9AFC    0x70BB
+0x9AFD    0xEB08
+0x9AFE    0xEB09
+0x9B40    0xEB0A
+0x9B41    0xEB0B
+0x9B42    0xEB0C
+0x9B43    0xEB0D
+0x9B44    0xEB0E
+0x9B45    0xEB0F
+0x9B46    0x62C3
+0x9B47    0xEB11
+0x9B48    0xEB12
+0x9B49    0x7198
+0x9B4A    0x6855
+0x9B4B    0xEB15
+0x9B4C    0x69E9
+0x9B4D    0x36C8
+0x9B4E    0xEB18
+0x9B4F    0xEB19
+0x9B50    0xEB1A
+0x9B51    0xEB1B
+0x9B52    0xEB1C
+0x9B53    0xEB1D
+0x9B54    0x82FD
+0x9B55    0xEB1F
+0x9B56    0xEB20
+0x9B57    0xEB21
+0x9B58    0x89A5
+0x9B59    0xEB23
+0x9B5A    0x8FA0
+0x9B5B    0xEB25
+0x9B5C    0x97B8
+0x9B5D    0xEB27
+0x9B5E    0x9847
+0x9B5F    0x9ABD
+0x9B60    0xEB2A
+0x9B62    0xEB2C
+0x9B63    0xEB2D
+0x9B64    0xEB2E
+0x9B65    0xEB2F
+0x9B66    0xEB30
+0x9B67    0xEB31
+0x9B68    0xEB32
+0x9B69    0xEB33
+0x9B6A    0xEB34
+0x9B6B    0xEB35
+0x9B6C    0xEB36
+0x9B6D    0xEB37
+0x9B6E    0xEB38
+0x9B6F    0xEB39
+0x9B70    0x5FB1
+0x9B71    0x6648
+0x9B72    0x66BF
+0x9B73    0xEB3D
+0x9B74    0xEB3E
+0x9B75    0xEB3F
+0x9B77    0xEB41
+0x9B79    0xEB43
+0x9B7A    0xEB44
+0x9B7C    0xEB46
+0x9B7D    0x58B5
+0x9B7E    0x670E
+0x9BA1    0x6918
+0x9BA2    0xEB4A
+0x9BA3    0xEB4B
+0x9BA4    0xEB4C
+0x9BA5    0xEB4D
+0x9BA6    0xEB4E
+0x9BA7    0xEB4F
+0x9BA8    0xEB50
+0x9BA9    0x48D0
+0x9BAA    0x4AB8
+0x9BAB    0xEB53
+0x9BAC    0xEB54
+0x9BAD    0xEB55
+0x9BAE    0xEB56
+0x9BAF    0xEB57
+0x9BB0    0xEB58
+0x9BB1    0xEB59
+0x9BB2    0xEB5A
+0x9BB3    0xEB5B
+0x9BB4    0x51D2
+0x9BB5    0xEB5D
+0x9BB6    0x599F
+0x9BB7    0xEB5F
+0x9BB8    0x3BBE
+0x9BB9    0xEB61
+0x9BBA    0xEB62
+0x9BBB    0xEB63
+0x9BBC    0x5788
+0x9BBD    0xEB65
+0x9BBE    0x399B
+0x9BBF    0xEB67
+0x9BC0    0xEB68
+0x9BC1    0xEB69
+0x9BC2    0x3762
+0x9BC3    0xEB6B
+0x9BC4    0x8B5E
+0x9BC5    0xEB6D
+0x9BC7    0xEB6F
+0x9BC8    0xEB70
+0x9BC9    0xEB71
+0x9BCA    0x7209
+0x9BCB    0xEB73
+0x9BCC    0xEB74
+0x9BCD    0x5965
+0x9BCE    0xEB76
+0x9BCF    0xEB77
+0x9BD0    0xEB78
+0x9BD1    0x8EDA
+0x9BD2    0xEB7A
+0x9BD3    0x528F
+0x9BD4    0x573F
+0x9BD5    0x7171
+0x9BD6    0xEB7E
+0x9BD7    0xEB7F
+0x9BD8    0xEB80
+0x9BD9    0xEB81
+0x9BDA    0x55BC
+0x9BDB    0xEB83
+0x9BDC    0xEB84
+0x9BDD    0xEB85
+0x9BDF    0x3473
+0x9BE0    0xEB88
+0x9BE1    0xEB89
+0x9BE2    0xEB8A
+0x9BE3    0x4718
+0x9BE4    0xEB8C
+0x9BE5    0xEB8D
+0x9BE6    0xEB8E
+0x9BE7    0xEB8F
+0x9BE8    0xEB90
+0x9BE9    0x5066
+0x9BEA    0x34FB
+0x9BEB    0xEB93
+0x9BED    0xEB95
+0x9BEE    0x477C
+0x9BEF    0xEB97
+0x9BF0    0xEB98
+0x9BF1    0xEB99
+0x9BF2    0xEB9A
+0x9BF3    0xEB9B
+0x9BF4    0x57A1
+0x9BF5    0x7151
+0x9BF7    0xEB9F
+0x9BF8    0xEBA0
+0x9BF9    0x9056
+0x9BFA    0xEBA2
+0x9BFB    0xEBA3
+0x9BFC    0x8B62
+0x9BFD    0xEBA5
+0x9BFE    0xEBA6
+0x9C40    0x5D5B
+0x9C41    0xEBA8
+0x9C43    0xEBAA
+0x9C44    0xEBAB
+0x9C45    0x8AEA
+0x9C46    0xEBAD
+0x9C47    0xEBAE
+0x9C48    0xEBAF
+0x9C49    0xEBB0
+0x9C4A    0x4BC0
+0x9C4B    0xEBB2
+0x9C4C    0xEBB3
+0x9C4D    0xEBB4
+0x9C4E    0x9465
+0x9C4F    0xEBB6
+0x9C50    0x6195
+0x9C51    0x5A27
+0x9C52    0xEBB9
+0x9C54    0x56B9
+0x9C55    0xEBBC
+0x9C56    0xEBBD
+0x9C57    0x4E6A
+0x9C58    0xEBBF
+0x9C59    0x9656
+0x9C5A    0x6D8F
+0x9C5B    0xEBC2
+0x9C5C    0x3618
+0x9C5D    0x8977
+0x9C5E    0xEBC5
+0x9C5F    0xEBC6
+0x9C60    0xEBC7
+0x9C61    0xEBC8
+0x9C63    0xEBCA
+0x9C64    0x7B42
+0x9C65    0xEBCC
+0x9C66    0xEBCD
+0x9C67    0xEBCE
+0x9C69    0xEBD0
+0x9C6A    0x7A45
+0x9C6C    0xEBD3
+0x9C6D    0x9A26
+0x9C6E    0xEBD5
+0x9C6F    0x365F
+0x9C70    0xEBD7
+0x9C71    0xEBD8
+0x9C72    0x7983
+0x9C73    0xEBDA
+0x9C74    0xEBDB
+0x9C75    0x5D2C
+0x9C76    0xEBDD
+0x9C78    0xEBDF
+0x9C79    0x46D0
+0x9C7A    0xEBE1
+0x9C7B    0x753B
+0x9C7C    0x8865
+0x9C7D    0xEBE4
+0x9C7E    0x58B6
+0x9CA1    0x371C
+0x9CA2    0xEBE7
+0x9CA3    0xEBE8
+0x9CA4    0xEBE9
+0x9CA5    0x3C54
+0x9CA6    0xEBEB
+0x9CA7    0xEBEC
+0x9CA8    0x9281
+0x9CA9    0xEBEE
+0x9CAA    0xEBEF
+0x9CAB    0x9330
+0x9CAC    0xEBF1
+0x9CAD    0xEBF2
+0x9CAE    0x6C39
+0x9CAF    0x949F
+0x9CB0    0xEBF5
+0x9CB1    0xEBF6
+0x9CB2    0x8827
+0x9CB3    0x88F5
+0x9CB4    0xEBF9
+0x9CB5    0xEBFA
+0x9CB6    0xEBFB
+0x9CB7    0x6EB8
+0x9CB8    0xEBFD
+0x9CB9    0xEBFE
+0x9CBA    0x39A4
+0x9CBB    0x36B9
+0x9CBE    0x453F
+0x9CBF    0x66B6
+0x9CC0    0xEC05
+0x9CC1    0xEC06
+0x9CC2    0x8943
+0x9CC3    0xEC08
+0x9CC4    0xEC09
+0x9CC5    0x56D6
+0x9CC6    0x40DF
+0x9CC7    0xEC0C
+0x9CC8    0x39A1
+0x9CC9    0xEC0E
+0x9CCA    0xEC0F
+0x9CCB    0xEC10
+0x9CCC    0x71AD
+0x9CCD    0x8366
+0x9CCE    0xEC13
+0x9CCF    0xEC14
+0x9CD1    0x4CB7
+0x9CD2    0xEC17
+0x9CD3    0xEC18
+0x9CD4    0xEC19
+0x9CD5    0xEC1A
+0x9CD6    0xEC1B
+0x9CD7    0xEC1C
+0x9CD8    0xEC1D
+0x9CD9    0x7B43
+0x9CDA    0x797E
+0x9CDB    0xEC20
+0x9CDC    0x6FB5
+0x9CDD    0xEC22
+0x9CDE    0x6A03
+0x9CDF    0xEC24
+0x9CE0    0x53A2
+0x9CE1    0xEC26
+0x9CE2    0x93BF
+0x9CE3    0x6836
+0x9CE4    0x975D
+0x9CE5    0xEC2A
+0x9CE6    0xEC2B
+0x9CE7    0xEC2C
+0x9CE8    0xEC2D
+0x9CE9    0xEC2E
+0x9CEA    0xEC2F
+0x9CEB    0x5D85
+0x9CEC    0xEC31
+0x9CED    0xEC32
+0x9CEE    0x5715
+0x9CEF    0x9823
+0x9CF0    0xEC35
+0x9CF1    0x5DAB
+0x9CF2    0xEC37
+0x9CF3    0x65BE
+0x9CF4    0x69D5
+0x9CF5    0x53D2
+0x9CF6    0xEC3B
+0x9CF7    0xEC3C
+0x9CF8    0x3C11
+0x9CF9    0x6736
+0x9CFA    0xEC3F
+0x9CFB    0xEC40
+0x9CFC    0xEC41
+0x9CFD    0xEC42
+0x9CFE    0xEC43
+0x9D40    0xEC44
+0x9D41    0xEC45
+0x9D42    0xEC46
+0x9D43    0xEC47
+0x9D44    0xEC48
+0x9D45    0xEC49
+0x9D46    0x35CA
+0x9D47    0xEC4B
+0x9D48    0xEC4C
+0x9D49    0x48FA
+0x9D4A    0x63E6
+0x9D4B    0xEC4F
+0x9D4C    0x7808
+0x9D4D    0x9255
+0x9D4E    0xEC52
+0x9D4F    0x43F2
+0x9D50    0xEC54
+0x9D51    0x43DF
+0x9D52    0xEC56
+0x9D53    0xEC57
+0x9D54    0xEC58
+0x9D55    0x59F8
+0x9D56    0xEC5A
+0x9D58    0xEC5C
+0x9D59    0xEC5D
+0x9D5B    0xEC5F
+0x9D5C    0xEC60
+0x9D5D    0x3DF7
+0x9D5E    0xEC62
+0x9D5F    0xEC63
+0x9D60    0x8FD0
+0x9D61    0x728F
+0x9D62    0x568B
+0x9D63    0xEC67
+0x9D64    0xEC68
+0x9D65    0xEC69
+0x9D66    0xEC6A
+0x9D67    0xEC6B
+0x9D68    0xEC6C
+0x9D69    0xEC6D
+0x9D6A    0xEC6E
+0x9D6B    0xEC6F
+0x9D6C    0xEC70
+0x9D6D    0xEC71
+0x9D6E    0xEC72
+0x9D6F    0xEC73
+0x9D70    0x7E9F
+0x9D71    0xEC75
+0x9D72    0xEC76
+0x9D73    0x4CA4
+0x9D74    0x9547
+0x9D75    0xEC79
+0x9D76    0x71A2
+0x9D77    0xEC7B
+0x9D78    0x4D91
+0x9D79    0x9012
+0x9D7A    0xEC7E
+0x9D7B    0x4D9C
+0x9D7C    0xEC80
+0x9D7D    0x8FBE
+0x9D7E    0x55C1
+0x9DA1    0x8FBA
+0x9DA2    0xEC84
+0x9DA3    0x8FB9
+0x9DA4    0xEC86
+0x9DA5    0x4509
+0x9DA6    0x7E7F
+0x9DA7    0x6F56
+0x9DA8    0x6AB1
+0x9DA9    0x4EEA
+0x9DAA    0x34E4
+0x9DAB    0xEC8D
+0x9DAC    0xEC8E
+0x9DAD    0x373A
+0x9DAE    0x8E80
+0x9DAF    0xEC91
+0x9DB0    0xEC92
+0x9DB1    0xEC93
+0x9DB2    0xEC94
+0x9DB3    0xEC95
+0x9DB4    0xEC96
+0x9DB5    0x3DEB
+0x9DB6    0xEC98
+0x9DB7    0xEC99
+0x9DB8    0xEC9A
+0x9DB9    0xEC9B
+0x9DBA    0x4E9A
+0x9DBB    0xEC9D
+0x9DBC    0xEC9E
+0x9DBD    0x56BF
+0x9DBE    0xECA0
+0x9DBF    0x8E0E
+0x9DC0    0x5B6D
+0x9DC1    0xECA3
+0x9DC2    0xECA4
+0x9DC3    0x63DE
+0x9DC5    0xECA7
+0x9DC6    0xECA8
+0x9DC7    0x6530
+0x9DC8    0x562D
+0x9DC9    0xECAB
+0x9DCA    0x541A
+0x9DCB    0xECAD
+0x9DCC    0x3DC6
+0x9DCD    0xECAF
+0x9DCE    0x4C7D
+0x9DCF    0x5622
+0x9DD0    0x561E
+0x9DD1    0x7F49
+0x9DD2    0xECB4
+0x9DD3    0x5975
+0x9DD4    0xECB6
+0x9DD5    0x8770
+0x9DD6    0x4E1C
+0x9DD7    0xECB9
+0x9DD8    0xECBA
+0x9DD9    0xECBB
+0x9DDA    0x8117
+0x9DDB    0x9D5E
+0x9DDC    0x8D18
+0x9DDD    0x763B
+0x9DDE    0x9C45
+0x9DDF    0x764E
+0x9DE0    0x77B9
+0x9DE1    0x9345
+0x9DE2    0x5432
+0x9DE3    0x8148
+0x9DE4    0x82F7
+0x9DE5    0x5625
+0x9DE6    0x8132
+0x9DE7    0x8418
+0x9DE8    0x80BD
+0x9DE9    0x55EA
+0x9DEA    0x7962
+0x9DEB    0x5643
+0x9DEC    0x5416
+0x9DED    0xECCF
+0x9DEE    0x35CE
+0x9DEF    0x5605
+0x9DF0    0x55F1
+0x9DF1    0x66F1
+0x9DF2    0xECD4
+0x9DF3    0x362D
+0x9DF4    0x7534
+0x9DF5    0x55F0
+0x9DF6    0x55BA
+0x9DF7    0x5497
+0x9DF8    0x5572
+0x9DF9    0xECDB
+0x9DFA    0xECDC
+0x9DFB    0x5ED0
+0x9DFC    0xECDE
+0x9DFD    0xECDF
+0x9DFE    0xECE0
+0x9E40    0xECE1
+0x9E41    0x9EAB
+0x9E42    0x7D5A
+0x9E43    0x55DE
+0x9E44    0xECE5
+0x9E45    0x629D
+0x9E46    0x976D
+0x9E47    0x5494
+0x9E48    0x8CCD
+0x9E49    0x71F6
+0x9E4A    0x9176
+0x9E4B    0x63FC
+0x9E4C    0x63B9
+0x9E4D    0x63FE
+0x9E4E    0x5569
+0x9E4F    0xECF0
+0x9E50    0x9C72
+0x9E51    0xECF2
+0x9E52    0x519A
+0x9E53    0x34DF
+0x9E54    0xECF5
+0x9E55    0x51A7
+0x9E56    0x544D
+0x9E57    0x551E
+0x9E58    0x5513
+0x9E59    0x7666
+0x9E5A    0x8E2D
+0x9E5B    0xECFC
+0x9E5C    0x75B1
+0x9E5D    0x80B6
+0x9E5E    0x8804
+0x9E5F    0x8786
+0x9E60    0x88C7
+0x9E61    0x81B6
+0x9E62    0x841C
+0x9E63    0xED04
+0x9E64    0x44EC
+0x9E65    0x7304
+0x9E66    0xED07
+0x9E67    0x5B90
+0x9E68    0x830B
+0x9E69    0xED0A
+0x9E6A    0x567B
+0x9E6B    0xED0C
+0x9E6C    0xED0D
+0x9E6D    0xED0E
+0x9E6E    0xED0F
+0x9E6F    0xED10
+0x9E70    0xED11
+0x9E71    0x9170
+0x9E72    0xED13
+0x9E73    0x9208
+0x9E74    0xED15
+0x9E75    0xED16
+0x9E76    0xED17
+0x9E77    0xED18
+0x9E78    0x7266
+0x9E79    0xED1A
+0x9E7A    0x474E
+0x9E7B    0xED1C
+0x9E7C    0xED1D
+0x9E7D    0xED1E
+0x9E7E    0x40FA
+0x9EA1    0x9C5D
+0x9EA2    0x651F
+0x9EA3    0xED22
+0x9EA4    0x48F3
+0x9EA5    0xED24
+0x9EA6    0xED25
+0x9EA7    0xED26
+0x9EA8    0xED27
+0x9EAA    0xED29
+0x9EAB    0xED2A
+0x9EAD    0xED2C
+0x9EAE    0xED2D
+0x9EAF    0x71A3
+0x9EB0    0x7E8E
+0x9EB1    0x9D50
+0x9EB2    0x4E1A
+0x9EB3    0x4E04
+0x9EB4    0x3577
+0x9EB5    0x5B0D
+0x9EB6    0x6CB2
+0x9EB7    0x5367
+0x9EB8    0x36AC
+0x9EB9    0x39DC
+0x9EBA    0x537D
+0x9EBB    0x36A5
+0x9EBC    0xED3B
+0x9EBD    0x589A
+0x9EBE    0xED3D
+0x9EBF    0x822D
+0x9EC0    0x544B
+0x9EC1    0x57AA
+0x9EC2    0xED41
+0x9EC3    0xED42
+0x9EC5    0x3A52
+0x9EC6    0xED45
+0x9EC7    0x7374
+0x9EC8    0xED47
+0x9EC9    0x4D09
+0x9ECA    0x9BED
+0x9ECB    0xED4A
+0x9ECC    0xED4B
+0x9ECD    0x4C5B
+0x9ECE    0xED4D
+0x9ECF    0xED4E
+0x9ED0    0xED4F
+0x9ED1    0x845C
+0x9ED2    0xED51
+0x9ED3    0xED52
+0x9ED4    0xED53
+0x9ED5    0xED54
+0x9ED6    0x632E
+0x9ED7    0x7D25
+0x9ED8    0xED57
+0x9ED9    0xED58
+0x9EDA    0x3A2A
+0x9EDB    0x9008
+0x9EDC    0x52CC
+0x9EDD    0x3E74
+0x9EDE    0x367A
+0x9EDF    0x45E9
+0x9EE0    0xED5F
+0x9EE1    0x7640
+0x9EE2    0x5AF0
+0x9EE3    0xED62
+0x9EE4    0x787A
+0x9EE5    0x47B6
+0x9EE6    0x58A7
+0x9EE7    0x40BF
+0x9EE8    0x567C
+0x9EE9    0x9B8B
+0x9EEA    0x5D74
+0x9EEB    0x7654
+0x9EEC    0xED6B
+0x9EED    0x9E85
+0x9EEE    0x4CE1
+0x9EF0    0x37FB
+0x9EF1    0x6119
+0x9EF2    0xED71
+0x9EF3    0xED72
+0x9EF5    0x565D
+0x9EF6    0xED75
+0x9EF7    0x57A7
+0x9EF8    0xED77
+0x9EF9    0xED78
+0x9EFA    0x5234
+0x9EFB    0xED7A
+0x9EFC    0x35AD
+0x9EFE    0x9D7C
+0x9F40    0x7C56
+0x9F41    0x9B39
+0x9F42    0x57DE
+0x9F43    0xED81
+0x9F44    0x5C53
+0x9F45    0x64D3
+0x9F46    0xED84
+0x9F47    0xED85
+0x9F48    0xED86
+0x9F49    0x86AD
+0x9F4A    0xED88
+0x9F4B    0xED89
+0x9F4C    0xED8A
+0x9F4D    0xED8B
+0x9F4F    0x51FE
+0x9F50    0xED8E
+0x9F51    0x5D8E
+0x9F52    0x9703
+0x9F53    0xED91
+0x9F54    0x9E81
+0x9F55    0x904C
+0x9F56    0x7B1F
+0x9F57    0x9B02
+0x9F58    0x5CD1
+0x9F59    0x7BA3
+0x9F5A    0x6268
+0x9F5B    0x6335
+0x9F5C    0x9AFF
+0x9F5D    0x7BCF
+0x9F5E    0x9B2A
+0x9F5F    0x7C7E
+0x9F61    0x7C42
+0x9F62    0x7C86
+0x9F63    0x9C15
+0x9F64    0x7BFC
+0x9F65    0x9B09
+0x9F67    0x9C1B
+0x9F68    0xEDA6
+0x9F69    0x9F5A
+0x9F6A    0x5573
+0x9F6B    0x5BC3
+0x9F6C    0x4FFD
+0x9F6D    0x9E98
+0x9F6E    0x4FF2
+0x9F6F    0x5260
+0x9F70    0x3E06
+0x9F71    0x52D1
+0x9F72    0x5767
+0x9F73    0x5056
+0x9F74    0x59B7
+0x9F75    0x5E12
+0x9F76    0x97C8
+0x9F77    0x9DAB
+0x9F78    0x8F5C
+0x9F79    0x5469
+0x9F7A    0x97B4
+0x9F7B    0x9940
+0x9F7C    0x97BA
+0x9F7D    0x532C
+0x9F7E    0x6130
+0x9FA1    0x692C
+0x9FA2    0x53DA
+0x9FA3    0x9C0A
+0x9FA4    0x9D02
+0x9FA5    0x4C3B
+0x9FA6    0x9641
+0x9FA7    0x6980
+0x9FA8    0x50A6
+0x9FA9    0x7546
+0x9FAA    0xEDC6
+0x9FAB    0x99DA
+0x9FAC    0x5273
+0x9FAE    0x9159
+0x9FAF    0x9681
+0x9FB0    0x915C
+0x9FB2    0x9151
+0x9FB3    0xEDCF
+0x9FB4    0x637F
+0x9FB5    0xEDD1
+0x9FB6    0x6ACA
+0x9FB7    0x5611
+0x9FB8    0x918E
+0x9FB9    0x757A
+0x9FBA    0x6285
+0x9FBB    0xEDD7
+0x9FBC    0x734F
+0x9FBD    0x7C70
+0x9FBE    0xEDDA
+0x9FBF    0xEDDB
+0x9FC1    0xEDDD
+0x9FC2    0x76D6
+0x9FC3    0x9B9D
+0x9FC4    0x4E2A
+0x9FC5    0xEDE1
+0x9FC6    0x83BE
+0x9FC7    0x8842
+0x9FC9    0x5C4A
+0x9FCA    0x69C0
+0x9FCC    0x577A
+0x9FCD    0x521F
+0x9FCE    0x5DF5
+0x9FCF    0x4ECE
+0x9FD0    0x6C31
+0x9FD1    0xEDED
+0x9FD2    0x4F39
+0x9FD3    0x549C
+0x9FD4    0x54DA
+0x9FD5    0x529A
+0x9FD6    0x8D82
+0x9FD7    0x35FE
+0x9FD9    0x35F3
+0x9FDB    0x6B52
+0x9FDC    0x917C
+0x9FDD    0x9FA5
+0x9FDE    0x9B97
+0x9FDF    0x982E
+0x9FE0    0x98B4
+0x9FE1    0x9ABA
+0x9FE2    0x9EA8
+0x9FE3    0x9E84
+0x9FE4    0x717A
+0x9FE5    0x7B14
+0x9FE7    0x6BFA
+0x9FE8    0x8818
+0x9FE9    0x7F78
+0x9FEB    0x5620
+0x9FEC    0xEE08
+0x9FED    0x8E77
+0x9FEE    0x9F53
+0x9FF0    0x8DD4
+0x9FF1    0x8E4F
+0x9FF2    0x9E1C
+0x9FF3    0x8E01
+0x9FF4    0x6282
+0x9FF5    0xEE11
+0x9FF6    0x8E28
+0x9FF7    0x8E75
+0x9FF8    0x7AD3
+0x9FF9    0xEE15
+0x9FFA    0x7A3E
+0x9FFB    0x78D8
+0x9FFC    0x6CEA
+0x9FFD    0x8A67
+0x9FFE    0x7607
+0xA040    0xEE1B
+0xA041    0x9F26
+0xA042    0x6CCE
+0xA043    0x87D6
+0xA044    0x75C3
+0xA045    0xEE20
+0xA046    0x7853
+0xA047    0xEE22
+0xA048    0x8D0C
+0xA049    0x72E2
+0xA04A    0x7371
+0xA04B    0x8B2D
+0xA04C    0x7302
+0xA04D    0x74F1
+0xA04E    0x8CEB
+0xA04F    0xEE2A
+0xA050    0x862F
+0xA051    0x5FBA
+0xA052    0x88A0
+0xA053    0x44B7
+0xA055    0xEE30
+0xA056    0xEE31
+0xA058    0x8A7E
+0xA059    0xEE34
+0xA05B    0x60FD
+0xA05C    0x7667
+0xA05D    0x9AD7
+0xA05E    0x9D44
+0xA05F    0x936E
+0xA060    0x9B8F
+0xA061    0x87F5
+0xA064    0x8CF7
+0xA065    0x732C
+0xA066    0x9721
+0xA067    0x9BB0
+0xA068    0x35D6
+0xA069    0x72B2
+0xA06A    0x4C07
+0xA06B    0x7C51
+0xA06C    0x994A
+0xA06D    0xEE48
+0xA06E    0x6159
+0xA06F    0x4C04
+0xA070    0x9E96
+0xA071    0x617D
+0xA073    0x575F
+0xA074    0x616F
+0xA075    0x62A6
+0xA076    0x6239
+0xA078    0x3A5C
+0xA079    0x61E2
+0xA07A    0x53AA
+0xA07B    0xEE56
+0xA07C    0x6364
+0xA07D    0x6802
+0xA07E    0x35D2
+0xA0A1    0x5D57
+0xA0A2    0xEE5B
+0xA0A3    0x8FDA
+0xA0A4    0xEE5D
+0xA0A6    0x50D9
+0xA0A7    0xEE60
+0xA0A8    0x7906
+0xA0A9    0x5332
+0xA0AA    0x9638
+0xA0AB    0xEE64
+0xA0AC    0x4065
+0xA0AE    0x77FE
+0xA0B0    0x7CC2
+0xA0B1    0xEE6A
+0xA0B2    0x7CDA
+0xA0B3    0x7A2D
+0xA0B4    0x8066
+0xA0B5    0x8063
+0xA0B6    0x7D4D
+0xA0B7    0x7505
+0xA0B8    0x74F2
+0xA0B9    0x8994
+0xA0BA    0x821A
+0xA0BB    0x670C
+0xA0BC    0x8062
+0xA0BD    0xEE76
+0xA0BE    0x805B
+0xA0BF    0x74F0
+0xA0C0    0x8103
+0xA0C1    0x7724
+0xA0C2    0x8989
+0xA0C3    0xEE7C
+0xA0C4    0x7553
+0xA0C5    0xEE7E
+0xA0C6    0x87A9
+0xA0C7    0x87CE
+0xA0C8    0x81C8
+0xA0C9    0x878C
+0xA0CA    0x8A49
+0xA0CB    0x8CAD
+0xA0CC    0x8B43
+0xA0CD    0x772B
+0xA0CE    0x74F8
+0xA0CF    0x84DA
+0xA0D0    0x3635
+0xA0D1    0x69B2
+0xA0D2    0x8DA6
+0xA0D4    0x89A9
+0xA0D6    0x6DB9
+0xA0D7    0x87C1
+0xA0D8    0xEE91
+0xA0D9    0x74E7
+0xA0DA    0x3DDB
+0xA0DB    0x7176
+0xA0DC    0x60A4
+0xA0DD    0x619C
+0xA0DE    0x3CD1
+0xA0E0    0x6077
+0xA0E2    0x7F71
+0xA0E3    0xEE9C
+0xA0E5    0x60E9
+0xA0E6    0x4B7E
+0xA0E7    0x5220
+0xA0E8    0xEEA1
+0xA0E9    0xEEA2
+0xA0EA    0xEEA3
+0xA0EB    0xEEA4
+0xA0EC    0xEEA5
+0xA0ED    0xEEA6
+0xA0EE    0xEEA7
+0xA0EF    0xEEA8
+0xA0F0    0xEEA9
+0xA0F1    0xEEAA
+0xA0F2    0x5CC1
+0xA0F3    0xEEAC
+0xA0F4    0xEEAD
+0xA0F5    0xEEAE
+0xA0F6    0xEEAF
+0xA0F7    0xEEB0
+0xA0F8    0xEEB1
+0xA0F9    0x4562
+0xA0FA    0x5B1F
+0xA0FB    0xEEB4
+0xA0FC    0x9F50
+0xA0FD    0x9EA6
+0xA0FE    0xEEB7
+0xC6A1    0x2460
+0xC6A2    0x2461
+0xC6A3    0x2462
+0xC6A4    0x2463
+0xC6A5    0x2464
+0xC6A6    0x2465
+0xC6A7    0x2466
+0xC6A8    0x2467
+0xC6A9    0x2468
+0xC6AA    0x2469
+0xC6AB    0x2474
+0xC6AC    0x2475
+0xC6AD    0x2476
+0xC6AE    0x2477
+0xC6AF    0x2478
+0xC6B0    0x2479
+0xC6B1    0x247A
+0xC6B2    0x247B
+0xC6B3    0x247C
+0xC6B4    0x247D
+0xC6B5    0x2170
+0xC6B6    0x2171
+0xC6B7    0x2172
+0xC6B8    0x2173
+0xC6B9    0x2174
+0xC6BA    0x2175
+0xC6BB    0x2176
+0xC6BC    0x2177
+0xC6BD    0x2178
+0xC6BE    0x2179
+0xC6BF    0x4E36
+0xC6C0    0x4E3F
+0xC6C1    0x4E85
+0xC6C2    0x4EA0
+0xC6C3    0x5182
+0xC6C4    0x5196
+0xC6C5    0x51AB
+0xC6C6    0x52F9
+0xC6C7    0x5338
+0xC6C8    0x5369
+0xC6C9    0x53B6
+0xC6CA    0x590A
+0xC6CB    0x5B80
+0xC6CC    0x5DDB
+0xC6CD    0x2F33
+0xC6CE    0x5E7F
+0xC6D0    0x5F50
+0xC6D1    0x5F61
+0xC6D2    0x6534
+0xC6D4    0x7592
+0xC6D6    0x8FB5
+0xC6D8    0x00A8
+0xC6D9    0x02C6
+0xC6DA    0x30FD
+0xC6DB    0x30FE
+0xC6DC    0x309D
+0xC6DD    0x309E
+0xC6E0    0x3005
+0xC6E1    0x3006
+0xC6E2    0x3007
+0xC6E3    0x30FC
+0xC6E4    0xFF3B
+0xC6E5    0xFF3D
+0xC6E6    0x273D
+0xC6E7    0x3041
+0xC6E8    0x3042
+0xC6E9    0x3043
+0xC6EA    0x3044
+0xC6EB    0x3045
+0xC6EC    0x3046
+0xC6ED    0x3047
+0xC6EE    0x3048
+0xC6EF    0x3049
+0xC6F0    0x304A
+0xC6F1    0x304B
+0xC6F2    0x304C
+0xC6F3    0x304D
+0xC6F4    0x304E
+0xC6F5    0x304F
+0xC6F6    0x3050
+0xC6F7    0x3051
+0xC6F8    0x3052
+0xC6F9    0x3053
+0xC6FA    0x3054
+0xC6FB    0x3055
+0xC6FC    0x3056
+0xC6FD    0x3057
+0xC6FE    0x3058
+0xC740    0x3059
+0xC741    0x305A
+0xC742    0x305B
+0xC743    0x305C
+0xC744    0x305D
+0xC745    0x305E
+0xC746    0x305F
+0xC747    0x3060
+0xC748    0x3061
+0xC749    0x3062
+0xC74A    0x3063
+0xC74B    0x3064
+0xC74C    0x3065
+0xC74D    0x3066
+0xC74E    0x3067
+0xC74F    0x3068
+0xC750    0x3069
+0xC751    0x306A
+0xC752    0x306B
+0xC753    0x306C
+0xC754    0x306D
+0xC755    0x306E
+0xC756    0x306F
+0xC757    0x3070
+0xC758    0x3071
+0xC759    0x3072
+0xC75A    0x3073
+0xC75B    0x3074
+0xC75C    0x3075
+0xC75D    0x3076
+0xC75E    0x3077
+0xC75F    0x3078
+0xC760    0x3079
+0xC761    0x307A
+0xC762    0x307B
+0xC763    0x307C
+0xC764    0x307D
+0xC765    0x307E
+0xC766    0x307F
+0xC767    0x3080
+0xC768    0x3081
+0xC769    0x3082
+0xC76A    0x3083
+0xC76B    0x3084
+0xC76C    0x3085
+0xC76D    0x3086
+0xC76E    0x3087
+0xC76F    0x3088
+0xC770    0x3089
+0xC771    0x308A
+0xC772    0x308B
+0xC773    0x308C
+0xC774    0x308D
+0xC775    0x308E
+0xC776    0x308F
+0xC777    0x3090
+0xC778    0x3091
+0xC779    0x3092
+0xC77A    0x3093
+0xC77B    0x30A1
+0xC77C    0x30A2
+0xC77D    0x30A3
+0xC77E    0x30A4
+0xC7A1    0x30A5
+0xC7A2    0x30A6
+0xC7A3    0x30A7
+0xC7A4    0x30A8
+0xC7A5    0x30A9
+0xC7A6    0x30AA
+0xC7A7    0x30AB
+0xC7A8    0x30AC
+0xC7A9    0x30AD
+0xC7AA    0x30AE
+0xC7AB    0x30AF
+0xC7AC    0x30B0
+0xC7AD    0x30B1
+0xC7AE    0x30B2
+0xC7AF    0x30B3
+0xC7B0    0x30B4
+0xC7B1    0x30B5
+0xC7B2    0x30B6
+0xC7B3    0x30B7
+0xC7B4    0x30B8
+0xC7B5    0x30B9
+0xC7B6    0x30BA
+0xC7B7    0x30BB
+0xC7B8    0x30BC
+0xC7B9    0x30BD
+0xC7BA    0x30BE
+0xC7BB    0x30BF
+0xC7BC    0x30C0
+0xC7BD    0x30C1
+0xC7BE    0x30C2
+0xC7BF    0x30C3
+0xC7C0    0x30C4
+0xC7C1    0x30C5
+0xC7C2    0x30C6
+0xC7C3    0x30C7
+0xC7C4    0x30C8
+0xC7C5    0x30C9
+0xC7C6    0x30CA
+0xC7C7    0x30CB
+0xC7C8    0x30CC
+0xC7C9    0x30CD
+0xC7CA    0x30CE
+0xC7CB    0x30CF
+0xC7CC    0x30D0
+0xC7CD    0x30D1
+0xC7CE    0x30D2
+0xC7CF    0x30D3
+0xC7D0    0x30D4
+0xC7D1    0x30D5
+0xC7D2    0x30D6
+0xC7D3    0x30D7
+0xC7D4    0x30D8
+0xC7D5    0x30D9
+0xC7D6    0x30DA
+0xC7D7    0x30DB
+0xC7D8    0x30DC
+0xC7D9    0x30DD
+0xC7DA    0x30DE
+0xC7DB    0x30DF
+0xC7DC    0x30E0
+0xC7DD    0x30E1
+0xC7DE    0x30E2
+0xC7DF    0x30E3
+0xC7E0    0x30E4
+0xC7E1    0x30E5
+0xC7E2    0x30E6
+0xC7E3    0x30E7
+0xC7E4    0x30E8
+0xC7E5    0x30E9
+0xC7E6    0x30EA
+0xC7E7    0x30EB
+0xC7E8    0x30EC
+0xC7E9    0x30ED
+0xC7EA    0x30EE
+0xC7EB    0x30EF
+0xC7EC    0x30F0
+0xC7ED    0x30F1
+0xC7EE    0x30F2
+0xC7EF    0x30F3
+0xC7F0    0x30F4
+0xC7F1    0x30F5
+0xC7F2    0x30F6
+0xC7F3    0x0410
+0xC7F4    0x0411
+0xC7F5    0x0412
+0xC7F6    0x0413
+0xC7F7    0x0414
+0xC7F8    0x0415
+0xC7F9    0x0401
+0xC7FA    0x0416
+0xC7FB    0x0417
+0xC7FC    0x0418
+0xC7FD    0x0419
+0xC7FE    0x041A
+0xC840    0x041B
+0xC841    0x041C
+0xC842    0x041D
+0xC843    0x041E
+0xC844    0x041F
+0xC845    0x0420
+0xC846    0x0421
+0xC847    0x0422
+0xC848    0x0423
+0xC849    0x0424
+0xC84A    0x0425
+0xC84B    0x0426
+0xC84C    0x0427
+0xC84D    0x0428
+0xC84E    0x0429
+0xC84F    0x042A
+0xC850    0x042B
+0xC851    0x042C
+0xC852    0x042D
+0xC853    0x042E
+0xC854    0x042F
+0xC855    0x0430
+0xC856    0x0431
+0xC857    0x0432
+0xC858    0x0433
+0xC859    0x0434
+0xC85A    0x0435
+0xC85B    0x0451
+0xC85C    0x0436
+0xC85D    0x0437
+0xC85E    0x0438
+0xC85F    0x0439
+0xC860    0x043A
+0xC861    0x043B
+0xC862    0x043C
+0xC863    0x043D
+0xC864    0x043E
+0xC865    0x043F
+0xC866    0x0440
+0xC867    0x0441
+0xC868    0x0442
+0xC869    0x0443
+0xC86A    0x0444
+0xC86B    0x0445
+0xC86C    0x0446
+0xC86D    0x0447
+0xC86E    0x0448
+0xC86F    0x0449
+0xC870    0x044A
+0xC871    0x044B
+0xC872    0x044C
+0xC873    0x044D
+0xC874    0x044E
+0xC875    0x044F
+0xC876    0x21E7
+0xC877    0x21B8
+0xC878    0x21B9
+0xC879    0xF7E5
+0xC87A    0xF7E6
+0xC87B    0x4E5A
+0xC87C    0xF7E8
+0xC87D    0x5202
+0xC87E    0xF7EA
+0xC8A1    0xF7EB
+0xC8A2    0x5188
+0xC8A3    0xF7ED
+0xC8A4    0xF7EE
+0xC8CD    0xFFE2
+0xC8CE    0xFFE4
+0xC8CF    0xFF07
+0xC8D0    0xFF02
+0xC8D1    0x3231
+0xC8D2    0x2116
+0xC8D3    0x2121
+0xC8D4    0x309B
+0xC8D5    0x309C
+0xC8D6    0x2E80
+0xC8D7    0x2E84
+0xC8D8    0x2E86
+0xC8D9    0x2E87
+0xC8DA    0x2E88
+0xC8DB    0x2E8A
+0xC8DC    0x2E8C
+0xC8DD    0x2E8D
+0xC8DE    0x2E95
+0xC8DF    0x2E9C
+0xC8E0    0x2E9D
+0xC8E1    0x2EA5
+0xC8E2    0x2EA7
+0xC8E3    0x2EAA
+0xC8E4    0x2EAC
+0xC8E5    0x2EAE
+0xC8E6    0x2EB6
+0xC8E7    0x2EBC
+0xC8E8    0x2EBE
+0xC8E9    0x2EC6
+0xC8EA    0x2ECA
+0xC8EB    0x2ECC
+0xC8EC    0x2ECD
+0xC8ED    0x2ECF
+0xC8EE    0x2ED6
+0xC8EF    0x2ED7
+0xC8F0    0x2EDE
+0xC8F1    0x2EE3
+0xC8F5    0x0283
+0xC8F6    0x0250
+0xC8F7    0x025B
+0xC8F8    0x0254
+0xC8F9    0x0275
+0xC8FA    0x0153
+0xC8FB    0x00F8
+0xC8FC    0x014B
+0xC8FD    0x028A
+0xC8FE    0x026A
+0xF9D6    0x7881
+0xF9D7    0x92B9
+0xF9D8    0x88CF
+0xF9D9    0x58BB
+0xF9DA    0x6052
+0xF9DB    0x7CA7
+0xF9DC    0x5AFA
+0xF9DD    0x2554
+0xF9DE    0x2566
+0xF9DF    0x2557
+0xF9E0    0x2560
+0xF9E1    0x256C
+0xF9E2    0x2563
+0xF9E3    0x255A
+0xF9E4    0x2569
+0xF9E5    0x255D
+0xF9E6    0x2552
+0xF9E7    0x2564
+0xF9E8    0x2555
+0xF9E9    0x255E
+0xF9EA    0x256A
+0xF9EB    0x2561
+0xF9EC    0x2558
+0xF9ED    0x2567
+0xF9EE    0x255B
+0xF9EF    0x2553
+0xF9F0    0x2565
+0xF9F1    0x2556
+0xF9F2    0x255F
+0xF9F3    0x256B
+0xF9F4    0x2562
+0xF9F5    0x2559
+0xF9F6    0x2568
+0xF9F7    0x255C
+0xF9F8    0x2551
+0xF9F9    0x2550
+0xF9FA    0x256D
+0xF9FB    0x256E
+0xF9FC    0x2570
+0xF9FD    0x256F
+0xF9FE    0xFFED
+0xFA40    0xE000
+0xFA41    0x92DB
+0xFA42    0xE002
+0xFA43    0xE003
+0xFA44    0x854C
+0xFA45    0x42B5
+0xFA46    0x73EF
+0xFA47    0x51B5
+0xFA48    0x3649
+0xFA49    0xE009
+0xFA4A    0xE00A
+0xFA4B    0x9344
+0xFA4C    0xE00C
+0xFA4D    0x82EE
+0xFA4E    0xE00E
+0xFA4F    0x783C
+0xFA50    0x6744
+0xFA51    0x62DF
+0xFA52    0xE012
+0xFA53    0xE013
+0xFA54    0xE014
+0xFA55    0xE015
+0xFA56    0xE016
+0xFA57    0x4FAB
+0xFA58    0xE018
+0xFA59    0x5008
+0xFA5A    0xE01A
+0xFA5B    0xE01B
+0xFA5C    0xE01C
+0xFA5D    0xE01D
+0xFA5E    0xE01E
+0xFA60    0xE020
+0xFA61    0x5FA4
+0xFA62    0xE022
+0xFA63    0xE023
+0xFA64    0x6EDB
+0xFA65    0xE025
+0xFA67    0x5101
+0xFA68    0x347A
+0xFA69    0x510E
+0xFA6A    0x986C
+0xFA6B    0x3743
+0xFA6C    0x8416
+0xFA6D    0xE02D
+0xFA6E    0xE02E
+0xFA6F    0x5160
+0xFA70    0xE030
+0xFA71    0x516A
+0xFA72    0xE032
+0xFA73    0xE033
+0xFA74    0xE034
+0xFA75    0xE035
+0xFA76    0xE036
+0xFA77    0xE037
+0xFA78    0xE038
+0xFA79    0x5B82
+0xFA7A    0x877D
+0xFA7B    0xE03B
+0xFA7C    0xE03C
+0xFA7D    0x51B2
+0xFA7E    0x51B8
+0xFAA1    0x9D34
+0xFAA2    0x51C9
+0xFAA3    0x51CF
+0xFAA4    0x51D1
+0xFAA5    0x3CDC
+0xFAA6    0x51D3
+0xFAA7    0xE045
+0xFAA8    0x51B3
+0xFAA9    0x51E2
+0xFAAA    0x5342
+0xFAAB    0x51ED
+0xFAAC    0x83CD
+0xFAAD    0x693E
+0xFAAE    0xE04C
+0xFAAF    0x5F7B
+0xFAB0    0x520B
+0xFAB1    0x5226
+0xFAB2    0x523C
+0xFAB3    0x52B5
+0xFAB4    0x5257
+0xFAB5    0x5294
+0xFAB6    0x52B9
+0xFAB7    0x52C5
+0xFAB8    0x7C15
+0xFAB9    0x8542
+0xFABA    0x52E0
+0xFABB    0x860D
+0xFABC    0xE05A
+0xFABE    0xE05C
+0xFABF    0x5549
+0xFAC0    0x6ED9
+0xFAC1    0xE05F
+0xFAC2    0xE060
+0xFAC3    0xE061
+0xFAC4    0x5333
+0xFAC6    0xE064
+0xFAC7    0x6CCB
+0xFAC8    0xE066
+0xFAC9    0x681B
+0xFACA    0x73D5
+0xFACB    0x604A
+0xFACC    0x3EAA
+0xFACD    0x38CC
+0xFACE    0xE06C
+0xFACF    0x71DD
+0xFAD0    0x44A2
+0xFAD1    0x536D
+0xFAD2    0x5374
+0xFAD3    0xE071
+0xFAD4    0x537E
+0xFAD6    0xE074
+0xFAD7    0xE075
+0xFAD8    0x77E6
+0xFAD9    0x5393
+0xFADA    0xE078
+0xFADB    0x53A0
+0xFADC    0x53AB
+0xFADD    0x53AE
+0xFADE    0x73A7
+0xFADF    0xE07D
+0xFAE0    0x3F59
+0xFAE1    0x739C
+0xFAE2    0x53C1
+0xFAE3    0x53C5
+0xFAE4    0x6C49
+0xFAE5    0x4E49
+0xFAE6    0x57FE
+0xFAE7    0x53D9
+0xFAE8    0x3AAB
+0xFAE9    0xE087
+0xFAEA    0x53E0
+0xFAEB    0xE089
+0xFAEC    0xE08A
+0xFAED    0x53F6
+0xFAEE    0xE08C
+0xFAEF    0x5413
+0xFAF0    0x7079
+0xFAF1    0x552B
+0xFAF2    0x6657
+0xFAF3    0x6D5B
+0xFAF4    0x546D
+0xFAF5    0xE093
+0xFAF6    0xE094
+0xFAF7    0x555D
+0xFAF8    0x548F
+0xFAF9    0x54A4
+0xFAFA    0x47A6
+0xFAFB    0xE099
+0xFAFC    0xE09A
+0xFAFD    0x3DB4
+0xFAFE    0xE09C
+0xFB40    0xE09D
+0xFB41    0xE09E
+0xFB42    0x5547
+0xFB43    0x4CED
+0xFB44    0x542F
+0xFB45    0x7417
+0xFB46    0x5586
+0xFB47    0x55A9
+0xFB49    0xE0A6
+0xFB4A    0xE0A7
+0xFB4B    0x4552
+0xFB4C    0xE0A9
+0xFB4D    0x66B3
+0xFB4E    0xE0AB
+0xFB4F    0x5637
+0xFB50    0x66CD
+0xFB51    0xE0AE
+0xFB52    0x66A4
+0xFB53    0x66AD
+0xFB54    0x564D
+0xFB55    0x564F
+0xFB56    0x78F1
+0xFB57    0x56F1
+0xFB58    0x9787
+0xFB59    0x53FE
+0xFB5A    0x5700
+0xFB5B    0x56EF
+0xFB5C    0x56ED
+0xFB5D    0xE0BA
+0xFB5E    0x3623
+0xFB5F    0xE0BC
+0xFB60    0x5746
+0xFB61    0xE0BE
+0xFB62    0x6C6E
+0xFB63    0x708B
+0xFB64    0x5742
+0xFB65    0x36B1
+0xFB66    0xE0C3
+0xFB67    0x57E6
+0xFB68    0xE0C5
+0xFB69    0x5803
+0xFB6A    0xE0C7
+0xFB6B    0xE0C8
+0xFB6C    0x5826
+0xFB6D    0xE0CA
+0xFB6E    0x585C
+0xFB6F    0x58AA
+0xFB70    0x3561
+0xFB71    0x58E0
+0xFB72    0x58DC
+0xFB73    0xE0D0
+0xFB74    0x58FB
+0xFB75    0x5BFF
+0xFB76    0x5743
+0xFB77    0xE0D4
+0xFB78    0xE0D5
+0xFB79    0x93D3
+0xFB7A    0x35A1
+0xFB7B    0x591F
+0xFB7C    0x68A6
+0xFB7D    0x36C3
+0xFB7E    0x6E59
+0xFBA1    0xE0DC
+0xFBA2    0x5A24
+0xFBA3    0x5553
+0xFBA4    0xE0DF
+0xFBA5    0x8505
+0xFBA6    0x59C9
+0xFBA7    0xE0E2
+0xFBA8    0xE0E3
+0xFBA9    0xE0E4
+0xFBAA    0xE0E5
+0xFBAB    0x59D9
+0xFBAC    0xE0E7
+0xFBAD    0xE0E8
+0xFBAE    0xE0E9
+0xFBAF    0x6D71
+0xFBB0    0xE0EB
+0xFBB1    0xE0EC
+0xFBB2    0x59F9
+0xFBB3    0xE0EE
+0xFBB4    0x5AAB
+0xFBB5    0x5A63
+0xFBB6    0x36E6
+0xFBB7    0xE0F2
+0xFBB9    0x3708
+0xFBBA    0x5A96
+0xFBBB    0x7465
+0xFBBC    0x5AD3
+0xFBBD    0xE0F8
+0xFBBE    0xE0F9
+0xFBBF    0x3D85
+0xFBC0    0xE0FB
+0xFBC1    0x3732
+0xFBC2    0xE0FD
+0xFBC3    0x5E83
+0xFBC4    0x52D0
+0xFBC5    0x5B76
+0xFBC6    0x6588
+0xFBC7    0x5B7C
+0xFBC8    0xE103
+0xFBC9    0x4004
+0xFBCA    0x485D
+0xFBCB    0xE106
+0xFBCC    0x5BD5
+0xFBCD    0x6160
+0xFBCE    0xE109
+0xFBCF    0xE10A
+0xFBD0    0xE10B
+0xFBD1    0x5BF3
+0xFBD2    0x5B9D
+0xFBD3    0x4D10
+0xFBD4    0x5C05
+0xFBD5    0xE110
+0xFBD6    0x5C13
+0xFBD7    0x73CE
+0xFBD8    0x5C14
+0xFBD9    0xE114
+0xFBDA    0xE115
+0xFBDB    0x5C49
+0xFBDC    0x48DD
+0xFBDD    0x5C85
+0xFBDE    0x5CE9
+0xFBDF    0x5CEF
+0xFBE0    0x5D8B
+0xFBE1    0xE11C
+0xFBE2    0xE11D
+0xFBE3    0x5D10
+0xFBE4    0x5D18
+0xFBE5    0x5D46
+0xFBE6    0xE121
+0xFBE7    0x5CBA
+0xFBE8    0x5DD7
+0xFBE9    0x82FC
+0xFBEA    0x382D
+0xFBEB    0xE126
+0xFBEC    0xE127
+0xFBED    0xE128
+0xFBEE    0x8287
+0xFBEF    0x3836
+0xFBF0    0x3BC2
+0xFBF1    0x5E2E
+0xFBF2    0x6A8A
+0xFBF4    0x5E7A
+0xFBF5    0xE130
+0xFBF6    0xE131
+0xFBF7    0x53A6
+0xFBF8    0x4EB7
+0xFBFA    0x53A8
+0xFBFB    0xE136
+0xFBFC    0x5E09
+0xFBFD    0x5EF4
+0xFBFE    0xE139
+0xFC40    0x5EF9
+0xFC41    0x5EFB
+0xFC42    0x38A0
+0xFC43    0x5EFC
+0xFC44    0x683E
+0xFC45    0x941B
+0xFC46    0x5F0D
+0xFC47    0xE141
+0xFC48    0xE142
+0xFC49    0x3ADE
+0xFC4A    0x48AE
+0xFC4B    0xE145
+0xFC4C    0x5F3A
+0xFC4D    0xE147
+0xFC4E    0xE148
+0xFC50    0xE14A
+0xFC51    0x5F63
+0xFC52    0x97BD
+0xFC53    0xE14D
+0xFC54    0x5F72
+0xFC55    0x9340
+0xFC56    0xE150
+0xFC57    0x5FA7
+0xFC58    0x5DB6
+0xFC59    0x3D5F
+0xFC5A    0xE154
+0xFC5B    0xE155
+0xFC5C    0xE156
+0xFC5D    0xE157
+0xFC5E    0x91D6
+0xFC5F    0xE159
+0xFC60    0xE15A
+0xFC61    0x6031
+0xFC62    0x6685
+0xFC63    0xE15D
+0xFC64    0x3963
+0xFC65    0x3DC7
+0xFC66    0x3639
+0xFC67    0x5790
+0xFC68    0xE162
+0xFC69    0x7971
+0xFC6A    0x3E40
+0xFC6B    0x609E
+0xFC6D    0x60B3
+0xFC6E    0xE168
+0xFC6F    0xE169
+0xFC70    0xE16A
+0xFC71    0x74A4
+0xFC72    0x50E1
+0xFC73    0x5AA0
+0xFC74    0x6164
+0xFC75    0x8424
+0xFC76    0x6142
+0xFC77    0xE171
+0xFC78    0xE172
+0xFC79    0x6181
+0xFC7A    0x51F4
+0xFC7B    0xE175
+0xFC7C    0x6187
+0xFC7D    0x5BAA
+0xFC7E    0xE178
+0xFCA1    0xE179
+0xFCA2    0x61D3
+0xFCA3    0xE17B
+0xFCA4    0xE17C
+0xFCA5    0x61D0
+0xFCA6    0x3932
+0xFCA7    0xE17F
+0xFCA8    0xE180
+0xFCA9    0x6023
+0xFCAA    0x615C
+0xFCAB    0x651E
+0xFCAC    0x638B
+0xFCAD    0xE185
+0xFCAE    0x62C5
+0xFCAF    0xE187
+0xFCB0    0x62D5
+0xFCB1    0xE189
+0xFCB2    0x636C
+0xFCB3    0xE18B
+0xFCB4    0x3A17
+0xFCB5    0x6438
+0xFCB6    0x63F8
+0xFCB7    0xE18F
+0xFCB8    0xE190
+0xFCBA    0x6F8A
+0xFCBB    0xE193
+0xFCBC    0x9814
+0xFCBD    0xE195
+0xFCBE    0xE196
+0xFCBF    0x64E1
+0xFCC0    0x64E5
+0xFCC1    0x947B
+0xFCC2    0x3A66
+0xFCC3    0x643A
+0xFCC4    0x3A57
+0xFCC5    0x654D
+0xFCC6    0x6F16
+0xFCC7    0xE19F
+0xFCC8    0xE1A0
+0xFCC9    0x6585
+0xFCCA    0x656D
+0xFCCB    0x655F
+0xFCCC    0xE1A4
+0xFCCD    0x65B5
+0xFCCE    0xE1A6
+0xFCCF    0x4B37
+0xFCD0    0x65D1
+0xFCD1    0x40D8
+0xFCD2    0xE1AA
+0xFCD3    0x65E0
+0xFCD4    0x65E3
+0xFCD5    0x5FDF
+0xFCD6    0xE1AE
+0xFCD7    0x6618
+0xFCD8    0xE1B0
+0xFCD9    0xE1B1
+0xFCDA    0x6644
+0xFCDB    0xE1B3
+0xFCDC    0xE1B4
+0xFCDD    0x664B
+0xFCDE    0xE1B6
+0xFCDF    0x6667
+0xFCE0    0xE1B8
+0xFCE1    0x6673
+0xFCE3    0xE1BB
+0xFCE4    0xE1BC
+0xFCE5    0xE1BD
+0xFCE6    0xE1BE
+0xFCE7    0xE1BF
+0xFCE8    0x77C5
+0xFCE9    0xE1C1
+0xFCEA    0x99A4
+0xFCEB    0x6702
+0xFCEC    0xE1C4
+0xFCED    0xE1C5
+0xFCEE    0x3B2B
+0xFCEF    0x69FA
+0xFCF0    0xE1C8
+0xFCF2    0x6767
+0xFCF3    0x6762
+0xFCF4    0xE1CC
+0xFCF5    0xE1CD
+0xFCF6    0x67D7
+0xFCF7    0x44E9
+0xFCF8    0x6822
+0xFCF9    0x6E50
+0xFCFA    0x923C
+0xFCFB    0x6801
+0xFCFC    0xE1D4
+0xFCFD    0xE1D5
+0xFCFE    0x685D
+0xFD40    0xE1D7
+0xFD41    0x69E1
+0xFD42    0x6A0B
+0xFD43    0xE1DA
+0xFD44    0x6973
+0xFD45    0x68C3
+0xFD46    0xE1DD
+0xFD47    0x6901
+0xFD48    0x6900
+0xFD49    0x3D32
+0xFD4A    0x3A01
+0xFD4B    0xE1E2
+0xFD4C    0x3B80
+0xFD4D    0x67AC
+0xFD4E    0x6961
+0xFD4F    0xE1E6
+0xFD50    0x42FC
+0xFD51    0x6936
+0xFD52    0x6998
+0xFD53    0x3BA1
+0xFD54    0xE1EB
+0xFD55    0x8363
+0xFD56    0x5090
+0xFD57    0x69F9
+0xFD58    0xE1EF
+0xFD59    0xE1F0
+0xFD5A    0x6A45
+0xFD5B    0xE1F2
+0xFD5C    0x6A9D
+0xFD5D    0x3BF3
+0xFD5E    0x67B1
+0xFD5F    0x6AC8
+0xFD60    0xE1F7
+0xFD61    0x3C0D
+0xFD62    0x6B1D
+0xFD63    0xE1FA
+0xFD64    0x60DE
+0xFD65    0x6B35
+0xFD66    0x6B74
+0xFD67    0xE1FE
+0xFD68    0x6EB5
+0xFD69    0xE200
+0xFD6A    0xE201
+0xFD6B    0xE202
+0xFD6C    0x3740
+0xFD6D    0x5421
+0xFD6E    0xE205
+0xFD6F    0x6BE1
+0xFD70    0xE207
+0xFD71    0x6BDC
+0xFD72    0x6C37
+0xFD73    0xE20A
+0xFD74    0xE20B
+0xFD75    0xE20C
+0xFD76    0x6C5A
+0xFD77    0x8226
+0xFD78    0x6C79
+0xFD79    0xE210
+0xFD7A    0x44C5
+0xFD7B    0xE212
+0xFD7C    0xE213
+0xFD7D    0xE214
+0xFD7E    0xE215
+0xFDA1    0xE216
+0xFDA2    0x36E5
+0xFDA3    0x3CEB
+0xFDA4    0xE219
+0xFDA5    0x9B83
+0xFDA6    0xE21B
+0xFDA7    0xE21C
+0xFDA8    0x7F8F
+0xFDA9    0x6837
+0xFDAA    0xE21F
+0xFDAB    0xE220
+0xFDAC    0xE221
+0xFDAD    0x6D96
+0xFDAE    0x6D5C
+0xFDAF    0x6E7C
+0xFDB0    0x6F04
+0xFDB1    0xE226
+0xFDB2    0xE227
+0xFDB3    0xE228
+0xFDB4    0x8533
+0xFDB5    0xE22A
+0xFDB6    0x51C7
+0xFDB9    0x842E
+0xFDBA    0xE22F
+0xFDBC    0xE231
+0xFDBD    0x7453
+0xFDBE    0xE233
+0xFDBF    0x79CC
+0xFDC0    0x6E4F
+0xFDC1    0x5A91
+0xFDC2    0xE237
+0xFDC3    0x6FF8
+0xFDC4    0x370D
+0xFDC5    0x6F9D
+0xFDC6    0xE23B
+0xFDC7    0x6EFA
+0xFDC8    0xE23D
+0xFDC9    0xE23E
+0xFDCA    0x4555
+0xFDCB    0x93F0
+0xFDCC    0x6F44
+0xFDCD    0x6F5C
+0xFDCE    0x3D4E
+0xFDCF    0x6F74
+0xFDD0    0xE245
+0xFDD1    0x3D3B
+0xFDD2    0x6F9F
+0xFDD3    0xE248
+0xFDD4    0x6FD3
+0xFDD5    0xE24A
+0xFDD6    0xE24B
+0xFDD7    0xE24C
+0xFDD8    0xE24D
+0xFDD9    0xE24E
+0xFDDA    0xE24F
+0xFDDB    0x51DF
+0xFDDC    0xE251
+0xFDDD    0xE252
+0xFDDE    0xE253
+0xFDDF    0xE254
+0xFDE0    0x704B
+0xFDE1    0x707E
+0xFDE2    0x70A7
+0xFDE3    0x7081
+0xFDE4    0x70CC
+0xFDE5    0x70D5
+0xFDE6    0x70D6
+0xFDE7    0x70DF
+0xFDE8    0x4104
+0xFDE9    0x3DE8
+0xFDEA    0x71B4
+0xFDEB    0x7196
+0xFDEC    0xE261
+0xFDED    0x712B
+0xFDEE    0x7145
+0xFDEF    0x5A88
+0xFDF0    0x714A
+0xFDF2    0x5C9C
+0xFDF3    0xE268
+0xFDF4    0x714F
+0xFDF5    0x9362
+0xFDF6    0xE26B
+0xFDF7    0x712C
+0xFDF8    0xE26D
+0xFDF9    0xE26E
+0xFDFA    0xE26F
+0xFDFB    0x71BA
+0xFDFC    0xE271
+0xFDFD    0x70BD
+0xFDFE    0x720E
+0xFE40    0x9442
+0xFE41    0x7215
+0xFE42    0x5911
+0xFE43    0x9443
+0xFE44    0x7224
+0xFE45    0x9341
+0xFE46    0xE27A
+0xFE47    0x722E
+0xFE48    0x7240
+0xFE49    0xE27D
+0xFE4A    0x68BD
+0xFE4B    0x7255
+0xFE4C    0x7257
+0xFE4D    0x3E55
+0xFE4E    0xE282
+0xFE4F    0x680D
+0xFE50    0x6F3D
+0xFE51    0x7282
+0xFE53    0x732B
+0xFE54    0xE288
+0xFE55    0xE289
+0xFE56    0x48ED
+0xFE57    0xE28B
+0xFE58    0x7328
+0xFE59    0x732E
+0xFE5A    0x73CF
+0xFE5B    0x73AA
+0xFE5C    0xE290
+0xFE5D    0xE291
+0xFE5E    0x73C9
+0xFE5F    0x7449
+0xFE60    0xE294
+0xFE61    0xE295
+0xFE62    0xE296
+0xFE63    0x6623
+0xFE64    0x36C5
+0xFE65    0xE299
+0xFE66    0xE29A
+0xFE67    0xE29B
+0xFE68    0x73F7
+0xFE69    0x7415
+0xFE6A    0x6903
+0xFE6B    0xE29F
+0xFE6C    0x7439
+0xFE6D    0xE2A1
+0xFE6E    0x3ED7
+0xFE70    0xE2A4
+0xFE71    0x7460
+0xFE72    0xE2A6
+0xFE73    0x7447
+0xFE74    0x73E4
+0xFE75    0x7476
+0xFE76    0x83B9
+0xFE77    0x746C
+0xFE78    0x3730
+0xFE79    0x7474
+0xFE7A    0x93F1
+0xFE7B    0x6A2C
+0xFE7C    0x7482
+0xFE7D    0x4953
+0xFE7E    0xE2B2
+0xFEA1    0xE2B3
+0xFEA2    0xE2B4
+0xFEA3    0xE2B5
+0xFEA4    0x5B46
+0xFEA5    0xE2B7
+0xFEA6    0xE2B8
+0xFEA7    0x74C8
+0xFEA8    0xE2BA
+0xFEA9    0x750E
+0xFEAB    0x751E
+0xFEAC    0xE2BE
+0xFEAD    0xE2BF
+0xFEAE    0x5BD7
+0xFEAF    0xE2C1
+0xFEB0    0x9385
+0xFEB1    0x754D
+0xFEB2    0x754A
+0xFEB3    0x7567
+0xFEB4    0x756E
+0xFEB5    0xE2C7
+0xFEB6    0x3F04
+0xFEB7    0xE2C9
+0xFEB8    0x758E
+0xFEB9    0x745D
+0xFEBA    0x759E
+0xFEBB    0x75B4
+0xFEBC    0x7602
+0xFEBD    0x762C
+0xFEBE    0x7651
+0xFEBF    0x764F
+0xFEC0    0x766F
+0xFEC1    0x7676
+0xFEC2    0xE2D4
+0xFEC3    0x7690
+0xFEC4    0x81EF
+0xFEC5    0x37F8
+0xFEC6    0xE2D8
+0xFEC7    0xE2D9
+0xFEC8    0x76A1
+0xFEC9    0x76A5
+0xFECA    0x76B7
+0xFECB    0x76CC
+0xFECC    0xE2DE
+0xFECD    0x8462
+0xFECE    0xE2E0
+0xFECF    0xE2E1
+0xFED0    0xE2E2
+0xFED1    0x771E
+0xFED2    0x7726
+0xFED3    0x7740
+0xFED4    0x64AF
+0xFED5    0xE2E7
+0xFED6    0x7758
+0xFED7    0xE2E9
+0xFED8    0x77AF
+0xFED9    0xE2EB
+0xFEDA    0xE2EC
+0xFEDB    0xE2ED
+0xFEDC    0x77F4
+0xFEDE    0xE2F0
+0xFEDF    0xE2F1
+0xFEE0    0x68CA
+0xFEE1    0x78AF
+0xFEE2    0x78C7
+0xFEE3    0x78D3
+0xFEE4    0x96A5
+0xFEE5    0x792E
+0xFEE6    0xE2F8
+0xFEE7    0x78D7
+0xFEE8    0x7934
+0xFEE9    0x78B1
+0xFEEA    0xE2FC
+0xFEEB    0x8FB8
+0xFEEC    0x8884
+0xFEED    0xE2FF
+0xFEEE    0xE300
+0xFEEF    0xE301
+0xFEF0    0x7986
+0xFEF1    0x8900
+0xFEF2    0x6902
+0xFEF3    0x7980
+0xFEF4    0xE306
+0xFEF5    0x799D
+0xFEF6    0xE308
+0xFEF7    0x793C
+0xFEF8    0x79A9
+0xFEF9    0x6E2A
+0xFEFA    0xE30C
+0xFEFB    0x3EA8
+0xFEFC    0x79C6
+0xFEFD    0xE30F
+0xFEFE    0x79D4
--- a/jdk/make/tools/CharsetMapping/dbcs	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/make/tools/CharsetMapping/dbcs	Wed Jul 05 17:09:51 2017 +0200
@@ -1,6 +1,7 @@
 #
 #clzName  csName     hisName  dbtype    pkg               ascii   b1min  b1max  b2min b2max
 #
+Big5      Big5       Big5     basic     sun.nio.cs.ext    true    0xa1   0xf9   0x40  0xfe
 Johab     x-Johab    x-Johab  basic     sun.nio.cs.ext    true    0x84   0xf9   0x31  0xfe
 EUC_CN	  GB2312     EUC_CN   basic     sun.nio.cs.ext    true    0xa1   0xf7   0xa1  0xfe
 EUC_KR	  EUC-KR     EUC_KR   basic     sun.nio.cs.ext    true    0xa1   0xfd   0xa1  0xfe
--- a/jdk/make/tools/src/build/tools/charsetmapping/CharsetMapping.java	Wed Jul 05 17:09:16 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,271 +0,0 @@
-/*
- * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package build.tools.charsetmapping;
-
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.*;
-
-public class CharsetMapping {
-    public final static char UNMAPPABLE_DECODING = '\uFFFD';
-    public final static int  UNMAPPABLE_ENCODING = 0xFFFD;
-
-    public static class Entry {
-        public int bs;   //byte sequence reps
-        public int cp;   //Unicode codepoint
-        public int cp2;  //CC of composite
-
-        public Entry () {}
-        public Entry (int bytes, int cp, int cp2) {
-            this.bs = bytes;
-            this.cp = cp;
-            this.cp2 = cp2;
-        }
-    }
-
-    static Comparator<Entry> comparatorCP =
-        new Comparator<Entry>() {
-            public int compare(Entry m1, Entry m2) {
-                return m1.cp - m2.cp;
-            }
-            public boolean equals(Object obj) {
-                return this == obj;
-            }
-    };
-
-    public static class Parser {
-        static final Pattern basic = Pattern.compile("(?:0x)?(\\p{XDigit}++)\\s++(?:0x)?(\\p{XDigit}++)?\\s*+.*");
-        static final int gBS = 1;
-        static final int gCP = 2;
-        static final int gCP2 = 3;
-
-        BufferedReader reader;
-        boolean closed;
-        Matcher matcher;
-        int gbs, gcp, gcp2;
-
-        public Parser (InputStream in, Pattern p, int gbs, int gcp, int gcp2)
-            throws IOException
-        {
-            this.reader = new BufferedReader(new InputStreamReader(in));
-            this.closed = false;
-            this.matcher = p.matcher("");
-            this.gbs = gbs;
-            this.gcp = gcp;
-            this.gcp2 = gcp2;
-        }
-
-        public Parser (InputStream in, Pattern p) throws IOException {
-            this(in, p, gBS, gCP, gCP2);
-        }
-
-        public Parser (InputStream in) throws IOException {
-            this(in, basic, gBS, gCP, gCP2);
-        }
-
-        protected boolean isDirective(String line) {
-            return line.startsWith("#");
-        }
-
-        protected Entry parse(Matcher matcher, Entry mapping) {
-            mapping.bs = Integer.parseInt(matcher.group(gbs), 16);
-            mapping.cp = Integer.parseInt(matcher.group(gcp), 16);
-            if (gcp2 <= matcher.groupCount() &&
-                matcher.group(gcp2) != null)
-                mapping.cp2 = Integer.parseInt(matcher.group(gcp2), 16);
-            else
-                mapping.cp2 = 0;
-            return mapping;
-        }
-
-        public Entry next() throws Exception {
-            return next(new Entry());
-        }
-
-        // returns null and closes the input stream if the eof has beenreached.
-        public Entry next(Entry mapping) throws Exception {
-            if (closed)
-                return null;
-            String line;
-            while ((line = reader.readLine()) != null) {
-                if (isDirective(line))
-                    continue;
-                matcher.reset(line);
-                if (!matcher.lookingAt()) {
-                    //System.out.println("Missed: " + line);
-                    continue;
-                }
-                return parse(matcher, mapping);
-            }
-            reader.close();
-            closed = true;
-            return null;
-        }
-    }
-
-    // tags of different charset mapping tables
-    private final static int MAP_SINGLEBYTE      = 0x1; // 0..256  : c
-    private final static int MAP_DOUBLEBYTE1     = 0x2; // min..max: c
-    private final static int MAP_DOUBLEBYTE2     = 0x3; // min..max: c [DB2]
-    private final static int MAP_SUPPLEMENT      = 0x5; //           db,c
-    private final static int MAP_SUPPLEMENT_C2B  = 0x6; //           c,db
-    private final static int MAP_COMPOSITE       = 0x7; //           db,base,cc
-    private final static int MAP_INDEXC2B        = 0x8; // index table of c->bb
-
-    private static final void writeShort(OutputStream out, int data)
-        throws IOException
-    {
-        out.write((data >>> 8) & 0xFF);
-        out.write((data      ) & 0xFF);
-    }
-
-    private static final void writeShortArray(OutputStream out,
-                                              int type,
-                                              int[] array,
-                                              int off,
-                                              int size)   // exclusive
-        throws IOException
-    {
-        writeShort(out, type);
-        writeShort(out, size);
-        for (int i = off; i < size; i++) {
-            writeShort(out, array[off+i]);
-        }
-    }
-
-    public static final void writeSIZE(OutputStream out, int data)
-        throws IOException
-    {
-        out.write((data >>> 24) & 0xFF);
-        out.write((data >>> 16) & 0xFF);
-        out.write((data >>>  8) & 0xFF);
-        out.write((data       ) & 0xFF);
-    }
-
-    public static void writeINDEXC2B(OutputStream out, int[] indexC2B)
-        throws IOException
-    {
-        writeShort(out, MAP_INDEXC2B);
-        writeShort(out, indexC2B.length);
-        int off = 0;
-        for (int i = 0; i < indexC2B.length; i++) {
-            if (indexC2B[i] != 0) {
-                writeShort(out, off);
-                off += 256;
-            } else {
-                writeShort(out, -1);
-            }
-        }
-    }
-
-    public static void writeSINGLEBYTE(OutputStream out, int[] sb)
-        throws IOException
-    {
-        writeShortArray(out, MAP_SINGLEBYTE, sb, 0, 256);
-    }
-
-    private static void writeDOUBLEBYTE(OutputStream out,
-                                        int type,
-                                        int[] db,
-                                        int b1Min, int b1Max,
-                                        int b2Min, int b2Max)
-        throws IOException
-    {
-        writeShort(out, type);
-        writeShort(out, b1Min);
-        writeShort(out, b1Max);
-        writeShort(out, b2Min);
-        writeShort(out, b2Max);
-        writeShort(out, (b1Max - b1Min + 1) * (b2Max - b2Min + 1));
-
-        for (int b1 = b1Min; b1 <= b1Max; b1++) {
-            for (int b2 = b2Min; b2 <= b2Max; b2++) {
-                writeShort(out, db[b1 * 256 + b2]);
-            }
-        }
-    }
-    public static void writeDOUBLEBYTE1(OutputStream out,
-                                        int[] db,
-                                        int b1Min, int b1Max,
-                                        int b2Min, int b2Max)
-        throws IOException
-    {
-        writeDOUBLEBYTE(out, MAP_DOUBLEBYTE1, db, b1Min, b1Max, b2Min, b2Max);
-    }
-
-    public static void writeDOUBLEBYTE2(OutputStream out,
-                                        int[] db,
-                                        int b1Min, int b1Max,
-                                        int b2Min, int b2Max)
-        throws IOException
-    {
-        writeDOUBLEBYTE(out, MAP_DOUBLEBYTE2, db, b1Min, b1Max, b2Min, b2Max);
-    }
-
-    // the c2b table is output as well
-    public static void writeSUPPLEMENT(OutputStream out, Entry[] supp, int size)
-        throws IOException
-    {
-        writeShort(out, MAP_SUPPLEMENT);
-        writeShort(out, size * 2);
-        // db at first half, cc at the low half
-        for (int i = 0; i < size; i++) {
-            writeShort(out, supp[i].bs);
-        }
-        for (int i = 0; i < size; i++) {
-            writeShort(out, supp[i].cp);
-        }
-
-        //c2b
-        writeShort(out, MAP_SUPPLEMENT_C2B);
-        writeShort(out, size*2);
-        Arrays.sort(supp, 0, size, comparatorCP);
-        for (int i = 0; i < size; i++) {
-            writeShort(out, supp[i].cp);
-        }
-        for (int i = 0; i < size; i++) {
-            writeShort(out, supp[i].bs);
-        }
-    }
-
-    public static void writeCOMPOSITE(OutputStream out, Entry[] comp, int size)
-        throws IOException
-    {
-        writeShort(out, MAP_COMPOSITE);
-        writeShort(out, size*3);
-        // comp is sorted already
-        for (int i = 0; i < size; i++) {
-            writeShort(out, (char)comp[i].bs);
-            writeShort(out, (char)comp[i].cp);
-            writeShort(out, (char)comp[i].cp2);
-        }
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,236 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package build.tools.charsetmapping;
+import java.io.*;
+import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.Scanner;
+import java.util.Formatter;
+import java.util.regex.*;
+import java.nio.charset.*;
+import static build.tools.charsetmapping.Utils.*;
+
+public class DBCS {
+    // pattern used by this class to read in mapping table
+    static Pattern mPattern = Pattern.compile("(?:0x)?(\\p{XDigit}++)\\s++(?:0x)?(\\p{XDigit}++)(?:\\s++#.*)?");
+
+    public static void genClass(String args[]) throws Exception {
+
+        Scanner s = new Scanner(new File(args[0], args[2]));
+        while (s.hasNextLine()) {
+            String line = s.nextLine();
+            if (line.startsWith("#") || line.length() == 0)
+                continue;
+            String[] fields = line.split("\\s+");
+            if (fields.length < 10) {
+                System.err.println("Misconfiged sbcs line <" + line + ">?");
+                continue;
+            }
+            String clzName = fields[0];
+            String csName  = fields[1];
+            String hisName = ("null".equals(fields[2]))?null:fields[2];
+            String type = fields[3].toUpperCase();
+            if ("BASIC".equals(type))
+                type = "";
+            else
+                type = "_" + type;
+            String pkgName  = fields[4];
+            boolean isASCII = Boolean.valueOf(fields[5]);
+            int    b1Min = toInteger(fields[6]);
+            int    b1Max = toInteger(fields[7]);
+            int    b2Min    = toInteger(fields[8]);
+            int    b2Max    = toInteger(fields[9]);
+            System.out.printf("%s,%s,%s,%b,%s%n", clzName, csName, hisName, isASCII, pkgName);
+            genClass0(args[0], args[1], "DoubleByte-X.java.template",
+                    clzName, csName, hisName, pkgName,
+                    isASCII, type,
+                    b1Min, b1Max, b2Min, b2Max);
+        }
+    }
+
+    static int toInteger(String s) {
+        if (s.startsWith("0x") || s.startsWith("0X"))
+            return Integer.valueOf(s.substring(2), 16);
+        else
+            return Integer.valueOf(s);
+    }
+
+    private static void genClass0(String srcDir, String dstDir, String template,
+                                  String clzName,
+                                  String csName,
+                                  String hisName,
+                                  String pkgName,
+                                  boolean isASCII,
+                                  String type,
+                                  int b1Min, int b1Max,
+                                  int b2Min, int b2Max)
+        throws Exception
+    {
+
+        StringBuilder b2cSB = new StringBuilder();
+        StringBuilder b2cNRSB = new StringBuilder();
+        StringBuilder c2bNRSB = new StringBuilder();
+
+        char[] db = new char[0x10000];
+        char[] c2bIndex = new char[0x100];
+        int c2bOff = 0x100;    // first 0x100 for unmappable segs
+
+        Arrays.fill(db, UNMAPPABLE_DECODING);
+        Arrays.fill(c2bIndex, UNMAPPABLE_DECODING);
+
+        char[] b2cIndex = new char[0x100];
+        Arrays.fill(b2cIndex, UNMAPPABLE_DECODING);
+
+        // (1)read in .map to parse all b->c entries
+        FileInputStream in = new FileInputStream(new File(srcDir, clzName + ".map"));
+        Parser p = new Parser(in, mPattern);
+        Entry  e = null;
+        while ((e = p.next()) != null) {
+            db[e.bs] = (char)e.cp;
+
+            if (e.bs > 0x100 &&    // db
+                b2cIndex[e.bs>>8] == UNMAPPABLE_DECODING) {
+                b2cIndex[e.bs>>8] = 1;
+            }
+
+            if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
+                c2bOff += 0x100;
+                c2bIndex[e.cp>>8] = 1;
+            }
+        }
+        Output out = new Output(new Formatter(b2cSB));
+        out.format("%n    static final String b2cSBStr =%n");
+        out.format(db, 0x00, 0x100,  ";");
+
+        out.format("%n        static final String[] b2cStr = {%n");
+        for (int i = 0; i < 0x100; i++) {
+            if (b2cIndex[i] == UNMAPPABLE_DECODING) {
+                out.format("            null,%n");  //unmappable segments
+            } else {
+                out.format(db, i, b2Min, b2Max, ",");
+            }
+        }
+
+        out.format("        };%n");
+        out.close();
+
+        // (2)now parse the .nr file which includes "b->c" non-roundtrip entries
+        File f = new File(srcDir, clzName + ".nr");
+        if (f.exists()) {
+            StringBuilder sb = new StringBuilder();
+            in = new FileInputStream(f);
+            p = new Parser(in, mPattern);
+            e = null;
+            while ((e = p.next()) != null) {
+                // A <b,c> pair
+                sb.append((char)e.bs);
+                sb.append((char)e.cp);
+            }
+            char[] nr = sb.toString().toCharArray();
+            out = new Output(new Formatter(b2cNRSB));
+            out.format("String b2cNR =%n");
+            out.format(nr, 0, nr.length,  ";");
+            out.close();
+        } else {
+            b2cNRSB.append("String b2cNR = null;");
+        }
+
+        // (3)finally the .c2b file which includes c->b non-roundtrip entries
+        f = new File(srcDir, clzName + ".c2b");
+        if (f.exists()) {
+            StringBuilder sb = new StringBuilder();
+            in = new FileInputStream(f);
+            p = new Parser(in, mPattern);
+            e = null;
+            while ((e = p.next()) != null) {
+                // A <b,c> pair
+                if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
+                    c2bOff += 0x100;
+                    c2bIndex[e.cp>>8] = 1;
+                }
+                sb.append((char)e.bs);
+                sb.append((char)e.cp);
+            }
+            char[] nr = sb.toString().toCharArray();
+            out = new Output(new Formatter(c2bNRSB));
+            out.format("String c2bNR =%n");
+            out.format(nr, 0, nr.length,  ";");
+            out.close();
+        } else {
+            c2bNRSB.append("String c2bNR = null;");
+        }
+
+        // (4)it's time to generate the source file
+        String b2c = b2cSB.toString();
+        String b2cNR = b2cNRSB.toString();
+        String c2bNR = c2bNRSB.toString();
+
+        Scanner s = new Scanner(new File(srcDir, template));
+        PrintStream ops = new PrintStream(new FileOutputStream(
+                             new File(dstDir, clzName + ".java")));
+        if (hisName == null)
+            hisName = "";
+
+        while (s.hasNextLine()) {
+            String line = s.nextLine();
+            if (line.indexOf("$") == -1) {
+                ops.println(line);
+                continue;
+            }
+            line = line.replace("$PACKAGE$" , pkgName)
+                       .replace("$IMPLEMENTS$", (hisName == null)?
+                                "" : "implements HistoricallyNamedCharset")
+                       .replace("$NAME_CLZ$", clzName)
+                       .replace("$NAME_ALIASES$",
+                                "sun.nio.cs".equals(pkgName) ?
+                                "StandardCharsets.aliases_" + clzName :
+                                "ExtendedCharsets.aliasesFor(\"" + csName + "\")")
+                       .replace("$NAME_CS$" , csName)
+                       .replace("$CONTAINS$",
+                                "MS932".equals(clzName)?
+                                "return ((cs.name().equals(\"US-ASCII\")) || (cs instanceof JIS_X_0201) || (cs instanceof " + clzName + "));":
+                                (isASCII ?
+                                 "return ((cs.name().equals(\"US-ASCII\")) || (cs instanceof " + clzName + "));":
+                                 "return (cs instanceof " + clzName + ");"))
+                       .replace("$HISTORICALNAME$",
+                                (hisName == null)? "" :
+                                "    public String historicalName() { return \"" + hisName + "\"; }")
+                       .replace("$DECTYPE$", type)
+                       .replace("$ENCTYPE$", type)
+                       .replace("$B1MIN$"   , "0x" + Integer.toString(b1Min, 16))
+                       .replace("$B1MAX$"   , "0x" + Integer.toString(b1Max, 16))
+                       .replace("$B2MIN$"   , "0x" + Integer.toString(b2Min, 16))
+                       .replace("$B2MAX$"   , "0x" + Integer.toString(b2Max, 16))
+                       .replace("$B2C$", b2c)
+                       .replace("$C2BLENGTH$", "0x" + Integer.toString(c2bOff, 16))
+                       .replace("$NONROUNDTRIP_B2C$", b2cNR)
+                       .replace("$NONROUNDTRIP_C2B$", c2bNR);
+
+            ops.println(line);
+        }
+        ops.close();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,177 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package build.tools.charsetmapping;
+
+import java.io.*;
+import java.util.ArrayList;
+import java.util.Scanner;
+import java.util.Formatter;
+import java.util.regex.*;
+import java.nio.charset.*;
+import static build.tools.charsetmapping.Utils.*;
+
+public class EUC_TW {
+
+    static char[] toCharArray(int[] db,
+                              int b1Min, int b1Max,
+                              int b2Min, int b2Max)
+    {
+        char[] ca = new char[(b1Max - b1Min + 1) * (b2Max - b2Min + 1)];
+        int off = 0;
+        for (int b1 = b1Min; b1 <= b1Max; b1++) {
+            for (int b2 = b2Min; b2 <= b2Max; b2++) {
+                ca[off++] = (char)(db[b1 * 256 + b2] & 0xffff);
+            }
+        }
+        return ca;
+    }
+
+    static char[] toCharArray(byte[] ba,
+                              int b1Min, int b1Max,
+                              int b2Min, int b2Max)
+    {
+        char[] ca = new char[(b1Max - b1Min + 1) * (b2Max - b2Min + 1)];
+        int off = 0;
+        for (int b1 = b1Min; b1 <= b1Max; b1++) {
+            int b2 = b2Min;
+            while (b2 <= b2Max) {
+                ca[off++] = (char)(((ba[b1 * 256 + b2++] & 0xff) << 8) |
+                                   (ba[b1 * 256 + b2++] & 0xff));
+            }
+        }
+        return ca;
+    }
+
+    private static int initC2BIndex(char[] index) {
+        int off = 0;
+        for (int i = 0; i < index.length; i++) {
+            if (index[i] != 0) {
+                index[i] = (char)off;
+                off += 0x100;
+            } else {
+                index[i] = UNMAPPABLE_ENCODING;
+            }
+        }
+        return off;
+    }
+
+    private static Pattern euctw = Pattern.compile("(?:8ea)?(\\p{XDigit}++)\\s++(\\p{XDigit}++)?\\s*+.*");
+
+    static void genClass(String args[]) throws Exception
+    {
+        InputStream is = new FileInputStream(new File(args[0], "euc_tw.map"));
+        PrintStream ps = new PrintStream(new File(args[1], "EUC_TWMapping.java"),
+                                         "ISO-8859-1");
+        String copyright = getCopyright(new File(args[3]));
+
+
+        // ranges of byte1 and byte2, something should come from a "config" file
+        int b1Min = 0xa1;
+        int b1Max = 0xfe;
+        int b2Min = 0xa1;
+        int b2Max = 0xfe;
+
+        try {
+            int[][] db = new int[8][0x10000];        // doublebyte
+            byte[]  suppFlag = new byte[0x10000];    // doublebyte
+            char[]  indexC2B = new char[256];
+            char[]  indexC2BSupp = new char[256];
+
+            for (int i = 0; i < 8; i++)
+                for (int j = 0; j < 0x10000; j++)
+                    db[i][j] = UNMAPPABLE_DECODING;
+
+            Parser p = new Parser(is, euctw);
+            Entry  e = null;
+            while ((e = p.next()) != null) {
+                int plane = 0;
+                if (e.bs >= 0x10000) {
+                    plane = ((e.bs >> 16) & 0xff) - 1;
+                    if (plane >= 14)
+                        plane = 7;
+                    e.bs = e.bs & 0xffff;
+                }
+                db[plane][e.bs] = e.cp;
+                if (e.cp < 0x10000) {
+                    indexC2B[e.cp>>8] = 1;
+                } else {
+                    indexC2BSupp[(e.cp&0xffff)>>8] = 1;
+                    suppFlag[e.bs] |= (1 << plane);
+                }
+            }
+
+            StringBuilder sb = new StringBuilder();
+            Output out = new Output(new Formatter(sb));
+
+            out.format(copyright);
+            out.format("%n// -- This file was mechanically generated: Do not edit! -- //%n");
+            out.format("package sun.nio.cs.ext;%n%n");
+            out.format("class EUC_TWMapping {%n%n");
+
+            // boundaries
+            out.format("    final static int b1Min = 0x%x;%n", b1Min);
+            out.format("    final static int b1Max = 0x%x;%n", b1Max);
+            out.format("    final static int b2Min = 0x%x;%n", b2Min);
+            out.format("    final static int b2Max = 0x%x;%n", b2Max);
+
+            // b2c tables
+            out.format("%n    final static String[] b2c = {%n");
+            for (int plane = 0; plane < 8; plane++) {
+                out.format("        // Plane %d%n", plane);
+                out.format(toCharArray(db[plane], b1Min, b1Max, b2Min, b2Max),
+                           ",");
+                out.format("%n");
+            }
+            out.format("    };%n");
+
+            // c2bIndex
+            out.format("%n    static final int C2BSIZE = 0x%x;%n",
+                       initC2BIndex(indexC2B));
+            out.format("%n    static char[] c2bIndex = new char[] {%n");
+            out.format(indexC2B);
+            out.format("    };%n");
+
+            // c2bIndexSupp
+            out.format("%n    static final int C2BSUPPSIZE = 0x%x;%n",
+                       initC2BIndex(indexC2BSupp));
+            out.format("%n    static char[] c2bSuppIndex = new char[] {%n");
+            out.format(indexC2BSupp);
+            out.format("    };%n");
+
+            // suppFlags
+            out.format("%n    static String b2cIsSuppStr =%n");
+            out.format(toCharArray(suppFlag, b1Min, b1Max, b2Min, b2Max),
+                       ";");
+            out.format("}");
+            out.close();
+
+            ps.println(sb.toString());
+            ps.close();
+        } catch (Exception x) {
+            x.printStackTrace();
+        }
+    }
+}
--- a/jdk/make/tools/src/build/tools/charsetmapping/GenerateDBCS.java	Wed Jul 05 17:09:16 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,287 +0,0 @@
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package build.tools.charsetmapping;
-import java.io.*;
-import java.util.Arrays;
-import java.util.ArrayList;
-import java.util.Scanner;
-import java.util.Formatter;
-import java.util.regex.*;
-import java.nio.charset.*;
-import static build.tools.charsetmapping.CharsetMapping.*;
-
-public class GenerateDBCS {
-    // pattern used by this class to read in mapping table
-    static Pattern mPattern = Pattern.compile("(?:0x)?(\\p{XDigit}++)\\s++(?:0x)?(\\p{XDigit}++)(?:\\s++#.*)?");
-    public static void genDBCS(String args[]) throws Exception {
-
-        Scanner s = new Scanner(new File(args[0], args[2]));
-        while (s.hasNextLine()) {
-            String line = s.nextLine();
-            if (line.startsWith("#") || line.length() == 0)
-                continue;
-            String[] fields = line.split("\\s+");
-            if (fields.length < 10) {
-                System.err.println("Misconfiged sbcs line <" + line + ">?");
-                continue;
-            }
-            String clzName = fields[0];
-            String csName  = fields[1];
-            String hisName = ("null".equals(fields[2]))?null:fields[2];
-            String type = fields[3].toUpperCase();
-            if ("BASIC".equals(type))
-                type = "";
-            else
-                type = "_" + type;
-            String pkgName  = fields[4];
-            boolean isASCII = Boolean.valueOf(fields[5]);
-            int    b1Min = toInteger(fields[6]);
-            int    b1Max = toInteger(fields[7]);
-            int    b2Min    = toInteger(fields[8]);
-            int    b2Max    = toInteger(fields[9]);
-            System.out.printf("%s,%s,%s,%b,%s%n", clzName, csName, hisName, isASCII, pkgName);
-            genClass(args[0], args[1], "DoubleByte-X.java.template",
-                    clzName, csName, hisName, pkgName,
-                    isASCII, type,
-                    b1Min, b1Max, b2Min, b2Max);
-        }
-    }
-
-    private static int toInteger(String s) {
-        if (s.startsWith("0x") || s.startsWith("0X"))
-            return Integer.valueOf(s.substring(2), 16);
-        else
-            return Integer.valueOf(s);
-    }
-
-    private static void outString(Formatter out,
-                                  char[] cc, int off, int end,
-                                  String closure)
-    {
-        while (off < end) {
-            out.format("        \"");
-            for (int j = 0; j < 8; j++) {
-                if (off == end)
-                    break;
-                char c = cc[off++];
-                switch (c) {
-                case '\b':
-                    out.format("\\b"); break;
-                case '\t':
-                    out.format("\\t"); break;
-                case '\n':
-                    out.format("\\n"); break;
-                case '\f':
-                    out.format("\\f"); break;
-                case '\r':
-                    out.format("\\r"); break;
-                case '\"':
-                    out.format("\\\""); break;
-                case '\'':
-                    out.format("\\'"); break;
-                case '\\':
-                    out.format("\\\\"); break;
-                default:
-                    out.format("\\u%04X", c & 0xffff);
-                }
-            }
-            if (off == end)
-                out.format("\" %s%n", closure);
-            else
-                out.format("\" + %n");
-        }
-    }
-
-    private static void outString(Formatter out,
-                                  char[] db,
-                                  int b1,
-                                  int b2Min, int b2Max,
-                                  String closure)
-    {
-        char[] cc = new char[b2Max - b2Min + 1];
-        int off = 0;
-        for (int b2 = b2Min; b2 <= b2Max; b2++) {
-            cc[off++] = db[(b1 << 8) | b2];
-        }
-        outString(out, cc, 0, cc.length, closure);
-    }
-
-    private static void genClass(String srcDir, String dstDir, String template,
-                                 String clzName,
-                                 String csName,
-                                 String hisName,
-                                 String pkgName,
-                                 boolean isASCII,
-                                 String type,
-                                 int b1Min, int b1Max,
-                                 int b2Min, int b2Max)
-        throws Exception
-    {
-
-        StringBuilder b2cSB = new StringBuilder();
-        StringBuilder b2cNRSB = new StringBuilder();
-        StringBuilder c2bNRSB = new StringBuilder();
-
-        char[] db = new char[0x10000];
-        char[] c2bIndex = new char[0x100];
-        int c2bOff = 0x100;    // first 0x100 for unmappable segs
-
-        Arrays.fill(db, UNMAPPABLE_DECODING);
-        Arrays.fill(c2bIndex, UNMAPPABLE_DECODING);
-
-        char[] b2cIndex = new char[0x100];
-        Arrays.fill(b2cIndex, UNMAPPABLE_DECODING);
-
-        // (1)read in .map to parse all b->c entries
-        FileInputStream in = new FileInputStream(new File(srcDir, clzName + ".map"));
-        Parser p = new Parser(in, mPattern);
-        Entry  e = null;
-        while ((e = p.next()) != null) {
-            db[e.bs] = (char)e.cp;
-
-            if (e.bs > 0x100 &&    // db
-                b2cIndex[e.bs>>8] == UNMAPPABLE_DECODING) {
-                b2cIndex[e.bs>>8] = 1;
-            }
-
-            if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
-                c2bOff += 0x100;
-                c2bIndex[e.cp>>8] = 1;
-            }
-        }
-        Formatter fm = new Formatter(b2cSB);
-        fm.format("%n    static final String b2cSBStr =%n");
-        outString(fm, db, 0x00, 0x100,  ";");
-
-        fm.format("%n        static final String[] b2cStr = {%n");
-        for (int i = 0; i < 0x100; i++) {
-            if (b2cIndex[i] == UNMAPPABLE_DECODING) {
-                fm.format("            null,%n");  //unmappable segments
-            } else {
-                outString(fm, db, i, b2Min, b2Max, ",");
-            }
-        }
-
-        fm.format("        };%n");
-        fm.close();
-
-        // (2)now parse the .nr file which includes "b->c" non-roundtrip entries
-        File f = new File(srcDir, clzName + ".nr");
-        if (f.exists()) {
-            StringBuilder sb = new StringBuilder();
-            in = new FileInputStream(f);
-            p = new Parser(in, mPattern);
-            e = null;
-            while ((e = p.next()) != null) {
-                // A <b,c> pair
-                sb.append((char)e.bs);
-                sb.append((char)e.cp);
-            }
-            char[] nr = sb.toString().toCharArray();
-            fm = new Formatter(b2cNRSB);
-            fm.format("String b2cNR =%n");
-            outString(fm, nr, 0, nr.length,  ";");
-            fm.close();
-        } else {
-            b2cNRSB.append("String b2cNR = null;");
-        }
-
-        // (3)finally the .c2b file which includes c->b non-roundtrip entries
-        f = new File(srcDir, clzName + ".c2b");
-        if (f.exists()) {
-            StringBuilder sb = new StringBuilder();
-            in = new FileInputStream(f);
-            p = new Parser(in, mPattern);
-            e = null;
-            while ((e = p.next()) != null) {
-                // A <b,c> pair
-                if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
-                    c2bOff += 0x100;
-                    c2bIndex[e.cp>>8] = 1;
-                }
-                sb.append((char)e.bs);
-                sb.append((char)e.cp);
-            }
-            char[] nr = sb.toString().toCharArray();
-            fm = new Formatter(c2bNRSB);
-            fm.format("String c2bNR =%n");
-            outString(fm, nr, 0, nr.length,  ";");
-            fm.close();
-        } else {
-            c2bNRSB.append("String c2bNR = null;");
-        }
-
-        // (4)it's time to generate the source file
-        String b2c = b2cSB.toString();
-        String b2cNR = b2cNRSB.toString();
-        String c2bNR = c2bNRSB.toString();
-
-        Scanner s = new Scanner(new File(srcDir, template));
-        PrintStream out = new PrintStream(new FileOutputStream(
-                              new File(dstDir, clzName + ".java")));
-        if (hisName == null)
-            hisName = "";
-
-        while (s.hasNextLine()) {
-            String line = s.nextLine();
-            if (line.indexOf("$") == -1) {
-                out.println(line);
-                continue;
-            }
-            line = line.replace("$PACKAGE$" , pkgName)
-                       .replace("$IMPLEMENTS$", (hisName == null)?
-                                "" : "implements HistoricallyNamedCharset")
-                       .replace("$NAME_CLZ$", clzName)
-                       .replace("$NAME_ALIASES$",
-                                "sun.nio.cs".equals(pkgName) ?
-                                "StandardCharsets.aliases_" + clzName :
-                                "ExtendedCharsets.aliasesFor(\"" + csName + "\")")
-                       .replace("$NAME_CS$" , csName)
-                       .replace("$CONTAINS$",
-                                "MS932".equals(clzName)?
-                                "return ((cs.name().equals(\"US-ASCII\")) || (cs instanceof JIS_X_0201) || (cs instanceof " + clzName + "));":
-                                (isASCII ?
-                                 "return ((cs.name().equals(\"US-ASCII\")) || (cs instanceof " + clzName + "));":
-                                 "return (cs instanceof " + clzName + ");"))
-                       .replace("$HISTORICALNAME$",
-                                (hisName == null)? "" :
-                                "    public String historicalName() { return \"" + hisName + "\"; }")
-                       .replace("$DECTYPE$", type)
-                       .replace("$ENCTYPE$", type)
-                       .replace("$B1MIN$"   , "0x" + Integer.toString(b1Min, 16))
-                       .replace("$B1MAX$"   , "0x" + Integer.toString(b1Max, 16))
-                       .replace("$B2MIN$"   , "0x" + Integer.toString(b2Min, 16))
-                       .replace("$B2MAX$"   , "0x" + Integer.toString(b2Max, 16))
-                       .replace("$B2C$", b2c)
-                       .replace("$C2BLENGTH$", "0x" + Integer.toString(c2bOff, 16))
-                       .replace("$NONROUNDTRIP_B2C$", b2cNR)
-                       .replace("$NONROUNDTRIP_C2B$", c2bNR);
-
-            out.println(line);
-        }
-        out.close();
-    }
-}
--- a/jdk/make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java	Wed Jul 05 17:09:16 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package build.tools.charsetmapping;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.Scanner;
-import java.util.Formatter;
-import java.util.regex.*;
-import java.nio.charset.*;
-import static build.tools.charsetmapping.CharsetMapping.*;
-
-public class GenerateEUC_TW {
-
-    public static void genEUC_TW(String args[]) throws Exception {
-        genClass(new FileInputStream(new File(args[0], "euc_tw.map")),
-                 new PrintStream(new File(args[1], "EUC_TWMapping.java"), "ISO-8859-1"),
-                 getCopyright(new File(args[3])));
-    }
-
-    private static String getCopyright(File f) throws IOException {
-        Scanner s = new Scanner(f, "ISO-8859-1");
-        StringBuilder sb = new StringBuilder();
-        while (s.hasNextLine()) {
-            String ln = s.nextLine();
-            sb.append(ln + "\n");
-            // assume we have the copyright as the first comment
-            if (ln.matches("^\\s\\*\\/$"))
-                break;
-        }
-        s.close();
-        return sb.toString();
-    }
-
-    private static char[] toCharArray(int[] db,
-                                      int b1Min, int b1Max,
-                                      int b2Min, int b2Max)
-    {
-        char[] ca = new char[(b1Max - b1Min + 1) * (b2Max - b2Min + 1)];
-        int off = 0;
-        for (int b1 = b1Min; b1 <= b1Max; b1++) {
-            for (int b2 = b2Min; b2 <= b2Max; b2++) {
-                ca[off++] = (char)(db[b1 * 256 + b2] & 0xffff);
-            }
-        }
-        return ca;
-    }
-
-    private static void toChar(Formatter out, String fmt, char c) {
-        switch (c) {
-        case '\b':
-            out.format("\\b"); break;
-        case '\t':
-            out.format("\\t"); break;
-        case '\n':
-            out.format("\\n"); break;
-        case '\f':
-            out.format("\\f"); break;
-        case '\r':
-            out.format("\\r"); break;
-        case '\"':
-            out.format("\\\""); break;
-        case '\'':
-            out.format("\\'"); break;
-        case '\\':
-            out.format("\\\\"); break;
-        default:
-            out.format(fmt, c & 0xffff);
-        }
-    }
-
-    private static void toString(Formatter out, char[] date, String endStr)
-    {
-        int off = 0;
-        int end = date.length;
-        while (off < end) {
-            out.format("        \"");
-            for (int j = 0; j < 8 && off < end; j++) {
-                toChar(out, "\\u%04X", date[off++]);
-            }
-            if (off == end)
-               out.format("\"%s%n", endStr);
-            else
-               out.format("\" +%n");
-        }
-    }
-
-    private static char[] toCharArray(byte[] ba,
-                                      int b1Min, int b1Max,
-                                      int b2Min, int b2Max)
-    {
-        char[] ca = new char[(b1Max - b1Min + 1) * (b2Max - b2Min + 1)];
-        int off = 0;
-        for (int b1 = b1Min; b1 <= b1Max; b1++) {
-            int b2 = b2Min;
-            while (b2 <= b2Max) {
-                ca[off++] = (char)(((ba[b1 * 256 + b2++] & 0xff) << 8) |
-                                   (ba[b1 * 256 + b2++] & 0xff));
-            }
-        }
-        return ca;
-    }
-
-    private static void toCharArray(Formatter out, char[] date) {
-        int off = 0;
-        int end = date.length;
-        while (off < end) {
-            out.format("        ");
-            for (int j = 0; j < 8 && off < end; j++) {
-                toChar(out, "'\\u%04X',", date[off++]);
-            }
-            out.format("%n");
-        }
-    }
-
-    private static int initC2BIndex(char[] index) {
-        int off = 0;
-        for (int i = 0; i < index.length; i++) {
-            if (index[i] != 0) {
-                index[i] = (char)off;
-                off += 0x100;
-            } else {
-                index[i] = CharsetMapping.UNMAPPABLE_ENCODING;
-            }
-        }
-        return off;
-    }
-
-    private static Pattern euctw = Pattern.compile("(?:8ea)?(\\p{XDigit}++)\\s++(\\p{XDigit}++)?\\s*+.*");
-
-    private static void genClass(InputStream is, PrintStream ps, String copyright)
-        throws Exception
-    {
-        // ranges of byte1 and byte2, something should come from a "config" file
-        int b1Min = 0xa1;
-        int b1Max = 0xfe;
-        int b2Min = 0xa1;
-        int b2Max = 0xfe;
-
-        try {
-            int[][] db = new int[8][0x10000];        // doublebyte
-            byte[]  suppFlag = new byte[0x10000];    // doublebyte
-            char[]  indexC2B = new char[256];
-            char[]  indexC2BSupp = new char[256];
-
-            for (int i = 0; i < 8; i++)
-                for (int j = 0; j < 0x10000; j++)
-                    db[i][j] = CharsetMapping.UNMAPPABLE_DECODING;
-
-            CharsetMapping.Parser p = new CharsetMapping.Parser(is, euctw);
-            CharsetMapping.Entry  e = null;
-            while ((e = p.next()) != null) {
-                int plane = 0;
-                if (e.bs >= 0x10000) {
-                    plane = ((e.bs >> 16) & 0xff) - 1;
-                    if (plane >= 14)
-                        plane = 7;
-                    e.bs = e.bs & 0xffff;
-                }
-                db[plane][e.bs] = e.cp;
-                if (e.cp < 0x10000) {
-                    indexC2B[e.cp>>8] = 1;
-                } else {
-                    indexC2BSupp[(e.cp&0xffff)>>8] = 1;
-                    suppFlag[e.bs] |= (1 << plane);
-                }
-            }
-
-            StringBuilder out = new StringBuilder();
-            Formatter fm = new Formatter(out);
-
-            fm.format(copyright);
-            fm.format("%n// -- This file was mechanically generated: Do not edit! -- //%n");
-            fm.format("package sun.nio.cs.ext;%n%n");
-            fm.format("class EUC_TWMapping {%n%n");
-
-            // boundaries
-            fm.format("    final static int b1Min = 0x%x;%n", b1Min);
-            fm.format("    final static int b1Max = 0x%x;%n", b1Max);
-            fm.format("    final static int b2Min = 0x%x;%n", b2Min);
-            fm.format("    final static int b2Max = 0x%x;%n", b2Max);
-
-            // b2c tables
-            fm.format("%n    final static String[] b2c = {%n");
-            for (int plane = 0; plane < 8; plane++) {
-                fm.format("        // Plane %d%n", plane);
-                toString(fm, toCharArray(db[plane],
-                                         b1Min, b1Max, b2Min, b2Max),
-                         ",");
-                fm.format("%n");
-            }
-            fm.format("    };%n");
-
-            // c2bIndex
-            fm.format("%n    static final int C2BSIZE = 0x%x;%n",
-                      initC2BIndex(indexC2B));
-            fm.format("%n    static char[] c2bIndex = new char[] {%n");
-            toCharArray(fm, indexC2B);
-            fm.format("    };%n");
-
-            // c2bIndexSupp
-            fm.format("%n    static final int C2BSUPPSIZE = 0x%x;%n",
-                      initC2BIndex(indexC2BSupp));
-            fm.format("%n    static char[] c2bSuppIndex = new char[] {%n");
-            toCharArray(fm, indexC2BSupp);
-            fm.format("    };%n");
-
-            // suppFlags
-            fm.format("%n    static String b2cIsSuppStr =%n");
-            toString(fm, toCharArray(suppFlag,
-                                     b1Min, b1Max, b2Min, b2Max),
-                     ";");
-
-            fm.format("}");
-            fm.close();
-
-            ps.println(out.toString());
-            ps.close();
-        } catch (Exception x) {
-            x.printStackTrace();
-        }
-    }
-}
--- a/jdk/make/tools/src/build/tools/charsetmapping/GenerateMapping.java	Wed Jul 05 17:09:16 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
- * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package build.tools.charsetmapping;
-
-import java.io.*;
-import java.util.regex.*;
-import static build.tools.charsetmapping.CharsetMapping.*;
-
-public class GenerateMapping {
-
-    public static void genMapping(String argv[]) throws IOException {
-        genDataJIS0213(new FileInputStream(argv[0]),
-                       new FileOutputStream(argv[1]));
-    }
-
-    // regex pattern to parse the "jis0213.map" file
-    static Pattern sjis0213 = Pattern.compile("0x(\\p{XDigit}++)\\s++U\\+(\\p{XDigit}++)(?:\\+(\\p{XDigit}++))?\\s++#.*");
-    private static void genDataJIS0213(InputStream in, OutputStream out)
-    {
-        int[] sb = new int[0x100];                         // singlebyte
-        int[] db = new int[0x10000];                       // doublebyte
-        int[] indexC2B = new int[256];
-        Entry[] supp = new Entry[0x10000];
-        Entry[] comp = new Entry[0x100];
-        int suppTotal = 0;
-        int compTotal = 0;
-
-        int b1Min1 = 0x81;
-        int b1Max1 = 0x9f;
-        int b1Min2 = 0xe0;
-        int b1Max2 = 0xfc;
-        int b2Min = 0x40;
-        int b2Max = 0xfe;
-
-        //init
-        for (int i = 0; i < 0x80; i++) sb[i] = i;
-        for (int i = 0x80; i < 0x100; i++) sb[i] = UNMAPPABLE_DECODING;
-        for (int i = 0; i < 0x10000; i++) db[i] = UNMAPPABLE_DECODING;
-        try {
-            Parser p = new Parser(in, sjis0213);
-            Entry  e = null;
-            while ((e = p.next()) != null) {
-                if (e.cp2 != 0) {
-                    comp[compTotal++] = e;
-                } else {
-                    if (e.cp <= 0xffff) {
-                        if (e.bs <= 0xff)
-                            sb[e.bs] = e.cp;
-                        else
-                            db[e.bs] = e.cp;
-                        indexC2B[e.cp>>8] = 1;
-                    } else {
-                        supp[suppTotal++] = e;
-                    }
-                }
-            }
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-            // c2b Index Table, always the first one
-            writeINDEXC2B(baos, indexC2B);
-            writeSINGLEBYTE(baos, sb);
-            writeDOUBLEBYTE1(baos, db, b1Min1, b1Max1, b2Min, b2Max);
-            writeDOUBLEBYTE2(baos, db, b1Min2, b1Max2, b2Min, b2Max);
-            writeSUPPLEMENT(baos, supp, suppTotal);
-            writeCOMPOSITE(baos, comp, compTotal);
-            writeSIZE(out, baos.size());
-            baos.writeTo(out);
-            out.close();
-        } catch (Exception x) {
-            x.printStackTrace();
-        }
-    }
-}
--- a/jdk/make/tools/src/build/tools/charsetmapping/GenerateSBCS.java	Wed Jul 05 17:09:16 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,269 +0,0 @@
-/*
- * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package build.tools.charsetmapping;
-
-import java.io.*;
-import java.util.Arrays;
-import java.util.ArrayList;
-import java.util.Scanner;
-import java.util.Formatter;
-import java.util.regex.*;
-import java.nio.charset.*;
-import static build.tools.charsetmapping.CharsetMapping.*;
-
-public class GenerateSBCS {
-
-    public static void genSBCS(String args[]) throws Exception {
-
-        Scanner s = new Scanner(new File(args[0], args[2]));
-        while (s.hasNextLine()) {
-            String line = s.nextLine();
-            if (line.startsWith("#") || line.length() == 0)
-                continue;
-            String[] fields = line.split("\\s+");
-            if (fields.length < 5) {
-                System.err.println("Misconfiged sbcs line <" + line + ">?");
-                continue;
-            }
-            String clzName = fields[0];
-            String csName  = fields[1];
-            String hisName = fields[2];
-            boolean isASCII = Boolean.valueOf(fields[3]);
-            String pkgName  = fields[4];
-            System.out.printf("%s,%s,%s,%b,%s%n", clzName, csName, hisName, isASCII, pkgName);
-
-            genClass(args[0], args[1], "SingleByte-X.java.template",
-                     clzName, csName, hisName, pkgName, isASCII);
-        }
-    }
-
-    private static void toString(char[] sb, int off, int end,
-                                 Formatter out, String closure,
-                                 boolean comment) {
-        while (off < end) {
-            out.format("        \"");
-            for (int j = 0; j < 8; j++) {
-                if (off == end)
-                    break;
-                char c = sb[off++];
-                switch (c) {
-                case '\b':
-                    out.format("\\b"); break;
-                case '\t':
-                    out.format("\\t"); break;
-                case '\n':
-                    out.format("\\n"); break;
-                case '\f':
-                    out.format("\\f"); break;
-                case '\r':
-                    out.format("\\r"); break;
-                case '\"':
-                    out.format("\\\""); break;
-                case '\'':
-                    out.format("\\'"); break;
-                case '\\':
-                    out.format("\\\\"); break;
-                default:
-                    out.format("\\u%04X", c & 0xffff);
-                }
-            }
-            if (comment) {
-                if (off == end)
-                    out.format("\" %s      // 0x%02x - 0x%02x%n",
-                               closure, off-8, off-1);
-                else
-                    out.format("\" +      // 0x%02x - 0x%02x%n",
-                               off-8, off-1);
-            } else {
-                if (off == end)
-                    out.format("\"%s%n", closure);
-                else
-                    out.format("\" +%n");
-            }
-        }
-    }
-
-    static Pattern sbmap = Pattern.compile("0x(\\p{XDigit}++)\\s++U\\+(\\p{XDigit}++)(\\s++#.*)?");
-
-    private static void genClass(String srcDir, String dstDir,
-                                 String template,
-                                 String clzName,
-                                 String csName,
-                                 String hisName,
-                                 String pkgName,
-                                 boolean isASCII)
-        throws Exception
-    {
-        StringBuilder b2cSB = new StringBuilder();
-        StringBuilder b2cNRSB = new StringBuilder();
-        StringBuilder c2bNRSB = new StringBuilder();
-
-        char[] sb = new char[0x100];
-        char[] c2bIndex = new char[0x100];
-        int    c2bOff = 0;
-        Arrays.fill(sb, UNMAPPABLE_DECODING);
-        Arrays.fill(c2bIndex, UNMAPPABLE_DECODING);
-
-        // (1)read in .map to parse all b->c entries
-        FileInputStream in = new FileInputStream(
-                                 new File(srcDir, clzName + ".map"));
-        Parser p = new Parser(in, sbmap);
-        Entry  e = null;
-
-        while ((e = p.next()) != null) {
-            sb[e.bs] = (char)e.cp;
-            if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
-                c2bOff += 0x100;
-                c2bIndex[e.cp>>8] = 1;
-            }
-        }
-
-        Formatter fm = new Formatter(b2cSB);
-        fm.format("%n");
-
-        // vm -server shows cc[byte + 128] access is much faster than
-        // cc[byte&0xff] so we output the upper segment first
-        toString(sb, 0x80, 0x100, fm, "+", true);
-        toString(sb, 0x00, 0x80,  fm, ";", true);
-        fm.close();
-
-        // (2)now the .nr file which includes "b->c" non-roundtrip entries
-        File f = new File(srcDir, clzName + ".nr");
-        if (f.exists()) {
-            in = new FileInputStream(f);
-            fm = new Formatter(b2cNRSB);
-            p = new Parser(in, sbmap);
-            e = null;
-
-            fm.format("// remove non-roundtrip entries%n");
-            fm.format("        b2cMap = b2cTable.toCharArray();%n");
-            while ((e = p.next()) != null) {
-                fm.format("        b2cMap[%d] = UNMAPPABLE_DECODING;%n",
-                          (e.bs>=0x80)?(e.bs-0x80):(e.bs+0x80));
-            }
-            fm.close();
-        }
-
-        // (3)finally the .c2b file which includes c->b non-roundtrip entries
-        f = new File(srcDir, clzName + ".c2b");
-        if (f.exists()) {
-            in = new FileInputStream(f);
-            fm = new Formatter(c2bNRSB);
-            p = new Parser(in, sbmap);
-            e = null;
-            ArrayList<Entry> es = new ArrayList<Entry>();
-            while ((e = p.next()) != null) {
-                if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
-                    c2bOff += 0x100;
-                    c2bIndex[e.cp>>8] = 1;
-                }
-                es.add(e);
-            }
-            fm.format("// non-roundtrip c2b only entries%n");
-            if (es.size() < 100) {
-                fm.format("        c2bNR = new char[%d];%n", es.size() * 2);
-                int i = 0;
-                for (Entry entry: es) {
-                    fm.format("        c2bNR[%d] = 0x%x; c2bNR[%d] = 0x%x;%n",
-                              i++, entry.bs, i++, entry.cp);
-                }
-            } else {
-                char[] cc = new char[es.size() * 2];
-                int i = 0;
-                for (Entry entry: es) {
-                    cc[i++] = (char)entry.bs;
-                    cc[i++] = (char)entry.cp;
-                }
-                fm.format("        c2bNR = (%n");
-                toString(cc, 0, i,  fm, ").toCharArray();", false);
-            }
-            fm.close();
-        }
-
-        // (4)it's time to generate the source file
-        String b2c = b2cSB.toString();
-        String b2cNR = b2cNRSB.toString();
-        String c2bNR = c2bNRSB.toString();
-
-        Scanner s = new Scanner(new File(srcDir, template));
-        PrintStream out = new PrintStream(new FileOutputStream(
-                              new File(dstDir, clzName + ".java")));
-
-        while (s.hasNextLine()) {
-            String line = s.nextLine();
-            int i = line.indexOf("$");
-            if (i == -1) {
-                out.println(line);
-                continue;
-            }
-            if (line.indexOf("$PACKAGE$", i) != -1) {
-                line = line.replace("$PACKAGE$", pkgName);
-            }
-            if (line.indexOf("$NAME_CLZ$", i) != -1) {
-                line = line.replace("$NAME_CLZ$", clzName);
-            }
-            if (line.indexOf("$NAME_CS$", i) != -1) {
-                line = line.replace("$NAME_CS$", csName);
-            }
-            if (line.indexOf("$NAME_ALIASES$", i) != -1) {
-                if ("sun.nio.cs".equals(pkgName))
-                    line = line.replace("$NAME_ALIASES$",
-                                        "StandardCharsets.aliases_" + clzName);
-                else
-                    line = line.replace("$NAME_ALIASES$",
-                                        "ExtendedCharsets.aliasesFor(\"" + csName + "\")");
-            }
-            if (line.indexOf("$NAME_HIS$", i) != -1) {
-                line = line.replace("$NAME_HIS$", hisName);
-            }
-            if (line.indexOf("$CONTAINS$", i) != -1) {
-                if (isASCII)
-                    line = "        return ((cs.name().equals(\"US-ASCII\")) || (cs instanceof " + clzName + "));";
-                else
-                    line = "        return (cs instanceof " + clzName + ");";
-            }
-            if (line.indexOf("$B2CTABLE$") != -1) {
-                line = line.replace("$B2CTABLE$", b2c);
-            }
-            if (line.indexOf("$C2BLENGTH$") != -1) {
-                line = line.replace("$C2BLENGTH$", "0x" + Integer.toString(c2bOff, 16));
-            }
-            if (line.indexOf("$NONROUNDTRIP_B2C$") != -1) {
-                if (b2cNR.length() == 0)
-                    continue;
-                line = line.replace("$NONROUNDTRIP_B2C$", b2cNR);
-            }
-
-            if (line.indexOf("$NONROUNDTRIP_C2B$") != -1) {
-                if (c2bNR.length() == 0)
-                    continue;
-                line = line.replace("$NONROUNDTRIP_C2B$", c2bNR);
-            }
-            out.println(line);
-        }
-        out.close();
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/charsetmapping/HKSCS.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,190 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package build.tools.charsetmapping;
+
+import java.io.*;
+import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.Scanner;
+import java.util.Formatter;
+import java.util.regex.*;
+import java.nio.charset.*;
+import static build.tools.charsetmapping.Utils.*;
+
+public class HKSCS {
+
+    // HKSCS2001.map has the third column for "UnicodeAlternate", which
+    // is for c->b non-roundtrip mapping.
+    // For HKSCS2008, those non-roundtrip mappings are in .nr file
+    private static Pattern hkscs =
+        Pattern.compile("(?:0x)?+(\\p{XDigit}++)\\s++(?:0x|U\\+)?+(\\p{XDigit}++)?\\s*+(?:0x|U\\+)?(\\p{XDigit}++)?\\s*+.*");
+
+    static void genClass(String args[]) throws Exception {
+
+        // hkscs2008
+        genClass0(new FileInputStream(new File(args[0], "HKSCS2008.map")),
+                  new FileInputStream(new File(args[0], "HKSCS2008.c2b")),
+                  new PrintStream(new File(args[1], "HKSCSMapping.java"),
+                                  "ISO-8859-1"),
+                  "HKSCSMapping",
+                  getCopyright(new File(args[3])));
+
+
+        // xp2001
+        genClass0(new FileInputStream(new File(args[0], "HKSCS_XP.map")),
+                  null,
+                  new PrintStream(new File(args[1], "HKSCS_XPMapping.java"),
+                                  "ISO-8859-1"),
+                  "HKSCS_XPMapping",
+                  getCopyright(new File(args[3])));
+
+        // hkscs2001
+        genClass0(new FileInputStream(new File(args[0], "HKSCS2001.map")),
+                  new FileInputStream(new File(args[0], "HKSCS2001.c2b")),
+                  new PrintStream(new File(args[1], "HKSCS2001Mapping.java"),
+                                  "ISO-8859-1"),
+                  "HKSCS2001Mapping",
+                  getCopyright(new File(args[3])));
+    }
+
+    static void genClass0(InputStream isB2C,
+                          InputStream isC2B,
+                          PrintStream ps,
+                          String clzName,
+                          String copyright)
+        throws Exception
+    {
+        // ranges of byte1 and byte2, something should come from a "config" file
+        int b1Min = 0x87;
+        int b1Max = 0xfe;
+        int b2Min = 0x40;
+        int b2Max = 0xfe;
+
+        try {
+            char[] bmp = new char[0x10000];
+            char[] supp = new char[0x10000];
+
+            boolean[] b2cBmp = new boolean[0x100];
+            boolean[] b2cSupp = new boolean[0x100];
+            // pua should be in range of e000-f8ff. Expand
+            // it to 0xf93b becase the hkscs2001.c2b has
+            // the f920-f93b filled
+            //char[] pua = new char[0xF8FF - 0xE000 + 1];
+            char[] pua = new char[0xF93b - 0xE000 + 1];
+            boolean hasSupp = false;
+            boolean hasPua = false;
+
+            Arrays.fill(bmp, UNMAPPABLE_DECODING);
+            Arrays.fill(supp, UNMAPPABLE_DECODING);
+            Arrays.fill(pua, UNMAPPABLE_DECODING);
+
+            Parser p = new Parser(isB2C, hkscs);
+            Entry  e = null;
+            while ((e = p.next()) != null) {
+                if (e.cp >= 0x10000) {
+                    supp[e.bs] = (char)e.cp;
+                    b2cSupp[e.bs>>8] = true;
+                    hasSupp = true;
+                } else {
+                    bmp[e.bs] = (char)e.cp;
+                    b2cBmp[e.bs>>8] = true;
+                }
+                if (e.cp2 != 0 && e.cp2 >= 0xe000 && e.cp2 <= 0xf8ff) {
+                    hasPua = true;
+                    pua[e.cp2 - 0xE000] = (char)e.bs;
+                }
+            }
+
+            if (isC2B != null) {
+                p = new Parser(isC2B, hkscs);
+                e = null;
+                while ((e = p.next()) != null) {
+                    pua[e.cp - 0xE000] = (char)e.bs;
+                }
+                hasPua = true;
+            }
+
+            StringBuilder sb = new StringBuilder();
+            Output out = new Output(new Formatter(sb));
+
+            out.format(copyright);
+            out.format("%n// -- This file was mechanically generated: Do not edit! -- //%n");
+            out.format("package sun.nio.cs.ext;%n%n");
+            out.format("class %s {%n%n", clzName);
+
+            /* hardcoded in sun.nio.cs.ext.HKSCS.java
+            out.format("    final static int b1Min = 0x%x;%n", b1Min);
+            out.format("    final static int b1Max = 0x%x;%n", b1Max);
+            out.format("    final static int b2Min = 0x%x;%n", b2Min);
+            out.format("    final static int b2Max = 0x%x;%n", b2Max);
+            */
+
+            // bmp tables
+            out.format("%n    static final String[] b2cBmpStr = new String[] {%n");
+            for (int i = 0; i < 0x100; i++) {
+                if (b2cBmp[i])
+                    out.format(bmp, i, b2Min, b2Max, ",");
+                else
+                    out.format("        null,%n");  //unmappable segments
+            }
+            out.format("        };%n");
+
+            // supp tables
+            out.format("%n    static final String[] b2cSuppStr =");
+            if (hasSupp) {
+                out.format(" new String[] {%n");
+                for (int i = 0; i < 0x100; i++) {
+                    if (b2cSupp[i])
+                        out.format(supp, i, b2Min, b2Max, ",");
+                    else
+                        out.format("        null,%n");  //unmappable segments
+                }
+                out.format("        };%n");
+            } else {
+                out.format(" null;%n");
+            }
+
+            // private area tables
+            out.format("%n    final static String pua =");
+            if (hasPua) {
+                out.format("%n");
+                out.format(pua, 0, pua.length, ";");
+            } else {
+                out.format(" null;%n");
+            }
+            out.format("%n");
+            out.format("}");
+
+            out.close();
+
+            ps.println(sb.toString());
+            ps.close();
+
+        } catch (Exception x) {
+            x.printStackTrace();
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/charsetmapping/JIS0213.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,244 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package build.tools.charsetmapping;
+
+import java.io.*;
+import java.util.regex.*;
+import java.util.*;
+import static build.tools.charsetmapping.Utils.*;
+
+public class JIS0213 {
+
+    // regex pattern to parse the "jis0213.map" file
+    static Pattern sjis0213 = Pattern.compile("0x(\\p{XDigit}++)\\s++U\\+(\\p{XDigit}++)(?:\\+(\\p{XDigit}++))?\\s++#.*");
+
+    static void genClass(String argv[]) throws IOException
+    {
+        InputStream in = new FileInputStream(argv[0]) ;
+        OutputStream out = new FileOutputStream(argv[1]);
+
+        int[] sb = new int[0x100];                         // singlebyte
+        int[] db = new int[0x10000];                       // doublebyte
+        int[] indexC2B = new int[256];
+        Entry[] supp = new Entry[0x10000];
+        Entry[] comp = new Entry[0x100];
+        int suppTotal = 0;
+        int compTotal = 0;
+
+        int b1Min1 = 0x81;
+        int b1Max1 = 0x9f;
+        int b1Min2 = 0xe0;
+        int b1Max2 = 0xfc;
+        int b2Min = 0x40;
+        int b2Max = 0xfe;
+
+        //init
+        for (int i = 0; i < 0x80; i++) sb[i] = i;
+        for (int i = 0x80; i < 0x100; i++) sb[i] = UNMAPPABLE_DECODING;
+        for (int i = 0; i < 0x10000; i++) db[i] = UNMAPPABLE_DECODING;
+        try {
+            Parser p = new Parser(in, sjis0213);
+            Entry  e = null;
+            while ((e = p.next()) != null) {
+                if (e.cp2 != 0) {
+                    comp[compTotal++] = e;
+                } else {
+                    if (e.cp <= 0xffff) {
+                        if (e.bs <= 0xff)
+                            sb[e.bs] = e.cp;
+                        else
+                            db[e.bs] = e.cp;
+                        indexC2B[e.cp>>8] = 1;
+                    } else {
+                        supp[suppTotal++] = e;
+                    }
+                }
+            }
+            ByteArrayOutputStream baos = new ByteArrayOutputStream();
+            // c2b Index Table, always the first one
+            writeINDEXC2B(baos, indexC2B);
+            writeSINGLEBYTE(baos, sb);
+            writeDOUBLEBYTE1(baos, db, b1Min1, b1Max1, b2Min, b2Max);
+            writeDOUBLEBYTE2(baos, db, b1Min2, b1Max2, b2Min, b2Max);
+            writeSUPPLEMENT(baos, supp, suppTotal);
+            writeCOMPOSITE(baos, comp, compTotal);
+            writeSIZE(out, baos.size());
+            baos.writeTo(out);
+            out.close();
+        } catch (Exception x) {
+            x.printStackTrace();
+        }
+    }
+
+    static Comparator<Entry> comparatorCP =
+        new Comparator<Entry>() {
+            public int compare(Entry m1, Entry m2) {
+                return m1.cp - m2.cp;
+            }
+            public boolean equals(Object obj) {
+                return this == obj;
+            }
+    };
+
+    // tags of different charset mapping tables
+    private final static int MAP_SINGLEBYTE      = 0x1; // 0..256  : c
+    private final static int MAP_DOUBLEBYTE1     = 0x2; // min..max: c
+    private final static int MAP_DOUBLEBYTE2     = 0x3; // min..max: c [DB2]
+    private final static int MAP_SUPPLEMENT      = 0x5; //           db,c
+    private final static int MAP_SUPPLEMENT_C2B  = 0x6; //           c,db
+    private final static int MAP_COMPOSITE       = 0x7; //           db,base,cc
+    private final static int MAP_INDEXC2B        = 0x8; // index table of c->bb
+
+    private static final void writeShort(OutputStream out, int data)
+        throws IOException
+    {
+        out.write((data >>> 8) & 0xFF);
+        out.write((data      ) & 0xFF);
+    }
+
+    private static final void writeShortArray(OutputStream out,
+                                              int type,
+                                              int[] array,
+                                              int off,
+                                              int size)   // exclusive
+        throws IOException
+    {
+        writeShort(out, type);
+        writeShort(out, size);
+        for (int i = off; i < size; i++) {
+            writeShort(out, array[off+i]);
+        }
+    }
+
+    private static final void writeSIZE(OutputStream out, int data)
+        throws IOException
+    {
+        out.write((data >>> 24) & 0xFF);
+        out.write((data >>> 16) & 0xFF);
+        out.write((data >>>  8) & 0xFF);
+        out.write((data       ) & 0xFF);
+    }
+
+    private static void writeINDEXC2B(OutputStream out, int[] indexC2B)
+        throws IOException
+    {
+        writeShort(out, MAP_INDEXC2B);
+        writeShort(out, indexC2B.length);
+        int off = 0;
+        for (int i = 0; i < indexC2B.length; i++) {
+            if (indexC2B[i] != 0) {
+                writeShort(out, off);
+                off += 256;
+            } else {
+                writeShort(out, -1);
+            }
+        }
+    }
+
+    private static void writeSINGLEBYTE(OutputStream out, int[] sb)
+        throws IOException
+    {
+        writeShortArray(out, MAP_SINGLEBYTE, sb, 0, 256);
+    }
+
+    private static void writeDOUBLEBYTE(OutputStream out,
+                                        int type,
+                                        int[] db,
+                                        int b1Min, int b1Max,
+                                        int b2Min, int b2Max)
+        throws IOException
+    {
+        writeShort(out, type);
+        writeShort(out, b1Min);
+        writeShort(out, b1Max);
+        writeShort(out, b2Min);
+        writeShort(out, b2Max);
+        writeShort(out, (b1Max - b1Min + 1) * (b2Max - b2Min + 1));
+
+        for (int b1 = b1Min; b1 <= b1Max; b1++) {
+            for (int b2 = b2Min; b2 <= b2Max; b2++) {
+                writeShort(out, db[b1 * 256 + b2]);
+            }
+        }
+    }
+
+    private static void writeDOUBLEBYTE1(OutputStream out,
+                                        int[] db,
+                                        int b1Min, int b1Max,
+                                        int b2Min, int b2Max)
+        throws IOException
+    {
+        writeDOUBLEBYTE(out, MAP_DOUBLEBYTE1, db, b1Min, b1Max, b2Min, b2Max);
+    }
+
+    private static void writeDOUBLEBYTE2(OutputStream out,
+                                        int[] db,
+                                        int b1Min, int b1Max,
+                                        int b2Min, int b2Max)
+        throws IOException
+    {
+        writeDOUBLEBYTE(out, MAP_DOUBLEBYTE2, db, b1Min, b1Max, b2Min, b2Max);
+    }
+
+    // the c2b table is output as well
+    private static void writeSUPPLEMENT(OutputStream out, Entry[] supp, int size)
+        throws IOException
+    {
+        writeShort(out, MAP_SUPPLEMENT);
+        writeShort(out, size * 2);
+        // db at first half, cc at the low half
+        for (int i = 0; i < size; i++) {
+            writeShort(out, supp[i].bs);
+        }
+        for (int i = 0; i < size; i++) {
+            writeShort(out, supp[i].cp);
+        }
+
+        //c2b
+        writeShort(out, MAP_SUPPLEMENT_C2B);
+        writeShort(out, size*2);
+        Arrays.sort(supp, 0, size, comparatorCP);
+        for (int i = 0; i < size; i++) {
+            writeShort(out, supp[i].cp);
+        }
+        for (int i = 0; i < size; i++) {
+            writeShort(out, supp[i].bs);
+        }
+    }
+
+    private static void writeCOMPOSITE(OutputStream out, Entry[] comp, int size)
+        throws IOException
+    {
+        writeShort(out, MAP_COMPOSITE);
+        writeShort(out, size*3);
+        // comp is sorted already
+        for (int i = 0; i < size; i++) {
+            writeShort(out, (char)comp[i].bs);
+            writeShort(out, (char)comp[i].cp);
+            writeShort(out, (char)comp[i].cp2);
+        }
+    }
+}
--- a/jdk/make/tools/src/build/tools/charsetmapping/Main.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/make/tools/src/build/tools/charsetmapping/Main.java	Wed Jul 05 17:09:51 2017 +0200
@@ -32,23 +32,19 @@
 
     public static void main(String args[]) throws Exception {
         if (args.length < 3 ) {
-            System.out.println("Usage: java -jar charsetmapping.jar src dst mType...");
+            System.out.println("Usage: java -jar charsetmapping.jar src dst mType [copyrightSrc]");
             System.exit(1);
         }
         if ("sbcs".equals(args[2]) || "extsbcs".equals(args[2])) {
-            GenerateSBCS.genSBCS(args);
+            SBCS.genClass(args);
         } else if ("dbcs".equals(args[2])) {
-            GenerateDBCS.genDBCS(args);
-
+            DBCS.genClass(args);
         } else if ("euctw".equals(args[2])) {
-            if (args.length != 4) {
-                System.out.println("Usage: java -jar charsetmapping.jar srcDir dstDir euctw copyrightSrc");
-                System.exit(1);
-            }
-            GenerateEUC_TW.genEUC_TW(args);
+            EUC_TW.genClass(args);
         } else if ("sjis0213".equals(args[2])) {
-            GenerateMapping.genMapping(args);
+            JIS0213.genClass(args);
+        } else if ("hkscs".equals(args[2])) {
+            HKSCS.genClass(args);
         }
     }
-
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,269 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package build.tools.charsetmapping;
+
+import java.io.*;
+import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.Scanner;
+import java.util.Formatter;
+import java.util.regex.*;
+import java.nio.charset.*;
+import static build.tools.charsetmapping.Utils.*;
+
+public class SBCS {
+
+    public static void genClass(String args[]) throws Exception {
+
+        Scanner s = new Scanner(new File(args[0], args[2]));
+        while (s.hasNextLine()) {
+            String line = s.nextLine();
+            if (line.startsWith("#") || line.length() == 0)
+                continue;
+            String[] fields = line.split("\\s+");
+            if (fields.length < 5) {
+                System.err.println("Misconfiged sbcs line <" + line + ">?");
+                continue;
+            }
+            String clzName = fields[0];
+            String csName  = fields[1];
+            String hisName = fields[2];
+            boolean isASCII = Boolean.valueOf(fields[3]);
+            String pkgName  = fields[4];
+            System.out.printf("%s,%s,%s,%b,%s%n", clzName, csName, hisName, isASCII, pkgName);
+
+            genClass0(args[0], args[1], "SingleByte-X.java.template",
+                      clzName, csName, hisName, pkgName, isASCII);
+        }
+    }
+
+    private static void toString(char[] sb, int off, int end,
+                                 Formatter out, String closure,
+                                 boolean comment) {
+        while (off < end) {
+            out.format("        \"");
+            for (int j = 0; j < 8; j++) {
+                if (off == end)
+                    break;
+                char c = sb[off++];
+                switch (c) {
+                case '\b':
+                    out.format("\\b"); break;
+                case '\t':
+                    out.format("\\t"); break;
+                case '\n':
+                    out.format("\\n"); break;
+                case '\f':
+                    out.format("\\f"); break;
+                case '\r':
+                    out.format("\\r"); break;
+                case '\"':
+                    out.format("\\\""); break;
+                case '\'':
+                    out.format("\\'"); break;
+                case '\\':
+                    out.format("\\\\"); break;
+                default:
+                    out.format("\\u%04X", c & 0xffff);
+                }
+            }
+            if (comment) {
+                if (off == end)
+                    out.format("\" %s      // 0x%02x - 0x%02x%n",
+                               closure, off-8, off-1);
+                else
+                    out.format("\" +      // 0x%02x - 0x%02x%n",
+                               off-8, off-1);
+            } else {
+                if (off == end)
+                    out.format("\"%s%n", closure);
+                else
+                    out.format("\" +%n");
+            }
+        }
+    }
+
+    static Pattern sbmap = Pattern.compile("0x(\\p{XDigit}++)\\s++U\\+(\\p{XDigit}++)(\\s++#.*)?");
+
+    private static void genClass0(String srcDir, String dstDir,
+                                  String template,
+                                  String clzName,
+                                  String csName,
+                                  String hisName,
+                                  String pkgName,
+                                  boolean isASCII)
+        throws Exception
+    {
+        StringBuilder b2cSB = new StringBuilder();
+        StringBuilder b2cNRSB = new StringBuilder();
+        StringBuilder c2bNRSB = new StringBuilder();
+
+        char[] sb = new char[0x100];
+        char[] c2bIndex = new char[0x100];
+        int    c2bOff = 0;
+        Arrays.fill(sb, UNMAPPABLE_DECODING);
+        Arrays.fill(c2bIndex, UNMAPPABLE_DECODING);
+
+        // (1)read in .map to parse all b->c entries
+        FileInputStream in = new FileInputStream(
+                                 new File(srcDir, clzName + ".map"));
+        Parser p = new Parser(in, sbmap);
+        Entry  e = null;
+
+        while ((e = p.next()) != null) {
+            sb[e.bs] = (char)e.cp;
+            if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
+                c2bOff += 0x100;
+                c2bIndex[e.cp>>8] = 1;
+            }
+        }
+
+        Formatter fm = new Formatter(b2cSB);
+        fm.format("%n");
+
+        // vm -server shows cc[byte + 128] access is much faster than
+        // cc[byte&0xff] so we output the upper segment first
+        toString(sb, 0x80, 0x100, fm, "+", true);
+        toString(sb, 0x00, 0x80,  fm, ";", true);
+        fm.close();
+
+        // (2)now the .nr file which includes "b->c" non-roundtrip entries
+        File f = new File(srcDir, clzName + ".nr");
+        if (f.exists()) {
+            in = new FileInputStream(f);
+            fm = new Formatter(b2cNRSB);
+            p = new Parser(in, sbmap);
+            e = null;
+
+            fm.format("// remove non-roundtrip entries%n");
+            fm.format("        b2cMap = b2cTable.toCharArray();%n");
+            while ((e = p.next()) != null) {
+                fm.format("        b2cMap[%d] = UNMAPPABLE_DECODING;%n",
+                          (e.bs>=0x80)?(e.bs-0x80):(e.bs+0x80));
+            }
+            fm.close();
+        }
+
+        // (3)finally the .c2b file which includes c->b non-roundtrip entries
+        f = new File(srcDir, clzName + ".c2b");
+        if (f.exists()) {
+            in = new FileInputStream(f);
+            fm = new Formatter(c2bNRSB);
+            p = new Parser(in, sbmap);
+            e = null;
+            ArrayList<Entry> es = new ArrayList<Entry>();
+            while ((e = p.next()) != null) {
+                if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
+                    c2bOff += 0x100;
+                    c2bIndex[e.cp>>8] = 1;
+                }
+                es.add(e);
+            }
+            fm.format("// non-roundtrip c2b only entries%n");
+            if (es.size() < 100) {
+                fm.format("        c2bNR = new char[%d];%n", es.size() * 2);
+                int i = 0;
+                for (Entry entry: es) {
+                    fm.format("        c2bNR[%d] = 0x%x; c2bNR[%d] = 0x%x;%n",
+                              i++, entry.bs, i++, entry.cp);
+                }
+            } else {
+                char[] cc = new char[es.size() * 2];
+                int i = 0;
+                for (Entry entry: es) {
+                    cc[i++] = (char)entry.bs;
+                    cc[i++] = (char)entry.cp;
+                }
+                fm.format("        c2bNR = (%n");
+                toString(cc, 0, i,  fm, ").toCharArray();", false);
+            }
+            fm.close();
+        }
+
+        // (4)it's time to generate the source file
+        String b2c = b2cSB.toString();
+        String b2cNR = b2cNRSB.toString();
+        String c2bNR = c2bNRSB.toString();
+
+        Scanner s = new Scanner(new File(srcDir, template));
+        PrintStream out = new PrintStream(new FileOutputStream(
+                              new File(dstDir, clzName + ".java")));
+
+        while (s.hasNextLine()) {
+            String line = s.nextLine();
+            int i = line.indexOf("$");
+            if (i == -1) {
+                out.println(line);
+                continue;
+            }
+            if (line.indexOf("$PACKAGE$", i) != -1) {
+                line = line.replace("$PACKAGE$", pkgName);
+            }
+            if (line.indexOf("$NAME_CLZ$", i) != -1) {
+                line = line.replace("$NAME_CLZ$", clzName);
+            }
+            if (line.indexOf("$NAME_CS$", i) != -1) {
+                line = line.replace("$NAME_CS$", csName);
+            }
+            if (line.indexOf("$NAME_ALIASES$", i) != -1) {
+                if ("sun.nio.cs".equals(pkgName))
+                    line = line.replace("$NAME_ALIASES$",
+                                        "StandardCharsets.aliases_" + clzName);
+                else
+                    line = line.replace("$NAME_ALIASES$",
+                                        "ExtendedCharsets.aliasesFor(\"" + csName + "\")");
+            }
+            if (line.indexOf("$NAME_HIS$", i) != -1) {
+                line = line.replace("$NAME_HIS$", hisName);
+            }
+            if (line.indexOf("$CONTAINS$", i) != -1) {
+                if (isASCII)
+                    line = "        return ((cs.name().equals(\"US-ASCII\")) || (cs instanceof " + clzName + "));";
+                else
+                    line = "        return (cs instanceof " + clzName + ");";
+            }
+            if (line.indexOf("$B2CTABLE$") != -1) {
+                line = line.replace("$B2CTABLE$", b2c);
+            }
+            if (line.indexOf("$C2BLENGTH$") != -1) {
+                line = line.replace("$C2BLENGTH$", "0x" + Integer.toString(c2bOff, 16));
+            }
+            if (line.indexOf("$NONROUNDTRIP_B2C$") != -1) {
+                if (b2cNR.length() == 0)
+                    continue;
+                line = line.replace("$NONROUNDTRIP_B2C$", b2cNR);
+            }
+
+            if (line.indexOf("$NONROUNDTRIP_C2B$") != -1) {
+                if (c2bNR.length() == 0)
+                    continue;
+                line = line.replace("$NONROUNDTRIP_C2B$", c2bNR);
+            }
+            out.println(line);
+        }
+        out.close();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/charsetmapping/Utils.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,221 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package build.tools.charsetmapping;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.Scanner;
+import java.util.Formatter;
+
+public class Utils {
+
+    public final static char UNMAPPABLE_DECODING = '\uFFFD';
+    public final static int  UNMAPPABLE_ENCODING = 0xFFFD;
+
+    public static class Entry {
+        public int bs;   //byte sequence reps
+        public int cp;   //Unicode codepoint
+        public int cp2;  //CC of composite
+
+        public Entry () {}
+        public Entry (int bytes, int cp, int cp2) {
+            this.bs = bytes;
+            this.cp = cp;
+            this.cp2 = cp2;
+        }
+    }
+
+    public static class Parser {
+        static final Pattern basic = Pattern.compile("(?:0x)?(\\p{XDigit}++)\\s++(?:0x)?(\\p{XDigit}++)?\\s*+.*");
+        static final int gBS = 1;
+        static final int gCP = 2;
+        static final int gCP2 = 3;
+
+        BufferedReader reader;
+        boolean closed;
+        Matcher matcher;
+        int gbs, gcp, gcp2;
+
+        public Parser (InputStream in, Pattern p, int gbs, int gcp, int gcp2)
+            throws IOException
+        {
+            this.reader = new BufferedReader(new InputStreamReader(in));
+            this.closed = false;
+            this.matcher = p.matcher("");
+            this.gbs = gbs;
+            this.gcp = gcp;
+            this.gcp2 = gcp2;
+        }
+
+        public Parser (InputStream in, Pattern p) throws IOException {
+            this(in, p, gBS, gCP, gCP2);
+        }
+
+        public Parser (InputStream in) throws IOException {
+            this(in, basic, gBS, gCP, gCP2);
+        }
+
+        protected boolean isDirective(String line) {
+            return line.startsWith("#");
+        }
+
+        protected Entry parse(Matcher matcher, Entry mapping) {
+            mapping.bs = Integer.parseInt(matcher.group(gbs), 16);
+            mapping.cp = Integer.parseInt(matcher.group(gcp), 16);
+            if (gcp2 <= matcher.groupCount() &&
+                matcher.group(gcp2) != null)
+                mapping.cp2 = Integer.parseInt(matcher.group(gcp2), 16);
+            else
+                mapping.cp2 = 0;
+            return mapping;
+        }
+
+        public Entry next() throws Exception {
+            return next(new Entry());
+        }
+
+        // returns null and closes the input stream if the eof has beenreached.
+        public Entry next(Entry mapping) throws Exception {
+            if (closed)
+                return null;
+            String line;
+            while ((line = reader.readLine()) != null) {
+                if (isDirective(line))
+                    continue;
+                matcher.reset(line);
+                if (!matcher.lookingAt()) {
+                    //System.out.println("Missed: " + line);
+                    continue;
+                }
+                return parse(matcher, mapping);
+            }
+            reader.close();
+            closed = true;
+            return null;
+        }
+    }
+
+    public static class Output {
+        private Formatter out;
+
+        public Output(Formatter out) {
+            this.out = out;
+        }
+
+        public void close() {
+            out.close();
+        }
+
+        private void toChar(String fmt, char c) {
+            switch (c) {
+            case '\b':
+                out.format("\\b"); break;
+            case '\t':
+                out.format("\\t"); break;
+            case '\n':
+                out.format("\\n"); break;
+            case '\f':
+                out.format("\\f"); break;
+            case '\r':
+                out.format("\\r"); break;
+            case '\"':
+                out.format("\\\""); break;
+            case '\'':
+                out.format("\\'"); break;
+            case '\\':
+                out.format("\\\\"); break;
+            default:
+                out.format(fmt, c & 0xffff);
+            }
+        }
+
+        public void format(String fmt, Object ... args) {
+            out.format(fmt, args);
+        }
+
+        public void format(char[] cc, int off, int end, String closure) {
+            while (off < end) {
+                out.format("        \"");
+                for (int j = 0; j < 8; j++) {
+                    if (off == end)
+                        break;
+                    toChar("\\u%04X", cc[off++]);
+                }
+                if (off == end)
+                    out.format("\" %s%n", closure);
+                else
+                    out.format("\" + %n");
+            }
+        }
+
+        public void format(char[] cc, String closure) {
+            format(cc, 0, cc.length, closure);
+        }
+
+        public void format(char[] db, int b1, int b2Min, int b2Max,
+                           String closure)
+        {
+            char[] cc = new char[b2Max - b2Min + 1];
+            int off = 0;
+            for (int b2 = b2Min; b2 <= b2Max; b2++) {
+                cc[off++] = db[(b1 << 8) | b2];
+            }
+            format(cc, 0, cc.length, closure);
+        }
+
+        public void format(char[] date) {
+            int off = 0;
+            int end = date.length;
+            while (off < end) {
+                out.format("        ");
+                for (int j = 0; j < 8 && off < end; j++) {
+                    toChar("'\\u%04X',", date[off++]);
+                }
+                out.format("%n");
+            }
+        }
+    }
+
+    public static String getCopyright(File f) throws IOException {
+        Scanner s = new Scanner(f, "ISO-8859-1");
+        StringBuilder sb = new StringBuilder();
+        while (s.hasNextLine()) {
+            String ln = s.nextLine();
+            sb.append(ln + "\n");
+            // assume we have the copyright as the first comment
+            if (ln.matches("^\\s\\*\\/$"))
+                break;
+        }
+        s.close();
+        return sb.toString();
+    }
+}
--- a/jdk/make/tools/src/build/tools/javazic/RuleDay.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/make/tools/src/build/tools/javazic/RuleDay.java	Wed Jul 05 17:09:51 2017 +0200
@@ -139,7 +139,7 @@
         if (isLast()) {
             return -1;
         }
-        return getDay();
+        return isEarlier() ? -getDay() : getDay();
     }
 
     /**
@@ -147,13 +147,10 @@
      * @return the SimpleTimeZone day-of-week rule value
      */
     int getDayOfWeekForSimpleTimeZoneInt() {
-        if (!isLater() && !isEarlier() && !isLast()) {
-            return 0;
-        }
-        if (isLater()) {
+        if (isEarlier() || isLater()) {
             return -getDayOfWeekNum();
         }
-        return getDayOfWeekNum();
+        return isLast() ? getDayOfWeekNum() : 0;
     }
 
     /**
--- a/jdk/src/share/classes/java/beans/EventHandler.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/beans/EventHandler.java	Wed Jul 05 17:09:51 2017 +0200
@@ -32,7 +32,6 @@
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 
-import java.util.EventObject;
 import sun.reflect.misc.MethodUtil;
 
 /**
@@ -279,9 +278,9 @@
 public class EventHandler implements InvocationHandler {
     private Object target;
     private String action;
-    private String eventPropertyName;
-    private String listenerMethodName;
-    private AccessControlContext acc;
+    private final String eventPropertyName;
+    private final String listenerMethodName;
+    private final AccessControlContext acc = AccessController.getContext();
 
     /**
      * Creates a new <code>EventHandler</code> object;
@@ -310,7 +309,6 @@
      */
     @ConstructorProperties({"target", "action", "eventPropertyName", "listenerMethodName"})
     public EventHandler(Object target, String action, String eventPropertyName, String listenerMethodName) {
-        this.acc = AccessController.getContext();
         this.target = target;
         this.action = action;
         if (target == null) {
@@ -422,7 +420,11 @@
      * @see EventHandler
      */
     public Object invoke(final Object proxy, final Method method, final Object[] arguments) {
-        return AccessController.doPrivileged(new PrivilegedAction() {
+        AccessControlContext acc = this.acc;
+        if ((acc == null) && (System.getSecurityManager() != null)) {
+            throw new SecurityException("AccessControlContext is not set");
+        }
+        return AccessController.doPrivileged(new PrivilegedAction<Object>() {
             public Object run() {
                 return invokeInternal(proxy, method, arguments);
             }
@@ -482,7 +484,10 @@
                 throw new RuntimeException(ex);
             }
             catch (InvocationTargetException ex) {
-                throw new RuntimeException(ex.getTargetException());
+                Throwable th = ex.getTargetException();
+                throw (th instanceof RuntimeException)
+                        ? (RuntimeException) th
+                        : new RuntimeException(th);
             }
         }
         return null;
--- a/jdk/src/share/classes/java/beans/Expression.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/beans/Expression.java	Wed Jul 05 17:09:51 2017 +0200
@@ -99,6 +99,29 @@
     }
 
     /**
+     * {@inheritDoc}
+     * <p>
+     * If the invoked method completes normally,
+     * the value it returns is copied in the {@code value} property.
+     * Note that the {@code value} property is set to {@code null},
+     * if the return type of the underlying method is {@code void}.
+     *
+     * @throws NullPointerException if the value of the {@code target} or
+     *                              {@code methodName} property is {@code null}
+     * @throws NoSuchMethodException if a matching method is not found
+     * @throws SecurityException if a security manager exists and
+     *                           it denies the method invocation
+     * @throws Exception that is thrown by the invoked method
+     *
+     * @see java.lang.reflect.Method
+     * @since 1.7
+     */
+    @Override
+    public void execute() throws Exception {
+        setValue(invoke());
+    }
+
+    /**
      * If the value property of this instance is not already set,
      * this method dynamically finds the method with the specified
      * methodName on this target with these arguments and calls it.
--- a/jdk/src/share/classes/java/beans/Statement.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/beans/Statement.java	Wed Jul 05 17:09:51 2017 +0200
@@ -29,6 +29,10 @@
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.security.AccessControlContext;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
 
 import com.sun.beans.finder.ClassFinder;
 import com.sun.beans.finder.ConstructorFinder;
@@ -63,9 +67,10 @@
         }
     };
 
-    Object target;
-    String methodName;
-    Object[] arguments;
+    private final AccessControlContext acc = AccessController.getContext();
+    private final Object target;
+    private final String methodName;
+    private final Object[] arguments;
     ClassLoader loader;
 
     /**
@@ -127,8 +132,8 @@
     }
 
     /**
-     * The execute method finds a method whose name is the same
-     * as the methodName property, and invokes the method on
+     * The {@code execute} method finds a method whose name is the same
+     * as the {@code methodName} property, and invokes the method on
      * the target.
      *
      * When the target's class defines many methods with the given name
@@ -136,7 +141,7 @@
      * the algorithm specified in the Java Language Specification
      * (15.11). The dynamic class of the target and arguments are used
      * in place of the compile-time type information and, like the
-     * <code>java.lang.reflect.Method</code> class itself, conversion between
+     * {@link java.lang.reflect.Method} class itself, conversion between
      * primitive values and their associated wrapper classes is handled
      * internally.
      * <p>
@@ -147,19 +152,48 @@
      * <li>
      * The reserved method name "new" may be used to call a class's constructor
      * as if all classes defined static "new" methods. Constructor invocations
-     * are typically considered <code>Expression</code>s rather than <code>Statement</code>s
+     * are typically considered {@code Expression}s rather than {@code Statement}s
      * as they return a value.
      * <li>
-     * The method names "get" and "set" defined in the <code>java.util.List</code>
+     * The method names "get" and "set" defined in the {@link java.util.List}
      * interface may also be applied to array instances, mapping to
-     * the static methods of the same name in the <code>Array</code> class.
+     * the static methods of the same name in the {@code Array} class.
      * </ul>
+     *
+     * @throws NullPointerException if the value of the {@code target} or
+     *                              {@code methodName} property is {@code null}
+     * @throws NoSuchMethodException if a matching method is not found
+     * @throws SecurityException if a security manager exists and
+     *                           it denies the method invocation
+     * @throws Exception that is thrown by the invoked method
+     *
+     * @see java.lang.reflect.Method
      */
     public void execute() throws Exception {
         invoke();
     }
 
     Object invoke() throws Exception {
+        AccessControlContext acc = this.acc;
+        if ((acc == null) && (System.getSecurityManager() != null)) {
+            throw new SecurityException("AccessControlContext is not set");
+        }
+        try {
+            return AccessController.doPrivileged(
+                    new PrivilegedExceptionAction<Object>() {
+                        public Object run() throws Exception {
+                            return invokeInternal();
+                        }
+                    },
+                    acc
+            );
+        }
+        catch (PrivilegedActionException exception) {
+            throw exception.getException();
+        }
+    }
+
+    private Object invokeInternal() throws Exception {
         Object target = getTarget();
         String methodName = getMethodName();
 
--- a/jdk/src/share/classes/java/io/File.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/io/File.java	Wed Jul 05 17:09:51 2017 +0200
@@ -2064,11 +2064,12 @@
     private synchronized void readObject(java.io.ObjectInputStream s)
          throws IOException, ClassNotFoundException
     {
-        s.defaultReadObject();
+        ObjectInputStream.GetField fields = s.readFields();
+        String pathField = (String)fields.get("path", null);
         char sep = s.readChar(); // read the previous separator char
         if (sep != separatorChar)
-            this.path = this.path.replace(sep, separatorChar);
-        this.path = fs.normalize(this.path);
+            pathField = pathField.replace(sep, separatorChar);
+        this.path = fs.normalize(pathField);
         this.prefixLength = fs.prefixLength(this.path);
     }
 
--- a/jdk/src/share/classes/java/io/FilterInputStream.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/io/FilterInputStream.java	Wed Jul 05 17:09:51 2017 +0200
@@ -134,9 +134,18 @@
     }
 
     /**
-     * {@inheritDoc}
+     * Skips over and discards <code>n</code> bytes of data from the
+     * input stream. The <code>skip</code> method may, for a variety of
+     * reasons, end up skipping over some smaller number of bytes,
+     * possibly <code>0</code>. The actual number of bytes skipped is
+     * returned.
      * <p>
      * This method simply performs <code>in.skip(n)</code>.
+     *
+     * @param      n   the number of bytes to be skipped.
+     * @return     the actual number of bytes skipped.
+     * @exception  IOException  if the stream does not support seek,
+     *                          or if some other I/O error occurs.
      */
     public long skip(long n) throws IOException {
         return in.skip(n);
--- a/jdk/src/share/classes/java/lang/ProcessBuilder.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/lang/ProcessBuilder.java	Wed Jul 05 17:09:51 2017 +0200
@@ -994,6 +994,8 @@
         // Must convert to array first -- a malicious user-supplied
         // list might try to circumvent the security check.
         String[] cmdarray = command.toArray(new String[command.size()]);
+        cmdarray = cmdarray.clone();
+
         for (String arg : cmdarray)
             if (arg == null)
                 throw new NullPointerException();
--- a/jdk/src/share/classes/java/lang/ThreadGroup.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/lang/ThreadGroup.java	Wed Jul 05 17:09:51 2017 +0200
@@ -55,7 +55,7 @@
  */
 public
 class ThreadGroup implements Thread.UncaughtExceptionHandler {
-    ThreadGroup parent;
+    private final ThreadGroup parent;
     String name;
     int maxPriority;
     boolean destroyed;
@@ -76,6 +76,7 @@
     private ThreadGroup() {     // called from C code
         this.name = "system";
         this.maxPriority = Thread.MAX_PRIORITY;
+        this.parent = null;
     }
 
     /**
@@ -113,10 +114,10 @@
      * @since   JDK1.0
      */
     public ThreadGroup(ThreadGroup parent, String name) {
-        if (parent == null) {
-            throw new NullPointerException();
-        }
-        parent.checkAccess();
+        this(checkParentAccess(parent), parent, name);
+    }
+
+    private ThreadGroup(Void unused, ThreadGroup parent, String name) {
         this.name = name;
         this.maxPriority = parent.maxPriority;
         this.daemon = parent.daemon;
@@ -125,6 +126,16 @@
         parent.add(this);
     }
 
+    /*
+     * @throws  NullPointerException  if the parent argument is {@code null}
+     * @throws  SecurityException     if the current thread cannot create a
+     *                                thread in the specified thread group.
+     */
+    private static Void checkParentAccess(ThreadGroup parent) {
+        parent.checkAccess();
+        return null;
+    }
+
     /**
      * Returns the name of this thread group.
      *
--- a/jdk/src/share/classes/java/net/DatagramSocket.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/net/DatagramSocket.java	Wed Jul 05 17:09:51 2017 +0200
@@ -118,6 +118,7 @@
         if (address == null) {
             throw new IllegalArgumentException("connect: null address");
         }
+        checkAddress (address, "connect");
         if (isClosed())
             return;
         SecurityManager security = System.getSecurityManager();
@@ -363,13 +364,15 @@
         InetSocketAddress epoint = (InetSocketAddress) addr;
         if (epoint.isUnresolved())
             throw new SocketException("Unresolved address");
+        InetAddress iaddr = epoint.getAddress();
+        int port = epoint.getPort();
+        checkAddress(iaddr, "bind");
         SecurityManager sec = System.getSecurityManager();
         if (sec != null) {
-            sec.checkListen(epoint.getPort());
+            sec.checkListen(port);
         }
         try {
-            getImpl().bind(epoint.getPort(),
-                           epoint.getAddress());
+            getImpl().bind(port, iaddr);
         } catch (SocketException e) {
             getImpl().close();
             throw e;
@@ -377,6 +380,15 @@
         bound = true;
     }
 
+    void checkAddress (InetAddress addr, String op) {
+        if (addr == null) {
+            return;
+        }
+        if (!(addr instanceof Inet4Address || addr instanceof Inet6Address)) {
+            throw new IllegalArgumentException(op + ": invalid address type");
+        }
+    }
+
     /**
      * Connects the socket to a remote address for this socket. When a
      * socket is connected to a remote address, packets may only be
@@ -603,6 +615,7 @@
         synchronized (p) {
             if (isClosed())
                 throw new SocketException("Socket is closed");
+            checkAddress (p.getAddress(), "send");
             if (connectState == ST_NOT_CONNECTED) {
                 // check the address is ok wiht the security manager on every send.
                 SecurityManager security = System.getSecurityManager();
--- a/jdk/src/share/classes/java/net/InetAddress.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/net/InetAddress.java	Wed Jul 05 17:09:51 2017 +0200
@@ -35,6 +35,7 @@
 import java.security.AccessController;
 import java.io.ObjectStreamException;
 import java.io.IOException;
+import java.io.ObjectInputStream;
 import sun.security.action.*;
 import sun.net.InetAddressCachePolicy;
 import sun.net.util.IPAddressUtil;
@@ -1472,6 +1473,23 @@
 
         return impl;
     }
+
+    private void readObjectNoData (ObjectInputStream s) throws
+                         IOException, ClassNotFoundException {
+        if (getClass().getClassLoader() != null) {
+            throw new SecurityException ("invalid address type");
+        }
+    }
+
+    private void readObject (ObjectInputStream s) throws
+                         IOException, ClassNotFoundException {
+        s.defaultReadObject ();
+        if (getClass().getClassLoader() != null) {
+            hostName = null;
+            address = 0;
+            throw new SecurityException ("invalid address type");
+        }
+    }
 }
 
 /*
--- a/jdk/src/share/classes/java/net/MulticastSocket.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/net/MulticastSocket.java	Wed Jul 05 17:09:51 2017 +0200
@@ -289,6 +289,7 @@
             throw new SocketException("Socket is closed");
         }
 
+        checkAddress(mcastaddr, "joinGroup");
         SecurityManager security = System.getSecurityManager();
         if (security != null) {
             security.checkMulticast(mcastaddr);
@@ -323,6 +324,7 @@
             throw new SocketException("Socket is closed");
         }
 
+        checkAddress(mcastaddr, "leaveGroup");
         SecurityManager security = System.getSecurityManager();
         if (security != null) {
             security.checkMulticast(mcastaddr);
@@ -370,6 +372,7 @@
         if (oldImpl)
             throw new UnsupportedOperationException();
 
+        checkAddress(((InetSocketAddress)mcastaddr).getAddress(), "joinGroup");
         SecurityManager security = System.getSecurityManager();
         if (security != null) {
             security.checkMulticast(((InetSocketAddress)mcastaddr).getAddress());
@@ -416,6 +419,7 @@
         if (oldImpl)
             throw new UnsupportedOperationException();
 
+        checkAddress(((InetSocketAddress)mcastaddr).getAddress(), "leaveGroup");
         SecurityManager security = System.getSecurityManager();
         if (security != null) {
             security.checkMulticast(((InetSocketAddress)mcastaddr).getAddress());
@@ -441,6 +445,7 @@
         if (isClosed()) {
             throw new SocketException("Socket is closed");
         }
+        checkAddress(inf, "setInterface");
         synchronized (infLock) {
             getImpl().setOption(SocketOptions.IP_MULTICAST_IF, inf);
             infAddress = inf;
@@ -632,6 +637,7 @@
         throws IOException {
             if (isClosed())
                 throw new SocketException("Socket is closed");
+            checkAddress(p.getAddress(), "send");
             synchronized(ttlLock) {
                 synchronized(p) {
                     if (connectState == ST_NOT_CONNECTED) {
--- a/jdk/src/share/classes/java/net/NetworkInterface.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/net/NetworkInterface.java	Wed Jul 05 17:09:51 2017 +0200
@@ -290,8 +290,12 @@
      *          If the specified address is <tt>null</tt>.
      */
     public static NetworkInterface getByInetAddress(InetAddress addr) throws SocketException {
-        if (addr == null)
+        if (addr == null) {
             throw new NullPointerException();
+        }
+        if (!(addr instanceof Inet4Address || addr instanceof Inet6Address)) {
+            throw new IllegalArgumentException ("invalid address type");
+        }
         return getByInetAddress0(addr);
     }
 
--- a/jdk/src/share/classes/java/net/Socket.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/net/Socket.java	Wed Jul 05 17:09:51 2017 +0200
@@ -122,6 +122,9 @@
         if (p.type() == Proxy.Type.SOCKS) {
             SecurityManager security = System.getSecurityManager();
             InetSocketAddress epoint = (InetSocketAddress) p.address();
+            if (epoint.getAddress() != null) {
+                checkAddress (epoint.getAddress(), "Socket");
+            }
             if (security != null) {
                 if (epoint.isUnresolved())
                     security.checkConnect(epoint.getHostName(),
@@ -558,15 +561,16 @@
             throw new IllegalArgumentException("Unsupported address type");
 
         InetSocketAddress epoint = (InetSocketAddress) endpoint;
+        InetAddress addr = epoint.getAddress ();
+        int port = epoint.getPort();
+        checkAddress(addr, "connect");
 
         SecurityManager security = System.getSecurityManager();
         if (security != null) {
             if (epoint.isUnresolved())
-                security.checkConnect(epoint.getHostName(),
-                                      epoint.getPort());
+                security.checkConnect(epoint.getHostName(), port);
             else
-                security.checkConnect(epoint.getAddress().getHostAddress(),
-                                      epoint.getPort());
+                security.checkConnect(addr.getHostAddress(), port);
         }
         if (!created)
             createImpl(true);
@@ -574,10 +578,9 @@
             impl.connect(epoint, timeout);
         else if (timeout == 0) {
             if (epoint.isUnresolved())
-                impl.connect(epoint.getAddress().getHostName(),
-                             epoint.getPort());
+                impl.connect(addr.getHostName(), port);
             else
-                impl.connect(epoint.getAddress(), epoint.getPort());
+                impl.connect(addr, port);
         } else
             throw new UnsupportedOperationException("SocketImpl.connect(addr, timeout)");
         connected = true;
@@ -614,14 +617,25 @@
         InetSocketAddress epoint = (InetSocketAddress) bindpoint;
         if (epoint != null && epoint.isUnresolved())
             throw new SocketException("Unresolved address");
-        if (bindpoint == null)
-            getImpl().bind(InetAddress.anyLocalAddress(), 0);
-        else
-            getImpl().bind(epoint.getAddress(),
-                           epoint.getPort());
+        if (epoint == null) {
+            epoint = new InetSocketAddress(0);
+        }
+        InetAddress addr = epoint.getAddress();
+        int port = epoint.getPort();
+        checkAddress (addr, "bind");
+        getImpl().bind (addr, port);
         bound = true;
     }
 
+    private void checkAddress (InetAddress addr, String op) {
+        if (addr == null) {
+            return;
+        }
+        if (!(addr instanceof Inet4Address || addr instanceof Inet6Address)) {
+            throw new IllegalArgumentException(op + ": invalid address type");
+        }
+    }
+
     /**
      * set the flags after an accept() call.
      */
--- a/jdk/src/share/classes/java/net/SocketInputStream.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/net/SocketInputStream.java	Wed Jul 05 17:09:51 2017 +0200
@@ -118,6 +118,10 @@
      * @exception IOException If an I/O error has occurred.
      */
     public int read(byte b[], int off, int length) throws IOException {
+        return read(b, off, length, impl.getTimeout());
+    }
+
+    int read(byte b[], int off, int length, int timeout) throws IOException {
         int n;
 
         // EOF already encountered
@@ -143,7 +147,7 @@
         // acquire file descriptor and do the read
         FileDescriptor fd = impl.acquireFD();
         try {
-            n = socketRead0(fd, b, off, length, impl.getTimeout());
+            n = socketRead0(fd, b, off, length, timeout);
             if (n > 0) {
                 return n;
             }
@@ -161,7 +165,7 @@
             impl.setConnectionResetPending();
             impl.acquireFD();
             try {
-                n = socketRead0(fd, b, off, length, impl.getTimeout());
+                n = socketRead0(fd, b, off, length, timeout);
                 if (n > 0) {
                     return n;
                 }
--- a/jdk/src/share/classes/java/net/SocksSocketImpl.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/net/SocksSocketImpl.java	Wed Jul 05 17:09:51 2017 +0200
@@ -98,11 +98,31 @@
         super.connect(new InetSocketAddress(host, port), timeout);
     }
 
+    private static int remainingMillis(long deadlineMillis) throws IOException {
+        if (deadlineMillis == 0L)
+            return 0;
+
+        final long remaining = deadlineMillis - System.currentTimeMillis();
+        if (remaining > 0)
+            return (int) remaining;
+
+        throw new SocketTimeoutException();
+    }
+
     private int readSocksReply(InputStream in, byte[] data) throws IOException {
+        return readSocksReply(in, data, 0L);
+    }
+
+    private int readSocksReply(InputStream in, byte[] data, long deadlineMillis) throws IOException {
         int len = data.length;
         int received = 0;
         for (int attempts = 0; received < len && attempts < 3; attempts++) {
-            int count = in.read(data, received, len - received);
+            int count;
+            try {
+                count = ((SocketInputStream)in).read(data, received, len - received, remainingMillis(deadlineMillis));
+            } catch (SocketTimeoutException e) {
+                throw new SocketTimeoutException("Connect timed out");
+            }
             if (count < 0)
                 throw new SocketException("Malformed reply from SOCKS server");
             received += count;
@@ -115,6 +135,12 @@
      */
     private boolean authenticate(byte method, InputStream in,
                                  BufferedOutputStream out) throws IOException {
+        return authenticate(method, in, out, 0L);
+    }
+
+    private boolean authenticate(byte method, InputStream in,
+                                 BufferedOutputStream out,
+                                 long deadlineMillis) throws IOException {
         // No Authentication required. We're done then!
         if (method == NO_AUTH)
             return true;
@@ -162,7 +188,7 @@
                 out.write(0);
             out.flush();
             byte[] data = new byte[2];
-            int i = readSocksReply(in, data);
+            int i = readSocksReply(in, data, deadlineMillis);
             if (i != 2 || data[1] != 0) {
                 /* RFC 1929 specifies that the connection MUST be closed if
                    authentication fails */
@@ -201,18 +227,18 @@
 //                      out.write(outToken);
 //                      out.flush();
 //                      data = new byte[2];
-//                      i = readSocksReply(in, data);
+//                      i = readSocksReply(in, data, deadlineMillis);
 //                      if (i != 2 || data[1] == 0xff) {
 //                          in.close();
 //                          out.close();
 //                          return false;
 //                      }
-//                      i = readSocksReply(in, data);
+//                      i = readSocksReply(in, data, deadlineMillis);
 //                      int len = 0;
 //                      len = ((int)data[0] & 0xff) << 8;
 //                      len += data[1];
 //                      data = new byte[len];
-//                      i = readSocksReply(in, data);
+//                      i = readSocksReply(in, data, deadlineMillis);
 //                      if (i == len)
 //                          return true;
 //                      in.close();
@@ -231,7 +257,8 @@
     }
 
     private void connectV4(InputStream in, OutputStream out,
-                           InetSocketAddress endpoint) throws IOException {
+                           InetSocketAddress endpoint,
+                           long deadlineMillis) throws IOException {
         if (!(endpoint.getAddress() instanceof Inet4Address)) {
             throw new SocketException("SOCKS V4 requires IPv4 only addresses");
         }
@@ -249,7 +276,7 @@
         out.write(0);
         out.flush();
         byte[] data = new byte[8];
-        int n = readSocksReply(in, data);
+        int n = readSocksReply(in, data, deadlineMillis);
         if (n != 8)
             throw new SocketException("Reply from SOCKS server has bad length: " + n);
         if (data[0] != 0 && data[0] != 4)
@@ -296,6 +323,15 @@
      */
     @Override
     protected void connect(SocketAddress endpoint, int timeout) throws IOException {
+        final long deadlineMillis;
+
+        if (timeout == 0) {
+            deadlineMillis = 0L;
+        } else {
+            long finish = System.currentTimeMillis() + timeout;
+            deadlineMillis = finish < 0 ? Long.MAX_VALUE : finish;
+        }
+
         SecurityManager security = System.getSecurityManager();
         if (endpoint == null || !(endpoint instanceof InetSocketAddress))
             throw new IllegalArgumentException("Unsupported address type");
@@ -322,7 +358,7 @@
                 /*
                  * No default proxySelector --> direct connection
                  */
-                super.connect(epoint, timeout);
+                super.connect(epoint, remainingMillis(deadlineMillis));
                 return;
             }
             URI uri;
@@ -345,13 +381,13 @@
             java.util.Iterator<Proxy> iProxy = null;
             iProxy = sel.select(uri).iterator();
             if (iProxy == null || !(iProxy.hasNext())) {
-                super.connect(epoint, timeout);
+                super.connect(epoint, remainingMillis(deadlineMillis));
                 return;
             }
             while (iProxy.hasNext()) {
                 p = iProxy.next();
                 if (p == null || p == Proxy.NO_PROXY) {
-                    super.connect(epoint, timeout);
+                    super.connect(epoint, remainingMillis(deadlineMillis));
                     return;
                 }
                 if (p.type() != Proxy.Type.SOCKS)
@@ -364,7 +400,7 @@
 
                 // Connects to the SOCKS server
                 try {
-                    privilegedConnect(server, serverPort, timeout);
+                    privilegedConnect(server, serverPort, remainingMillis(deadlineMillis));
                     // Worked, let's get outta here
                     break;
                 } catch (IOException e) {
@@ -388,7 +424,7 @@
         } else {
             // Connects to the SOCKS server
             try {
-                privilegedConnect(server, serverPort, timeout);
+                privilegedConnect(server, serverPort, remainingMillis(deadlineMillis));
             } catch (IOException e) {
                 throw new SocketException(e.getMessage());
             }
@@ -403,7 +439,7 @@
             // DOMAIN type of addresses (unresolved addresses here)
             if (epoint.isUnresolved())
                 throw new UnknownHostException(epoint.toString());
-            connectV4(in, out, epoint);
+            connectV4(in, out, epoint, deadlineMillis);
             return;
         }
 
@@ -414,7 +450,7 @@
         out.write(USER_PASSW);
         out.flush();
         byte[] data = new byte[2];
-        int i = readSocksReply(in, data);
+        int i = readSocksReply(in, data, deadlineMillis);
         if (i != 2 || ((int)data[0]) != PROTO_VERS) {
             // Maybe it's not a V5 sever after all
             // Let's try V4 before we give up
@@ -422,12 +458,12 @@
             // DOMAIN type of addresses (unresolved addresses here)
             if (epoint.isUnresolved())
                 throw new UnknownHostException(epoint.toString());
-            connectV4(in, out, epoint);
+            connectV4(in, out, epoint, deadlineMillis);
             return;
         }
         if (((int)data[1]) == NO_METHODS)
             throw new SocketException("SOCKS : No acceptable methods");
-        if (!authenticate(data[1], in, out)) {
+        if (!authenticate(data[1], in, out, deadlineMillis)) {
             throw new SocketException("SOCKS : authentication failed");
         }
         out.write(PROTO_VERS);
@@ -457,7 +493,7 @@
         }
         out.flush();
         data = new byte[4];
-        i = readSocksReply(in, data);
+        i = readSocksReply(in, data, deadlineMillis);
         if (i != 4)
             throw new SocketException("Reply from SOCKS server has bad length");
         SocketException ex = null;
@@ -469,33 +505,33 @@
             switch(data[3]) {
             case IPV4:
                 addr = new byte[4];
-                i = readSocksReply(in, addr);
+                i = readSocksReply(in, addr, deadlineMillis);
                 if (i != 4)
                     throw new SocketException("Reply from SOCKS server badly formatted");
                 data = new byte[2];
-                i = readSocksReply(in, data);
+                i = readSocksReply(in, data, deadlineMillis);
                 if (i != 2)
                     throw new SocketException("Reply from SOCKS server badly formatted");
                 break;
             case DOMAIN_NAME:
                 len = data[1];
                 byte[] host = new byte[len];
-                i = readSocksReply(in, host);
+                i = readSocksReply(in, host, deadlineMillis);
                 if (i != len)
                     throw new SocketException("Reply from SOCKS server badly formatted");
                 data = new byte[2];
-                i = readSocksReply(in, data);
+                i = readSocksReply(in, data, deadlineMillis);
                 if (i != 2)
                     throw new SocketException("Reply from SOCKS server badly formatted");
                 break;
             case IPV6:
                 len = data[1];
                 addr = new byte[len];
-                i = readSocksReply(in, addr);
+                i = readSocksReply(in, addr, deadlineMillis);
                 if (i != len)
                     throw new SocketException("Reply from SOCKS server badly formatted");
                 data = new byte[2];
-                i = readSocksReply(in, data);
+                i = readSocksReply(in, data, deadlineMillis);
                 if (i != 2)
                     throw new SocketException("Reply from SOCKS server badly formatted");
                 break;
--- a/jdk/src/share/classes/java/security/Policy.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/security/Policy.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,19 +28,17 @@
 
 import java.io.*;
 import java.lang.RuntimePermission;
+import java.lang.reflect.*;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Enumeration;
 import java.util.Hashtable;
-import java.util.Vector;
+import java.util.PropertyPermission;
 import java.util.StringTokenizer;
-import java.util.PropertyPermission;
-
-import java.lang.reflect.*;
-
+import java.util.Vector;
 import java.util.WeakHashMap;
+import sun.security.jca.GetInstance;
 import sun.security.util.Debug;
-import sun.security.jca.GetInstance;
 import sun.security.util.SecurityConstants;
 
 
@@ -113,8 +111,8 @@
 
     private static final Debug debug = Debug.getInstance("policy");
 
-    // Cache mapping  ProtectionDomain to PermissionCollection
-    private WeakHashMap<ProtectionDomain, PermissionCollection> pdMapping;
+    // Cache mapping ProtectionDomain.Key to PermissionCollection
+    private WeakHashMap<ProtectionDomain.Key, PermissionCollection> pdMapping;
 
     /** package private for AccessControlContext */
     static boolean isSet()
@@ -307,7 +305,7 @@
         synchronized (p) {
             if (p.pdMapping == null) {
                 p.pdMapping =
-                    new WeakHashMap<ProtectionDomain, PermissionCollection>();
+                    new WeakHashMap<ProtectionDomain.Key, PermissionCollection>();
            }
         }
 
@@ -323,7 +321,7 @@
 
             synchronized (p.pdMapping) {
                 // cache of pd to permissions
-                p.pdMapping.put(policyDomain, policyPerms);
+                p.pdMapping.put(policyDomain.key, policyPerms);
             }
         }
         return;
@@ -638,7 +636,7 @@
         }
 
         synchronized (pdMapping) {
-            pc = pdMapping.get(domain);
+            pc = pdMapping.get(domain.key);
         }
 
         if (pc != null) {
@@ -697,7 +695,7 @@
         }
 
         synchronized (pdMapping) {
-            pc = pdMapping.get(domain);
+            pc = pdMapping.get(domain.key);
         }
 
         if (pc != null) {
@@ -711,7 +709,7 @@
 
         synchronized (pdMapping) {
             // cache it
-            pdMapping.put(domain, pc);
+            pdMapping.put(domain.key, pc);
         }
 
         return pc.implies(permission);
@@ -747,21 +745,25 @@
             this.params = params;
         }
 
-        public String getType() { return type; }
+        @Override public String getType() { return type; }
+
+        @Override public Policy.Parameters getParameters() { return params; }
 
-        public Policy.Parameters getParameters() { return params; }
+        @Override public Provider getProvider() { return p; }
 
-        public Provider getProvider() { return p; }
-
+        @Override
         public PermissionCollection getPermissions(CodeSource codesource) {
             return spi.engineGetPermissions(codesource);
         }
+        @Override
         public PermissionCollection getPermissions(ProtectionDomain domain) {
             return spi.engineGetPermissions(domain);
         }
+        @Override
         public boolean implies(ProtectionDomain domain, Permission perm) {
             return spi.engineImplies(domain, perm);
         }
+        @Override
         public void refresh() {
             spi.engineRefresh();
         }
@@ -803,7 +805,7 @@
          * @exception SecurityException - if this PermissionCollection object
          *                                has been marked readonly
          */
-        public void add(Permission permission) {
+        @Override public void add(Permission permission) {
             perms.add(permission);
         }
 
@@ -816,7 +818,7 @@
          * @return true if "permission" is implied by the  permissions in
          * the collection, false if not.
          */
-        public boolean implies(Permission permission) {
+        @Override public boolean implies(Permission permission) {
             return perms.implies(permission);
         }
 
@@ -826,7 +828,7 @@
          *
          * @return an enumeration of all the Permissions.
          */
-        public Enumeration<Permission> elements() {
+        @Override public Enumeration<Permission> elements() {
             return perms.elements();
         }
     }
--- a/jdk/src/share/classes/java/security/ProtectionDomain.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/security/ProtectionDomain.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,9 +25,15 @@
 
 package java.security;
 
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Enumeration;
 import java.util.List;
-import java.util.ArrayList;
+import java.util.Map;
+import java.util.WeakHashMap;
+import sun.misc.JavaSecurityProtectionDomainAccess;
+import static sun.misc.JavaSecurityProtectionDomainAccess.ProtectionDomainCache;
+import sun.misc.SharedSecrets;
 import sun.security.util.Debug;
 import sun.security.util.SecurityConstants;
 
@@ -72,6 +78,11 @@
        or dynamic (via a policy refresh) */
     private boolean staticPermissions;
 
+    /*
+     * An object used as a key when the ProtectionDomain is stored in a Map.
+     */
+    final Key key = new Key();
+
     private static final Debug debug = Debug.getInstance("domain");
 
     /**
@@ -238,7 +249,7 @@
     /**
      * Convert a ProtectionDomain to a String.
      */
-    public String toString() {
+    @Override public String toString() {
         String pals = "<no principals>";
         if (principals != null && principals.length > 0) {
             StringBuilder palBuf = new StringBuilder("(principals ");
@@ -396,4 +407,29 @@
 
         return mergedPerms;
     }
+
+    /**
+     * Used for storing ProtectionDomains as keys in a Map.
+     */
+    final class Key {}
+
+    static {
+        SharedSecrets.setJavaSecurityProtectionDomainAccess(
+            new JavaSecurityProtectionDomainAccess() {
+                public ProtectionDomainCache getProtectionDomainCache() {
+                    return new ProtectionDomainCache() {
+                        private final Map<Key, PermissionCollection> map =
+                            Collections.synchronizedMap
+                                (new WeakHashMap<Key, PermissionCollection>());
+                        public void put(ProtectionDomain pd,
+                            PermissionCollection pc) {
+                            map.put((pd == null ? null : pd.key), pc);
+                        }
+                        public PermissionCollection get(ProtectionDomain pd) {
+                            return pd == null ? map.get(null) : map.get(pd.key);
+                        }
+                    };
+                }
+            });
+    }
 }
--- a/jdk/src/share/classes/java/util/concurrent/Semaphore.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/util/concurrent/Semaphore.java	Wed Jul 05 17:09:51 2017 +0200
@@ -191,8 +191,11 @@
 
         protected final boolean tryReleaseShared(int releases) {
             for (;;) {
-                int p = getState();
-                if (compareAndSetState(p, p + releases))
+                int current = getState();
+                int next = current + releases;
+                if (next < current) // overflow
+                    throw new Error("Maximum permit count exceeded");
+                if (compareAndSetState(current, next))
                     return true;
             }
         }
@@ -201,6 +204,8 @@
             for (;;) {
                 int current = getState();
                 int next = current - reductions;
+                if (next > current) // underflow
+                    throw new Error("Permit count underflow");
                 if (compareAndSetState(current, next))
                     return;
             }
--- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicIntegerArray.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicIntegerArray.java	Wed Jul 05 17:09:51 2017 +0200
@@ -57,7 +57,7 @@
     private long rawIndex(int i) {
         if (i < 0 || i >= array.length)
             throw new IndexOutOfBoundsException("index " + i);
-        return base + i * scale;
+        return base + (long) i * scale;
     }
 
     /**
--- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLongArray.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLongArray.java	Wed Jul 05 17:09:51 2017 +0200
@@ -56,7 +56,7 @@
     private long rawIndex(int i) {
         if (i < 0 || i >= array.length)
             throw new IndexOutOfBoundsException("index " + i);
-        return base + i * scale;
+        return base + (long) i * scale;
     }
 
     /**
--- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java	Wed Jul 05 17:09:51 2017 +0200
@@ -57,7 +57,7 @@
     private long rawIndex(int i) {
         if (i < 0 || i >= array.length)
             throw new IndexOutOfBoundsException("index " + i);
-        return base + i * scale;
+        return base + (long) i * scale;
     }
 
     /**
--- a/jdk/src/share/classes/java/util/zip/Deflater.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/util/zip/Deflater.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -72,7 +72,8 @@
  */
 public
 class Deflater {
-    private long strm;
+
+    private final ZStreamRef zsRef;
     private byte[] buf = new byte[0];
     private int off, len;
     private int level, strategy;
@@ -165,7 +166,7 @@
     public Deflater(int level, boolean nowrap) {
         this.level = level;
         this.strategy = DEFAULT_STRATEGY;
-        strm = init(level, DEFAULT_STRATEGY, nowrap);
+        this.zsRef = new ZStreamRef(init(level, DEFAULT_STRATEGY, nowrap));
     }
 
     /**
@@ -193,16 +194,18 @@
      * @param len the length of the data
      * @see Deflater#needsInput
      */
-    public synchronized void setInput(byte[] b, int off, int len) {
+    public void setInput(byte[] b, int off, int len) {
         if (b== null) {
             throw new NullPointerException();
         }
         if (off < 0 || len < 0 || off > b.length - len) {
             throw new ArrayIndexOutOfBoundsException();
         }
-        this.buf = b;
-        this.off = off;
-        this.len = len;
+        synchronized (zsRef) {
+            this.buf = b;
+            this.off = off;
+            this.len = len;
+        }
     }
 
     /**
@@ -227,14 +230,17 @@
      * @see Inflater#inflate
      * @see Inflater#getAdler
      */
-    public synchronized void setDictionary(byte[] b, int off, int len) {
-        if (strm == 0 || b == null) {
+    public void setDictionary(byte[] b, int off, int len) {
+        if (b == null) {
             throw new NullPointerException();
         }
         if (off < 0 || len < 0 || off > b.length - len) {
             throw new ArrayIndexOutOfBoundsException();
         }
-        setDictionary(strm, b, off, len);
+        synchronized (zsRef) {
+            ensureOpen();
+            setDictionary(zsRef.address(), b, off, len);
+        }
     }
 
     /**
@@ -257,7 +263,7 @@
      * @exception IllegalArgumentException if the compression strategy is
      *                                     invalid
      */
-    public synchronized void setStrategy(int strategy) {
+    public void setStrategy(int strategy) {
         switch (strategy) {
           case DEFAULT_STRATEGY:
           case FILTERED:
@@ -266,9 +272,11 @@
           default:
             throw new IllegalArgumentException();
         }
-        if (this.strategy != strategy) {
-            this.strategy = strategy;
-            setParams = true;
+        synchronized (zsRef) {
+            if (this.strategy != strategy) {
+                this.strategy = strategy;
+                setParams = true;
+            }
         }
     }
 
@@ -277,13 +285,15 @@
      * @param level the new compression level (0-9)
      * @exception IllegalArgumentException if the compression level is invalid
      */
-    public synchronized void setLevel(int level) {
+    public void setLevel(int level) {
         if ((level < 0 || level > 9) && level != DEFAULT_COMPRESSION) {
             throw new IllegalArgumentException("invalid compression level");
         }
-        if (this.level != level) {
-            this.level = level;
-            setParams = true;
+        synchronized (zsRef) {
+            if (this.level != level) {
+                this.level = level;
+                setParams = true;
+            }
         }
     }
 
@@ -301,8 +311,10 @@
      * When called, indicates that compression should end with the current
      * contents of the input buffer.
      */
-    public synchronized void finish() {
-        finish = true;
+    public void finish() {
+        synchronized (zsRef) {
+            finish = true;
+        }
     }
 
     /**
@@ -311,8 +323,10 @@
      * @return true if the end of the compressed data output stream has
      * been reached
      */
-    public synchronized boolean finished() {
-        return finished;
+    public boolean finished() {
+        synchronized (zsRef) {
+            return finished;
+        }
     }
 
     /**
@@ -399,26 +413,31 @@
      * @throws IllegalArgumentException if the flush mode is invalid
      * @since 1.7
      */
-    public synchronized int deflate(byte[] b, int off, int len, int flush) {
+    public int deflate(byte[] b, int off, int len, int flush) {
         if (b == null) {
             throw new NullPointerException();
         }
         if (off < 0 || len < 0 || off > b.length - len) {
             throw new ArrayIndexOutOfBoundsException();
         }
-        if (flush == NO_FLUSH || flush == SYNC_FLUSH ||
-            flush == FULL_FLUSH)
-            return deflateBytes(b, off, len, flush);
-        throw new IllegalArgumentException();
+        synchronized (zsRef) {
+            ensureOpen();
+            if (flush == NO_FLUSH || flush == SYNC_FLUSH ||
+                flush == FULL_FLUSH)
+                return deflateBytes(zsRef.address(), b, off, len, flush);
+            throw new IllegalArgumentException();
+        }
     }
 
     /**
      * Returns the ADLER-32 value of the uncompressed data.
      * @return the ADLER-32 value of the uncompressed data
      */
-    public synchronized int getAdler() {
-        ensureOpen();
-        return getAdler(strm);
+    public int getAdler() {
+        synchronized (zsRef) {
+            ensureOpen();
+            return getAdler(zsRef.address());
+        }
     }
 
     /**
@@ -440,9 +459,11 @@
      * @return the total (non-negative) number of uncompressed bytes input so far
      * @since 1.5
      */
-    public synchronized long getBytesRead() {
-        ensureOpen();
-        return getBytesRead(strm);
+    public long getBytesRead() {
+        synchronized (zsRef) {
+            ensureOpen();
+            return getBytesRead(zsRef.address());
+        }
     }
 
     /**
@@ -464,21 +485,25 @@
      * @return the total (non-negative) number of compressed bytes output so far
      * @since 1.5
      */
-    public synchronized long getBytesWritten() {
-        ensureOpen();
-        return getBytesWritten(strm);
+    public long getBytesWritten() {
+        synchronized (zsRef) {
+            ensureOpen();
+            return getBytesWritten(zsRef.address());
+        }
     }
 
     /**
      * Resets deflater so that a new set of input data can be processed.
      * Keeps current compression level and strategy settings.
      */
-    public synchronized void reset() {
-        ensureOpen();
-        reset(strm);
-        finish = false;
-        finished = false;
-        off = len = 0;
+    public void reset() {
+        synchronized (zsRef) {
+            ensureOpen();
+            reset(zsRef.address());
+            finish = false;
+            finished = false;
+            off = len = 0;
+        }
     }
 
     /**
@@ -488,11 +513,14 @@
      * finalize() method. Once this method is called, the behavior
      * of the Deflater object is undefined.
      */
-    public synchronized void end() {
-        if (strm != 0) {
-            end(strm);
-            strm = 0;
-            buf = null;
+    public void end() {
+        synchronized (zsRef) {
+            long addr = zsRef.address();
+            zsRef.clear();
+            if (addr != 0) {
+                end(addr);
+                buf = null;
+            }
         }
     }
 
@@ -504,18 +532,19 @@
     }
 
     private void ensureOpen() {
-        if (strm == 0)
-            throw new NullPointerException();
+        assert Thread.holdsLock(zsRef);
+        if (zsRef.address() == 0)
+            throw new NullPointerException("Deflater has been closed");
     }
 
     private static native void initIDs();
     private native static long init(int level, int strategy, boolean nowrap);
-    private native static void setDictionary(long strm, byte[] b, int off,
-                                             int len);
-    private native int deflateBytes(byte[] b, int off, int len, int flush);
-    private native static int getAdler(long strm);
-    private native static long getBytesRead(long strm);
-    private native static long getBytesWritten(long strm);
-    private native static void reset(long strm);
-    private native static void end(long strm);
+    private native static void setDictionary(long addr, byte[] b, int off, int len);
+    private native int deflateBytes(long addr, byte[] b, int off, int len,
+                                    int flush);
+    private native static int getAdler(long addr);
+    private native static long getBytesRead(long addr);
+    private native static long getBytesWritten(long addr);
+    private native static void reset(long addr);
+    private native static void end(long addr);
 }
--- a/jdk/src/share/classes/java/util/zip/Inflater.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/util/zip/Inflater.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -72,7 +72,8 @@
  */
 public
 class Inflater {
-    private long strm;
+
+    private final ZStreamRef zsRef;
     private byte[] buf = defaultBuf;
     private int off, len;
     private boolean finished;
@@ -97,7 +98,7 @@
      * @param nowrap if true then support GZIP compatible compression
      */
     public Inflater(boolean nowrap) {
-        strm = init(nowrap);
+        zsRef = new ZStreamRef(init(nowrap));
     }
 
     /**
@@ -116,16 +117,18 @@
      * @param len the length of the input data
      * @see Inflater#needsInput
      */
-    public synchronized void setInput(byte[] b, int off, int len) {
+    public void setInput(byte[] b, int off, int len) {
         if (b == null) {
             throw new NullPointerException();
         }
         if (off < 0 || len < 0 || off > b.length - len) {
             throw new ArrayIndexOutOfBoundsException();
         }
-        this.buf = b;
-        this.off = off;
-        this.len = len;
+        synchronized (zsRef) {
+            this.buf = b;
+            this.off = off;
+            this.len = len;
+        }
     }
 
     /**
@@ -150,15 +153,18 @@
      * @see Inflater#needsDictionary
      * @see Inflater#getAdler
      */
-    public synchronized void setDictionary(byte[] b, int off, int len) {
-        if (strm == 0 || b == null) {
+    public void setDictionary(byte[] b, int off, int len) {
+        if (b == null) {
             throw new NullPointerException();
         }
         if (off < 0 || len < 0 || off > b.length - len) {
             throw new ArrayIndexOutOfBoundsException();
         }
-        setDictionary(strm, b, off, len);
-        needDict = false;
+        synchronized (zsRef) {
+            ensureOpen();
+            setDictionary(zsRef.address(), b, off, len);
+            needDict = false;
+        }
     }
 
     /**
@@ -180,8 +186,10 @@
      * buffer after decompression has finished.
      * @return the total number of bytes remaining in the input buffer
      */
-    public synchronized int getRemaining() {
-        return len;
+    public int getRemaining() {
+        synchronized (zsRef) {
+            return len;
+        }
     }
 
     /**
@@ -190,8 +198,10 @@
      * to provide more input.
      * @return true if no data remains in the input buffer
      */
-    public synchronized boolean needsInput() {
-        return len <= 0;
+    public boolean needsInput() {
+        synchronized (zsRef) {
+            return len <= 0;
+        }
     }
 
     /**
@@ -199,8 +209,10 @@
      * @return true if a preset dictionary is needed for decompression
      * @see Inflater#setDictionary
      */
-    public synchronized boolean needsDictionary() {
-        return needDict;
+    public boolean needsDictionary() {
+        synchronized (zsRef) {
+            return needDict;
+        }
     }
 
     /**
@@ -209,8 +221,10 @@
      * @return true if the end of the compressed data stream has been
      * reached
      */
-    public synchronized boolean finished() {
-        return finished;
+    public boolean finished() {
+        synchronized (zsRef) {
+            return finished;
+        }
     }
 
     /**
@@ -228,7 +242,7 @@
      * @see Inflater#needsInput
      * @see Inflater#needsDictionary
      */
-    public synchronized int inflate(byte[] b, int off, int len)
+    public int inflate(byte[] b, int off, int len)
         throws DataFormatException
     {
         if (b == null) {
@@ -237,7 +251,10 @@
         if (off < 0 || len < 0 || off > b.length - len) {
             throw new ArrayIndexOutOfBoundsException();
         }
-        return inflateBytes(b, off, len);
+        synchronized (zsRef) {
+            ensureOpen();
+            return inflateBytes(zsRef.address(), b, off, len);
+        }
     }
 
     /**
@@ -261,9 +278,11 @@
      * Returns the ADLER-32 value of the uncompressed data.
      * @return the ADLER-32 value of the uncompressed data
      */
-    public synchronized int getAdler() {
-        ensureOpen();
-        return getAdler(strm);
+    public int getAdler() {
+        synchronized (zsRef) {
+            ensureOpen();
+            return getAdler(zsRef.address());
+        }
     }
 
     /**
@@ -285,9 +304,11 @@
      * @return the total (non-negative) number of compressed bytes input so far
      * @since 1.5
      */
-    public synchronized long getBytesRead() {
-        ensureOpen();
-        return getBytesRead(strm);
+    public long getBytesRead() {
+        synchronized (zsRef) {
+            ensureOpen();
+            return getBytesRead(zsRef.address());
+        }
     }
 
     /**
@@ -309,21 +330,25 @@
      * @return the total (non-negative) number of uncompressed bytes output so far
      * @since 1.5
      */
-    public synchronized long getBytesWritten() {
-        ensureOpen();
-        return getBytesWritten(strm);
+    public long getBytesWritten() {
+        synchronized (zsRef) {
+            ensureOpen();
+            return getBytesWritten(zsRef.address());
+        }
     }
 
     /**
      * Resets inflater so that a new set of input data can be processed.
      */
-    public synchronized void reset() {
-        ensureOpen();
-        reset(strm);
-        buf = defaultBuf;
-        finished = false;
-        needDict = false;
-        off = len = 0;
+    public void reset() {
+        synchronized (zsRef) {
+            ensureOpen();
+            reset(zsRef.address());
+            buf = defaultBuf;
+            finished = false;
+            needDict = false;
+            off = len = 0;
+        }
     }
 
     /**
@@ -333,11 +358,14 @@
      * method. Once this method is called, the behavior of the Inflater
      * object is undefined.
      */
-    public synchronized void end() {
-        if (strm != 0) {
-            end(strm);
-            strm = 0;
-            buf = null;
+    public void end() {
+        synchronized (zsRef) {
+            long addr = zsRef.address();
+            zsRef.clear();
+            if (addr != 0) {
+                end(addr);
+                buf = null;
+            }
         }
     }
 
@@ -349,19 +377,20 @@
     }
 
     private void ensureOpen () {
-        if (strm == 0)
-            throw new NullPointerException();
+        assert Thread.holdsLock(zsRef);
+        if (zsRef.address() == 0)
+            throw new NullPointerException("Inflater has been closed");
     }
 
     private native static void initIDs();
     private native static long init(boolean nowrap);
-    private native static void setDictionary(long strm, byte[] b, int off,
+    private native static void setDictionary(long addr, byte[] b, int off,
                                              int len);
-    private native int inflateBytes(byte[] b, int off, int len)
+    private native int inflateBytes(long addr, byte[] b, int off, int len)
             throws DataFormatException;
-    private native static int getAdler(long strm);
-    private native static long getBytesRead(long strm);
-    private native static long getBytesWritten(long strm);
-    private native static void reset(long strm);
-    private native static void end(long strm);
+    private native static int getAdler(long addr);
+    private native static long getBytesRead(long addr);
+    private native static long getBytesWritten(long addr);
+    private native static void reset(long addr);
+    private native static void end(long addr);
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/java/util/zip/ZStreamRef.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package java.util.zip;
+
+/**
+ * A reference to the native zlib's z_stream structure.
+ */
+
+class ZStreamRef {
+
+    private long address;
+    ZStreamRef (long address) {
+        this.address = address;
+    }
+
+    long address() {
+        return address;
+    }
+
+    void clear() {
+        address = 0;
+    }
+}
--- a/jdk/src/share/classes/java/util/zip/ZipFile.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/java/util/zip/ZipFile.java	Wed Jul 05 17:09:51 2017 +0200
@@ -36,6 +36,8 @@
 import java.util.Set;
 import java.util.HashSet;
 import java.util.NoSuchElementException;
+import java.security.AccessController;
+import sun.security.action.GetPropertyAction;
 import static java.util.zip.ZipConstants64.*;
 
 /**
@@ -78,6 +80,17 @@
 
     private static native void initIDs();
 
+    private static final boolean usemmap;
+
+    static {
+        // A system prpperty to disable mmap use to avoid vm crash when
+        // in-use zip file is accidently overwritten by others.
+        String prop = AccessController.doPrivileged(
+            new GetPropertyAction("sun.zip.disableMemoryMapping"));
+        usemmap = (prop == null ||
+                   !(prop.length() == 0 || prop.equalsIgnoreCase("true")));
+    }
+
     /**
      * Opens a zip file for reading.
      *
@@ -196,7 +209,7 @@
             throw new NullPointerException("charset is null");
         this.zc = ZipCoder.get(charset);
         long t0 = System.nanoTime();
-        jzfile = open(name, mode, file.lastModified());
+        jzfile = open(name, mode, file.lastModified(), usemmap);
         sun.misc.PerfCounter.getZipFileOpenTime().addElapsedTimeFrom(t0);
         sun.misc.PerfCounter.getZipFileCount().increment();
         this.name = name;
@@ -673,8 +686,8 @@
     }
 
 
-    private static native long open(String name, int mode, long lastModified)
-        throws IOException;
+    private static native long open(String name, int mode, long lastModified,
+                                    boolean usemmap) throws IOException;
     private static native int getTotal(long jzfile);
     private static native int read(long jzfile, long jzentry,
                                    long pos, byte[] b, int off, int len);
--- a/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1271,6 +1271,7 @@
      *
      * @return a String representation of this object.
      **/
+    @Override
     public String toString() {
         return super.toString() + ": connectionId=" + connectionId;
     }
@@ -1514,6 +1515,21 @@
         }
     }
 
+    private static class SetCcl implements PrivilegedExceptionAction<ClassLoader> {
+        private final ClassLoader classLoader;
+
+        SetCcl(ClassLoader classLoader) {
+            this.classLoader = classLoader;
+        }
+
+        public ClassLoader run() {
+            Thread currentThread = Thread.currentThread();
+            ClassLoader old = currentThread.getContextClassLoader();
+            currentThread.setContextClassLoader(classLoader);
+            return old;
+        }
+    }
+
     private static <T> T unwrap(final MarshalledObject<?> mo,
                                 final ClassLoader cl,
                                 final Class<T> wrappedClass)
@@ -1522,22 +1538,14 @@
             return null;
         }
         try {
-            return AccessController.doPrivileged(
-                new PrivilegedExceptionAction<T>() {
-                    public T run()
-                            throws IOException {
-                        final ClassLoader old =
-                            Thread.currentThread().getContextClassLoader();
-                        Thread.currentThread().setContextClassLoader(cl);
-                        try {
-                            return wrappedClass.cast(mo.get());
-                        } catch (ClassNotFoundException cnfe) {
-                            throw new UnmarshalException(cnfe.toString(), cnfe);
-                        } finally {
-                            Thread.currentThread().setContextClassLoader(old);
-                        }
-                    }
-                });
+            final ClassLoader old = AccessController.doPrivileged(new SetCcl(cl));
+            try {
+                return wrappedClass.cast(mo.get());
+            } catch (ClassNotFoundException cnfe) {
+                throw new UnmarshalException(cnfe.toString(), cnfe);
+            } finally {
+                AccessController.doPrivileged(new SetCcl(old));
+            }
         } catch (PrivilegedActionException pe) {
             Exception e = extractException(pe);
             if (e instanceof IOException) {
@@ -1561,14 +1569,14 @@
             return null;
         }
         try {
-            return AccessController.doPrivileged(
-                   new PrivilegedExceptionAction<T>() {
-                       public T run()
-                           throws IOException {
-                           return unwrap(mo, new OrderClassLoaders(cl1, cl2),
-                                         wrappedClass);
-                       }
-                   });
+            ClassLoader orderCL = AccessController.doPrivileged(
+                new PrivilegedExceptionAction<ClassLoader>() {
+                    public ClassLoader run() throws Exception {
+                        return new OrderClassLoaders(cl1, cl2);
+                    }
+                }
+            );
+            return unwrap(mo, orderCL, wrappedClass);
         } catch (PrivilegedActionException pe) {
             Exception e = extractException(pe);
             if (e instanceof IOException) {
--- a/jdk/src/share/classes/javax/net/SocketFactory.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/javax/net/SocketFactory.java	Wed Jul 05 17:09:51 2017 +0200
@@ -27,8 +27,10 @@
 package javax.net;
 
 import java.io.IOException;
-import java.net.*;
-
+import java.net.InetAddress;
+import java.net.Socket;
+import java.net.SocketException;
+import java.net.UnknownHostException;
 
 /**
  * This class creates sockets.  It may be subclassed by other factories,
@@ -113,7 +115,17 @@
      * @see java.net.Socket#Socket()
      */
     public Socket createSocket() throws IOException {
-        throw new SocketException("Unconnected sockets not implemented");
+        //
+        // bug 6771432:
+        // The Exception is used by HttpsClient to signal that
+        // unconnected sockets have not been implemented.
+        //
+        UnsupportedOperationException uop = new
+                UnsupportedOperationException();
+        SocketException se =  new SocketException(
+                "Unconnected sockets not implemented");
+        se.initCause(uop);
+        throw se;
     }
 
 
--- a/jdk/src/share/classes/javax/swing/JSplitPane.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/JSplitPane.java	Wed Jul 05 17:09:51 2017 +0200
@@ -246,8 +246,7 @@
      * layout, using two buttons for the components.
      */
     public JSplitPane() {
-        this(JSplitPane.HORIZONTAL_SPLIT,
-            UIManager.getBoolean("SplitPane.continuousLayout"),
+        this(JSplitPane.HORIZONTAL_SPLIT, false,
             new JButton(UIManager.getString("SplitPane.leftButtonText")),
             new JButton(UIManager.getString("SplitPane.rightButtonText")));
     }
@@ -264,8 +263,7 @@
      */
     @ConstructorProperties({"orientation"})
     public JSplitPane(int newOrientation) {
-        this(newOrientation,
-            UIManager.getBoolean("SplitPane.continuousLayout"));
+        this(newOrientation, false);
     }
 
 
@@ -309,9 +307,7 @@
     public JSplitPane(int newOrientation,
                       Component newLeftComponent,
                       Component newRightComponent){
-        this(newOrientation,
-            UIManager.getBoolean("SplitPane.continuousLayout"),
-            newLeftComponent, newRightComponent);
+        this(newOrientation, false, newLeftComponent, newRightComponent);
     }
 
 
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java	Wed Jul 05 17:09:51 2017 +0200
@@ -762,7 +762,9 @@
      * component's background color to be painted.
      * <li>
      * Installs the default caret and highlighter into the
-     * associated component.
+     * associated component. These properties are only set if their
+     * current value is either {@code null} or an instance of
+     * {@link UIResource}.
      * <li>
      * Attaches to the editor and model.  If there is no
      * model, a default one is created.
--- a/jdk/src/share/classes/javax/swing/plaf/nimbus/skin.laf	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/plaf/nimbus/skin.laf	Wed Jul 05 17:09:51 2017 +0200
@@ -21276,7 +21276,6 @@
                <uiProperty name="centerOneTouchButtons" type="BOOLEAN" value="true"/>
                <uiProperty name="oneTouchButtonOffset" type="INT" value="30"/>
                <uiProperty name="oneTouchExpandable" type="BOOLEAN" value="false"/>
-               <uiProperty name="continuousLayout" type="BOOLEAN" value="true"/>
             </uiproperties>
          </style>
          <backgroundStates>
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java	Wed Jul 05 17:09:51 2017 +0200
@@ -648,6 +648,14 @@
         table.put("ColorChooser.swatchesDefaultRecentColor", Color.RED);
         table.put("ColorChooser.swatchesSwatchSize", new Dimension(10, 10));
 
+        // These need to be defined for ImageView.
+        table.put("html.pendingImage", SwingUtilities2.makeIcon(getClass(),
+                                BasicLookAndFeel.class,
+                                "icons/image-delayed.png"));
+        table.put("html.missingImage", SwingUtilities2.makeIcon(getClass(),
+                                BasicLookAndFeel.class,
+                                "icons/image-failed.png"));
+
         // These are needed for PopupMenu.
         table.put("PopupMenu.selectedWindowInputMapBindings", new Object[] {
                   "ESCAPE", "cancel",
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java	Wed Jul 05 17:09:51 2017 +0200
@@ -489,23 +489,6 @@
     }
 
 
-    /**
-     * @inheritDoc
-     */
-    @Override
-    protected void paintTabArea(Graphics g, int tabPlacement,
-                                int selectedIndex) {
-        // This can be invoked from ScrollabeTabPanel
-        Insets insets = tabPane.getInsets();
-        int x = insets.left;
-        int y = insets.top;
-        int width = tabPane.getWidth() - insets.left - insets.right;
-        int height = tabPane.getHeight() - insets.top - insets.bottom;
-
-        paintTabArea(tabAreaContext, g, tabPlacement, selectedIndex,
-                     new Rectangle(x, y, width, height));
-    }
-
     private void paintTabArea(SynthContext ss, Graphics g,
                                 int tabPlacement, int selectedIndex,
                                 Rectangle tabAreaBounds) {
--- a/jdk/src/share/classes/sun/awt/HKSCS.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/awt/HKSCS.java	Wed Jul 05 17:09:51 2017 +0200
@@ -34,7 +34,7 @@
    ExtendedCharsets class, because if we want to have a public HKSCS,
    it probably should be HKSCS_2001 not HKSCS.
 */
-public class HKSCS extends sun.nio.cs.ext.HKSCS {
+public class HKSCS extends sun.nio.cs.ext.MS950_HKSCS_XP {
     public HKSCS () {
         super();
     }
--- a/jdk/src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java	Wed Jul 05 17:09:51 2017 +0200
@@ -57,6 +57,7 @@
 import sun.awt.SunToolkit;
 import sun.awt.datatransfer.DataTransferer;
 import sun.awt.datatransfer.ToolkitThreadBlockedHandler;
+import sun.security.util.SecurityConstants;
 
 /**
  * <p>
@@ -216,6 +217,18 @@
       throws UnsupportedFlavorException, IOException,
         InvalidDnDOperationException
     {
+
+        SecurityManager sm = System.getSecurityManager();
+        try {
+            if (!dropComplete && sm != null) {
+                sm.checkSystemClipboardAccess();
+            }
+        } catch (Exception e) {
+            Thread currentThread = Thread.currentThread();
+            currentThread.getUncaughtExceptionHandler().uncaughtException(currentThread, e);
+            return null;
+        }
+
         Long lFormat = null;
         Transferable localTransferable = local;
 
--- a/jdk/src/share/classes/sun/awt/image/ImageRepresentation.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/awt/image/ImageRepresentation.java	Wed Jul 05 17:09:51 2017 +0200
@@ -333,10 +333,10 @@
         hints = h;
     }
 
-    public native void setICMpixels(int x, int y, int w, int h, int[] lut,
+    private native void setICMpixels(int x, int y, int w, int h, int[] lut,
                                     byte[] pix, int off, int scansize,
                                     IntegerComponentRaster ict);
-    public native int setDiffICM(int x, int y, int w, int h, int[] lut,
+    private native int setDiffICM(int x, int y, int w, int h, int[] lut,
                                  int transPix, int numLut, IndexColorModel icm,
                                  byte[] pix, int off, int scansize,
                                  ByteComponentRaster bct, int chanOff);
@@ -361,6 +361,64 @@
                 }
                 createBufferedImage();
             }
+
+            if (w <= 0 || h <= 0) {
+                return;
+            }
+
+            int biWidth = biRaster.getWidth();
+            int biHeight = biRaster.getHeight();
+
+            int x1 = x+w;  // Overflow protection below
+            int y1 = y+h;  // Overflow protection below
+            if (x < 0) {
+                off -= x;
+                x = 0;
+            } else if (x1 < 0) {
+                x1 = biWidth;  // Must be overflow
+            }
+            if (y < 0) {
+                off -= y*scansize;
+                y = 0;
+            } else if (y1 < 0) {
+                y1 = biHeight;  // Must be overflow
+            }
+            if (x1 > biWidth) {
+                x1 = biWidth;
+            }
+            if (y1 > biHeight) {
+                y1 = biHeight;
+            }
+            if (x >= x1 || y >= y1) {
+                return;
+            }
+            // x,y,x1,y1 are all >= 0, so w,h must be >= 0
+            w = x1-x;
+            h = y1-y;
+            // off is first pixel read so it must be in bounds
+            if (off < 0 || off >= pix.length) {
+                // They overflowed their own array
+                throw new ArrayIndexOutOfBoundsException("Data offset out of bounds.");
+            }
+            // pix.length and off are >= 0 so remainder >= 0
+            int remainder = pix.length - off;
+            if (remainder < w) {
+                // They overflowed their own array
+                throw new ArrayIndexOutOfBoundsException("Data array is too short.");
+            }
+            int num;
+            if (scansize < 0) {
+                num = (off / -scansize) + 1;
+            } else if (scansize > 0) {
+                num = ((remainder-w) / scansize) + 1;
+            } else {
+                num = h;
+            }
+            if (h > num) {
+                // They overflowed their own array.
+                throw new ArrayIndexOutOfBoundsException("Data array is too short.");
+            }
+
             if (isSameCM && (cmodel != model) && (srcLUT != null) &&
                 (model instanceof IndexColorModel) &&
                 (biRaster instanceof ByteComponentRaster))
--- a/jdk/src/share/classes/sun/io/ByteToCharBig5.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/io/ByteToCharBig5.java	Wed Jul 05 17:09:51 2017 +0200
@@ -26,26 +26,24 @@
 
 package sun.io;
 
+import sun.nio.cs.ext.DoubleByte;
 import sun.nio.cs.ext.Big5;
 
 /**
  * Tables and data to convert Big5 to Unicode
  *
- * @author  ConverterGenerator tool
  */
 
-public class ByteToCharBig5 extends ByteToCharDoubleByte {
+public class ByteToCharBig5 extends ByteToCharDBCS_ASCII {
 
-    private final static Big5 nioCoder = new Big5();
+    private static DoubleByte.Decoder dec =
+        (DoubleByte.Decoder)new Big5().newDecoder();
 
     public String getCharacterEncoding() {
         return "Big5";
     }
 
     public ByteToCharBig5() {
-        super.index1 = nioCoder.getDecoderIndex1();
-        super.index2 = nioCoder.getDecoderIndex2();
-        start = 0x40;
-        end = 0xFE;
+        super(dec);
     }
 }
--- a/jdk/src/share/classes/sun/io/ByteToCharBig5_HKSCS.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/io/ByteToCharBig5_HKSCS.java	Wed Jul 05 17:09:51 2017 +0200
@@ -25,15 +25,28 @@
 
 package sun.io;
 
-public class ByteToCharBig5_HKSCS extends ByteToCharHKSCS_2001 {
-    ByteToCharBig5 bcBig5 = new ByteToCharBig5();
+import sun.nio.cs.ext.Big5_HKSCS;
+import sun.nio.cs.ext.HKSCS;
+import static sun.nio.cs.CharsetMapping.*;
+
+public class ByteToCharBig5_HKSCS extends ByteToCharDBCS_ASCII {
+
+    protected static HKSCS.Decoder dec =
+        (HKSCS.Decoder)new Big5_HKSCS().newDecoder();
+
 
     public String getCharacterEncoding() {
         return "Big5_HKSCS";
     }
 
-    protected char getUnicode(int byte1, int byte2) {
-        char c = super.getUnicode(byte1, byte2);
-        return (c != REPLACE_CHAR) ? c : bcBig5.getUnicode(byte1, byte2);
+    public ByteToCharBig5_HKSCS() {
+        super(dec);
+    }
+
+    protected char decodeDouble(int byte1, int byte2) {
+        char c = dec.decodeDouble(byte1, byte2);
+        if (c == UNMAPPABLE_DECODING)
+            c = dec.decodeBig5(byte1, byte2);
+        return c;
     }
 }
--- a/jdk/src/share/classes/sun/io/ByteToCharBig5_Solaris.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/io/ByteToCharBig5_Solaris.java	Wed Jul 05 17:09:51 2017 +0200
@@ -25,49 +25,19 @@
 
 package sun.io;
 
-/*
- *
- *
- *
- *
- */
-public class ByteToCharBig5_Solaris extends ByteToCharBig5 {
-    public ByteToCharBig5_Solaris() {}
+import sun.nio.cs.ext.DoubleByte;
+import sun.nio.cs.ext.Big5_Solaris;
+
+public class ByteToCharBig5_Solaris extends ByteToCharDBCS_ASCII {
+
+    private static DoubleByte.Decoder dec =
+        (DoubleByte.Decoder)new Big5_Solaris().newDecoder();
 
     public String getCharacterEncoding() {
         return "Big5_Solaris";
     }
 
-    protected char getUnicode(int byte1, int byte2) {
-        //
-        char c = super.getUnicode(byte1, byte2);
-        if (c == REPLACE_CHAR) {
-            if (byte1 == 0xf9) {
-                switch (byte2) {
-                    case 0xD6:
-                        c = (char)0x7881;
-                        break;
-                    case 0xD7:
-                        c = (char)0x92B9;
-                        break;
-                    case 0xD8:
-                        c = (char)0x88CF;
-                        break;
-                    case 0xD9:
-                        c = (char)0x58BB;
-                        break;
-                    case 0xDA:
-                        c = (char)0x6052;
-                        break;
-                    case 0xDB:
-                        c = (char)0x7CA7;
-                        break;
-                    case 0xDC:
-                        c = (char)0x5AFA;
-                        break;
-                }
-            }
-        }
-        return c;
+    public ByteToCharBig5_Solaris() {
+        super(dec);
     }
 }
--- a/jdk/src/share/classes/sun/io/ByteToCharHKSCS.java	Wed Jul 05 17:09:16 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright 2001-2007 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package sun.io;
-
-import sun.nio.cs.ext.HKSCS;
-
-/**
- * Tables and data to convert HKSCS to Unicode
- *
- * @author  ConverterGenerator tool
- */
-
-public class ByteToCharHKSCS extends ByteToCharDoubleByte {
-
-    public String getCharacterEncoding() {
-        return "HKSCS";
-    }
-
-    public ByteToCharHKSCS() {
-        super.index1 = HKSCS.getDecoderIndex1();
-        super.index2= HKSCS.getDecoderIndex2();
-        start = 0x40;
-        end = 0xFE;
-    }
-}
--- a/jdk/src/share/classes/sun/io/ByteToCharHKSCS_2001.java	Wed Jul 05 17:09:16 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package sun.io;
-
-import sun.nio.cs.ext.HKSCS_2001;
-
-/**
- * Tables and data to convert HKSCS (2001 revision) to Unicode
- *
- * @author  ConverterGenerator tool
- */
-
-public class ByteToCharHKSCS_2001 extends ByteToCharDoubleByte {
-
-    public String getCharacterEncoding() {
-        return "HKSCS_2001";
-    }
-
-    public ByteToCharHKSCS_2001() {
-        super.index1 = HKSCS_2001.getDecoderIndex1();
-        super.index2= HKSCS_2001.getDecoderIndex2();
-        start = 0x40;
-        end = 0xFE;
-    }
-}
--- a/jdk/src/share/classes/sun/io/ByteToCharMS950_HKSCS.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/io/ByteToCharMS950_HKSCS.java	Wed Jul 05 17:09:51 2017 +0200
@@ -25,15 +25,27 @@
 
 package sun.io;
 
-public class ByteToCharMS950_HKSCS extends ByteToCharHKSCS {
-    ByteToCharMS950 bcMS950 = new ByteToCharMS950();
+import sun.nio.cs.ext.HKSCS;
+import sun.nio.cs.ext.MS950_HKSCS;
+import static sun.nio.cs.CharsetMapping.*;
+
+public class ByteToCharMS950_HKSCS extends ByteToCharDBCS_ASCII {
+
+    private static HKSCS.Decoder dec =
+        (HKSCS.Decoder)new MS950_HKSCS().newDecoder();
 
     public String getCharacterEncoding() {
         return "MS950_HKSCS";
     }
 
-    protected char getUnicode(int byte1, int byte2) {
-        char c = super.getUnicode(byte1, byte2);
-        return (c != REPLACE_CHAR) ? c : bcMS950.decodeDouble(byte1, byte2);
+    public ByteToCharMS950_HKSCS() {
+        super(dec);
+    }
+
+    protected char decodeDouble(int byte1, int byte2) {
+        char c = dec.decodeDouble(byte1, byte2);
+        if (c == UNMAPPABLE_DECODING)
+            c = dec.decodeBig5(byte1, byte2);
+        return c;
     }
 }
--- a/jdk/src/share/classes/sun/io/CharToByteBig5.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/io/CharToByteBig5.java	Wed Jul 05 17:09:51 2017 +0200
@@ -26,24 +26,24 @@
 
 package sun.io;
 
+import sun.nio.cs.ext.DoubleByte;
 import sun.nio.cs.ext.Big5;
 
 /**
  * Tables and data to convert Unicode to Big5
  *
- * @author  ConverterGenerator tool
  */
 
-public class CharToByteBig5 extends CharToByteDoubleByte {
+public class CharToByteBig5 extends CharToByteDBCS_ASCII {
 
-    private static final Big5 nioCoder = new Big5();
+    private static DoubleByte.Encoder enc =
+        (DoubleByte.Encoder)new Big5().newEncoder();
 
     public String getCharacterEncoding() {
         return "Big5";
     }
 
     public CharToByteBig5() {
-        super.index1 = nioCoder.getEncoderIndex1();
-        super.index2 = nioCoder.getEncoderIndex2();
+        super(enc);
     }
 }
--- a/jdk/src/share/classes/sun/io/CharToByteBig5_HKSCS.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/io/CharToByteBig5_HKSCS.java	Wed Jul 05 17:09:51 2017 +0200
@@ -25,15 +25,18 @@
 
 package sun.io;
 
-public class CharToByteBig5_HKSCS extends CharToByteHKSCS_2001 {
-    CharToByteBig5 cbBig5 = new CharToByteBig5();
+import sun.nio.cs.ext.DoubleByte;
+import sun.nio.cs.ext.Big5_HKSCS;
+
+public class CharToByteBig5_HKSCS extends CharToByteDBCS_ASCII {
+    private static DoubleByte.Encoder enc =
+        (DoubleByte.Encoder)new Big5_HKSCS().newEncoder();
 
     public String getCharacterEncoding() {
         return "Big5_HKSCS";
     }
 
-    protected int getNative(char ch) {
-        int r = super.getNative(ch);
-        return (r != 0) ? r : cbBig5.getNative(ch);
+    public CharToByteBig5_HKSCS() {
+        super(enc);
     }
 }
--- a/jdk/src/share/classes/sun/io/CharToByteBig5_Solaris.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/io/CharToByteBig5_Solaris.java	Wed Jul 05 17:09:51 2017 +0200
@@ -23,48 +23,21 @@
  * have any questions.
  */
 
-
 package sun.io;
 
-/**
- */
+import sun.nio.cs.ext.DoubleByte;
+import sun.nio.cs.ext.Big5_Solaris;
 
-public class CharToByteBig5_Solaris extends CharToByteBig5 {
+public class CharToByteBig5_Solaris extends CharToByteDBCS_ASCII {
+
+    private static DoubleByte.Encoder enc =
+        (DoubleByte.Encoder)new Big5_Solaris().newEncoder();
 
     public String getCharacterEncoding() {
         return "Big5_Solaris";
     }
 
-    protected int getNative(char ch) {
-        int nativeVal;
-
-        if ((nativeVal = super.getNative(ch)) != 0) {
-            return nativeVal;
-        }
-
-        switch (ch) {
-            case 0x7881:
-                nativeVal = 0xF9D6;
-                break;
-            case 0x92B9:
-                nativeVal = 0xF9D7;
-                break;
-            case 0x88CF:
-                nativeVal = 0xF9D8;
-                break;
-            case 0x58BB:
-                nativeVal = 0xF9D9;
-                break;
-            case 0x6052:
-                nativeVal = 0xF9DA;
-                break;
-            case 0x7CA7:
-                nativeVal = 0xF9DB;
-                break;
-            case 0x5AFA:
-                nativeVal = 0xF9DC;
-                break;
-            }
-        return nativeVal;
+    public CharToByteBig5_Solaris() {
+        super(enc);
     }
 }
--- a/jdk/src/share/classes/sun/io/CharToByteHKSCS.java	Wed Jul 05 17:09:16 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright 2001-2003 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-
-
-package sun.io;
-
-import sun.nio.cs.ext.HKSCS;
-
-/**
- * Tables and data to convert Unicode to HKSCS
- *
- * @author  ConverterGenerator tool
- */
-
-public class CharToByteHKSCS extends CharToByteDoubleByte {
-
-    public String getCharacterEncoding() {
-        return "HKSCS";
-    }
-
-    public CharToByteHKSCS() {
-        super.index1 = HKSCS.getEncoderIndex1();
-        super.index2 = HKSCS.getEncoderIndex2();
-    }
-}
--- a/jdk/src/share/classes/sun/io/CharToByteHKSCS_2001.java	Wed Jul 05 17:09:16 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright 2003 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-
-
-package sun.io;
-
-import sun.nio.cs.ext.HKSCS_2001;
-
-/**
- * Tables and data to convert Unicode to HKSCS (2001 revision)
- *
- * @author  ConverterGenerator tool
- */
-
-public class CharToByteHKSCS_2001 extends CharToByteDoubleByte {
-
-    public String getCharacterEncoding() {
-        return "HKSCS_2001";
-    }
-
-    public CharToByteHKSCS_2001() {
-        super.index1 = HKSCS_2001.getEncoderIndex1();
-        super.index2 = HKSCS_2001.getEncoderIndex2();
-    }
-}
--- a/jdk/src/share/classes/sun/io/CharToByteMS950_HKSCS.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/io/CharToByteMS950_HKSCS.java	Wed Jul 05 17:09:51 2017 +0200
@@ -25,15 +25,19 @@
 
 package sun.io;
 
-public class CharToByteMS950_HKSCS extends CharToByteHKSCS {
-    CharToByteMS950 cbMS950 = new CharToByteMS950();
+import sun.nio.cs.ext.DoubleByte;
+import sun.nio.cs.ext.MS950_HKSCS;
+
+public class CharToByteMS950_HKSCS extends CharToByteDBCS_ASCII {
+
+    private static DoubleByte.Encoder enc =
+        (DoubleByte.Encoder)new MS950_HKSCS().newEncoder();
 
     public String getCharacterEncoding() {
         return "MS950_HKSCS";
     }
 
-    protected int getNative(char ch) {
-        int r = super.getNative(ch);
-        return (r != 0) ? r : cbMS950.encodeChar(ch);
+    public CharToByteMS950_HKSCS() {
+        super(enc);
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/misc/JavaSecurityProtectionDomainAccess.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+package sun.misc;
+
+import java.security.PermissionCollection;
+import java.security.ProtectionDomain;
+
+public interface JavaSecurityProtectionDomainAccess {
+    interface ProtectionDomainCache {
+        void put(ProtectionDomain pd, PermissionCollection pc);
+        PermissionCollection get(ProtectionDomain pd);
+    }
+    /**
+     * Returns the ProtectionDomainCache.
+     */
+    ProtectionDomainCache getProtectionDomainCache();
+}
--- a/jdk/src/share/classes/sun/misc/SharedSecrets.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/misc/SharedSecrets.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2002-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,7 @@
     private static JavaNetAccess javaNetAccess;
     private static JavaNioAccess javaNioAccess;
     private static JavaIOFileDescriptorAccess javaIOFileDescriptorAccess;
+    private static JavaSecurityProtectionDomainAccess javaSecurityProtectionDomainAccess;
 
     public static JavaUtilJarAccess javaUtilJarAccess() {
         if (javaUtilJarAccess == null) {
@@ -113,4 +114,13 @@
         return javaIOFileDescriptorAccess;
     }
 
+    public static void setJavaSecurityProtectionDomainAccess
+        (JavaSecurityProtectionDomainAccess jspda) {
+            javaSecurityProtectionDomainAccess = jspda;
+    }
+
+    public static JavaSecurityProtectionDomainAccess
+        getJavaSecurityProtectionDomainAccess() {
+            return javaSecurityProtectionDomainAccess;
+    }
 }
--- a/jdk/src/share/classes/sun/net/NetworkClient.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/net/NetworkClient.java	Wed Jul 05 17:09:51 2017 +0200
@@ -29,7 +29,6 @@
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.UnknownHostException;
-import java.net.URL;
 import java.net.Proxy;
 import java.util.Arrays;
 import java.security.AccessController;
@@ -157,10 +156,15 @@
                         public Socket run() {
                                        return new Socket(proxy);
                                    }});
-            } else
+            } else if (proxy.type() == Proxy.Type.DIRECT) {
+                s = createSocket();
+            } else {
+                // Still connecting through a proxy
+                // server & port will be the proxy address and port
                 s = new Socket(Proxy.NO_PROXY);
+            }
         } else
-            s = new Socket();
+            s = createSocket();
         // Instance specific timeouts do have priority, that means
         // connectTimeout & readTimeout (-1 means not set)
         // Then global default timeouts
@@ -182,6 +186,15 @@
         return s;
     }
 
+    /**
+     * The following method, createSocket, is provided to allow the
+     * https client to override it so that it may use its socket factory
+     * to create the socket.
+     */
+    protected Socket createSocket() throws IOException {
+        return new java.net.Socket();
+    }
+
     protected InetAddress getLocalAddress() throws IOException {
         if (serverSocket == null)
             throw new IOException("not connected");
--- a/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java	Wed Jul 05 17:09:51 2017 +0200
@@ -270,13 +270,17 @@
      * In this case we do not use the path because the protection space
      * is identified by the host:port:realm only
      */
-    static AuthenticationInfo getServerAuth(URL url, String realm, AuthScheme scheme) {
+    static String getServerAuthKey(URL url, String realm, AuthScheme scheme) {
         int port = url.getPort();
         if (port == -1) {
             port = url.getDefaultPort();
         }
         String key = SERVER_AUTHENTICATION + ":" + scheme + ":" + url.getProtocol().toLowerCase()
                      + ":" + url.getHost().toLowerCase() + ":" + port + ":" + realm;
+        return key;
+    }
+
+    static AuthenticationInfo getServerAuth(String key) {
         AuthenticationInfo cached = getAuth(key, null);
         if ((cached == null) && requestIsInProgress (key)) {
             /* check the cache again, it might contain an entry */
@@ -314,9 +318,13 @@
      * Used in response to a challenge. Note, the protocol field is always
      * blank for proxies.
      */
-    static AuthenticationInfo getProxyAuth(String host, int port, String realm, AuthScheme scheme) {
+    static String getProxyAuthKey(String host, int port, String realm, AuthScheme scheme) {
         String key = PROXY_AUTHENTICATION + ":" + scheme + "::" + host.toLowerCase()
                         + ":" + port + ":" + realm;
+        return key;
+    }
+
+    static AuthenticationInfo getProxyAuth(String key) {
         AuthenticationInfo cached = (AuthenticationInfo) cache.get(key, null);
         if ((cached == null) && requestIsInProgress (key)) {
             /* check the cache again, it might contain an entry */
@@ -330,19 +338,20 @@
      * Add this authentication to the cache
      */
     void addToCache() {
-        cache.put (cacheKey(true), this);
+        String key = cacheKey(true);
+        cache.put(key, this);
         if (supportsPreemptiveAuthorization()) {
-            cache.put (cacheKey(false), this);
+            cache.put(cacheKey(false), this);
         }
-        endAuthRequest();
+        endAuthRequest(key);
     }
 
-    void endAuthRequest () {
+    static void endAuthRequest (String key) {
         if (!serializeAuth) {
             return;
         }
         synchronized (requests) {
-            requestCompleted (cacheKey(true));
+            requestCompleted(key);
         }
     }
 
--- a/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1995-2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1995-2010 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -249,6 +249,8 @@
     boolean isUserServerAuth;
     boolean isUserProxyAuth;
 
+    String serverAuthKey, proxyAuthKey;
+
     /* Progress source */
     protected ProgressSource pi;
 
@@ -1258,6 +1260,11 @@
                         doingNTLMp2ndStage = false;
                         continue;
                     }
+                } else {
+                    inNegotiateProxy = false;
+                    doingNTLMp2ndStage = false;
+                    if (!isUserProxyAuth)
+                        requests.remove("Proxy-Authorization");
                 }
 
                 // cache proxy authentication info
@@ -1303,7 +1310,7 @@
                             serverAuthentication.getAuthScheme() != NTLM) {
                             if (serverAuthentication.isAuthorizationStale (raw)) {
                                 /* we can retry with the current credentials */
-                                disconnectInternal();
+                                disconnectWeb();
                                 redirects++;
                                 requests.set(serverAuthentication.getHeaderName(),
                                             serverAuthentication.getHeaderValue(url, method));
@@ -1318,7 +1325,7 @@
                         currentServerCredentials = serverAuthentication;
 
                         if (serverAuthentication != null) {
-                            disconnectInternal();
+                            disconnectWeb();
                             redirects++; // don't let things loop ad nauseum
                             setCookieHeader();
                             continue;
@@ -1327,7 +1334,7 @@
                         reset ();
                         /* header not used for ntlm */
                         if (!serverAuthentication.setHeaders(this, null, raw)) {
-                            disconnectInternal();
+                            disconnectWeb();
                             throw new IOException ("Authentication failure");
                         }
                         doingNTLM2ndStage = false;
@@ -1498,11 +1505,11 @@
             }
             throw e;
         } finally {
-            if (respCode == HTTP_PROXY_AUTH && proxyAuthentication != null) {
-                proxyAuthentication.endAuthRequest();
+            if (proxyAuthKey != null) {
+                AuthenticationInfo.endAuthRequest(proxyAuthKey);
             }
-            else if (respCode == HTTP_UNAUTHORIZED && serverAuthentication != null) {
-                serverAuthentication.endAuthRequest();
+            if (serverAuthKey != null) {
+                AuthenticationInfo.endAuthRequest(serverAuthKey);
             }
         }
     }
@@ -1715,8 +1722,8 @@
                                       statusLine + "\"");
             }
         } finally  {
-            if (respCode == HTTP_PROXY_AUTH && proxyAuthentication != null) {
-                proxyAuthentication.endAuthRequest();
+            if (proxyAuthKey != null) {
+                AuthenticationInfo.endAuthRequest(proxyAuthKey);
             }
         }
 
@@ -1832,10 +1839,8 @@
 
             if (realm == null)
                 realm = "";
-            ret = AuthenticationInfo.getProxyAuth(host,
-                                                  port,
-                                                  realm,
-                                                  authScheme);
+            proxyAuthKey = AuthenticationInfo.getProxyAuthKey(host, port, realm, authScheme);
+            ret = AuthenticationInfo.getProxyAuth(proxyAuthKey);
             if (ret == null) {
                 switch (authScheme) {
                 case BASIC:
@@ -1976,7 +1981,8 @@
             domain = p.findValue ("domain");
             if (realm == null)
                 realm = "";
-            ret = AuthenticationInfo.getServerAuth(url, realm, authScheme);
+            serverAuthKey = AuthenticationInfo.getServerAuthKey(url, realm, authScheme);
+            ret = AuthenticationInfo.getServerAuth(serverAuthKey);
             InetAddress addr = null;
             if (ret == null) {
                 try {
@@ -2320,6 +2326,22 @@
     }
 
     /**
+     * Disconnect from the web server at the first 401 error. Do not
+     * disconnect when using a proxy, a good proxy should have already
+     * closed the connection to the web server.
+     */
+    private void disconnectWeb() throws IOException {
+        if (usingProxy()) {
+            responseCode = -1;
+            // clean up, particularly, skip the content part
+            // of a 401 error response
+            reset();
+        } else {
+            disconnectInternal();
+        }
+    }
+
+    /**
      * Disconnect from the server (for internal use)
      */
     private void disconnectInternal() {
--- a/jdk/src/share/classes/sun/net/www/protocol/http/spnego/NegotiateCallbackHandler.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/net/www/protocol/http/spnego/NegotiateCallbackHandler.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2005-2010 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,43 +45,50 @@
     private String username;
     private char[] password;
 
+    /**
+     * Authenticator asks for username and password in a single prompt,
+     * but CallbackHandler checks one by one. So, no matter which callback
+     * gets handled first, make sure Authenticator is only called once.
+     */
+    private boolean answered;
+
     private final HttpCallerInfo hci;
 
     public NegotiateCallbackHandler(HttpCallerInfo hci) {
         this.hci = hci;
     }
 
+    private void getAnswer() {
+        if (!answered) {
+            answered = true;
+            PasswordAuthentication passAuth =
+                    Authenticator.requestPasswordAuthentication(
+                    hci.host, hci.addr, hci.port, hci.protocol,
+                    hci.prompt, hci.scheme, hci.url, hci.authType);
+            /**
+             * To be compatible with existing callback handler implementations,
+             * when the underlying Authenticator is canceled, username and
+             * password are assigned null. No exception is thrown.
+             */
+            if (passAuth != null) {
+                username = passAuth.getUserName();
+                password = passAuth.getPassword();
+            }
+        }
+    }
+
     public void handle(Callback[] callbacks) throws
             UnsupportedCallbackException, IOException {
         for (int i=0; i<callbacks.length; i++) {
             Callback callBack = callbacks[i];
 
             if (callBack instanceof NameCallback) {
-                if (username == null) {
-                    PasswordAuthentication passAuth =
-                            Authenticator.requestPasswordAuthentication(
-                            hci.host, hci.addr, hci.port, hci.protocol,
-                            hci.prompt, hci.scheme, hci.url, hci.authType);
-                    username = passAuth.getUserName();
-                    password = passAuth.getPassword();
-                }
-                NameCallback nameCallback =
-                        (NameCallback)callBack;
-                nameCallback.setName(username);
-
+                getAnswer();
+                ((NameCallback)callBack).setName(username);
             } else if (callBack instanceof PasswordCallback) {
-                PasswordCallback passwordCallback =
-                        (PasswordCallback)callBack;
-                if (password == null) {
-                    PasswordAuthentication passAuth =
-                            Authenticator.requestPasswordAuthentication(
-                            hci.host, hci.addr, hci.port, hci.protocol,
-                            hci.prompt, hci.scheme, hci.url, hci.authType);
-                    username = passAuth.getUserName();
-                    password = passAuth.getPassword();
-                }
-                passwordCallback.setPassword(password);
-                Arrays.fill(password, ' ');
+                getAnswer();
+                ((PasswordCallback)callBack).setPassword(password);
+                if (password != null) Arrays.fill(password, ' ');
             } else {
                 throw new UnsupportedCallbackException(callBack,
                         "Call back not supported");
--- a/jdk/src/share/classes/sun/net/www/protocol/https/HttpsClient.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/net/www/protocol/https/HttpsClient.java	Wed Jul 05 17:09:51 2017 +0200
@@ -28,39 +28,24 @@
 
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.FileInputStream;
 import java.io.PrintStream;
 import java.io.BufferedOutputStream;
 import java.net.Socket;
+import java.net.SocketException;
 import java.net.URL;
 import java.net.UnknownHostException;
-import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.Proxy;
 import java.net.CookieHandler;
-import java.net.Authenticator;
-import java.net.PasswordAuthentication;
 import java.security.Principal;
-import java.security.KeyStore;
-import java.security.PrivateKey;
 import java.security.cert.*;
 import java.util.StringTokenizer;
 import java.util.Vector;
-import java.util.Collection;
-import java.util.List;
-import java.util.Iterator;
 import java.security.AccessController;
 
 import javax.security.auth.x500.X500Principal;
 
 import javax.net.ssl.*;
-import sun.security.x509.X500Name;
-import sun.misc.Regexp;
-import sun.misc.RegexpPool;
-import sun.net.www.HeaderParser;
-import sun.net.www.MessageHeader;
 import sun.net.www.http.HttpClient;
 import sun.security.action.*;
 
@@ -125,6 +110,7 @@
     private static final int    httpsPortNumber = 443;
 
     /** Returns the default HTTPS port (443) */
+    @Override
     protected int getDefaultPort() { return httpsPortNumber; }
 
     private HostnameVerifier hv;
@@ -368,11 +354,39 @@
         return sslSocketFactory;
     }
 
+    /**
+     * The following method, createSocket, is defined in NetworkClient
+     * and overridden here so that the socket facroty is used to create
+     * new sockets.
+     */
+    @Override
+    protected Socket createSocket() throws IOException {
+        try {
+            return sslSocketFactory.createSocket();
+        } catch (SocketException se) {
+            //
+            // bug 6771432
+            // javax.net.SocketFactory throws a SocketException with an
+            // UnsupportedOperationException as its cause to indicate that
+            // unconnected sockets have not been implemented.
+            //
+            Throwable t = se.getCause();
+            if (t != null && t instanceof UnsupportedOperationException) {
+                return super.createSocket();
+            } else {
+                throw se;
+            }
+        }
+    }
+
+
+    @Override
     public boolean needsTunneling() {
         return (proxy != null && proxy.type() != Proxy.Type.DIRECT
                 && proxy.type() != Proxy.Type.SOCKS);
     }
 
+    @Override
     public void afterConnect() throws IOException, UnknownHostException {
         if (!isCachedConnection()) {
             SSLSocket s = null;
@@ -383,6 +397,9 @@
                                                         host, port, true);
                 } else {
                     s = (SSLSocket)serverSocket;
+                    if (s instanceof SSLSocketImpl) {
+                        ((SSLSocketImpl)s).setHost(host);
+                    }
                 }
             } catch (IOException ex) {
                 // If we fail to connect through the tunnel, try it
@@ -451,7 +468,6 @@
         //
         // Get authenticated server name, if any
         //
-        boolean done = false;
         String host = url.getHost();
 
         // if IPv6 strip off the "[]"
@@ -467,7 +483,7 @@
 
             // Use ciphersuite to determine whether Kerberos is present.
             if (cipher.startsWith("TLS_KRB5")) {
-                if (!checker.match(host, getPeerPrincipal())) {
+                if (!HostnameChecker.match(host, getPeerPrincipal())) {
                     throw new SSLPeerUnverifiedException("Hostname checker" +
                                 " failed for Kerberos");
                 }
@@ -514,6 +530,7 @@
                               + url.getHost() + ">");
     }
 
+    @Override
     protected void putInKeepAliveCache() {
         kac.put(url, sslSocketFactory, this);
     }
@@ -521,6 +538,7 @@
     /*
      * Close an idle connection to this URL (if it exists in the cache).
      */
+    @Override
     public void closeIdleConnection() {
         HttpClient http = (HttpClient) kac.get(url, sslSocketFactory);
         if (http != null) {
@@ -626,11 +644,12 @@
      * @return the proxy host being used for this client, or null
      *          if we're not going through a proxy
      */
+    @Override
     public String getProxyHostUsed() {
         if (!needsTunneling()) {
             return null;
         } else {
-            return ((InetSocketAddress)proxy.address()).getHostName();
+            return super.getProxyHostUsed();
         }
     }
 
@@ -638,6 +657,7 @@
      * @return the proxy port being used for this client.  Meaningless
      *          if getProxyHostUsed() gives null.
      */
+    @Override
     public int getProxyPortUsed() {
         return (proxy == null || proxy.type() == Proxy.Type.DIRECT ||
                 proxy.type() == Proxy.Type.SOCKS)? -1:
--- a/jdk/src/share/classes/sun/nio/ch/Net.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/nio/ch/Net.java	Wed Jul 05 17:09:51 2017 +0200
@@ -68,6 +68,9 @@
         InetSocketAddress isa = (InetSocketAddress)sa;
         if (isa.isUnresolved())
             throw new UnresolvedAddressException(); // ## needs arg
+        InetAddress addr = isa.getAddress();
+        if (!(addr instanceof Inet4Address || addr instanceof Inet6Address))
+            throw new IllegalArgumentException("Invalid address type");
         return isa;
     }
 
--- a/jdk/src/share/classes/sun/nio/cs/Surrogate.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/nio/cs/Surrogate.java	Wed Jul 05 17:09:51 2017 +0200
@@ -78,8 +78,8 @@
      * Tells whether or not the given UCS-4 character is in the Basic
      * Multilingual Plane, and can be represented using a single char.
      */
-    public static boolean isBMP(int uc) {
-        return (int) (char) uc == uc;
+    public static boolean isBMPCodePoint(int uc) {
+        return uc >> 16 == 0;
     }
 
     /**
@@ -290,7 +290,7 @@
          *           error() will return a descriptive result object
          */
         public int generate(int uc, int len, CharBuffer dst) {
-            if (Surrogate.isBMP(uc)) {
+            if (Surrogate.isBMPCodePoint(uc)) {
                 if (Surrogate.is(uc)) {
                     error = CoderResult.malformedForLength(len);
                     return -1;
@@ -334,7 +334,7 @@
          *           error() will return a descriptive result object
          */
         public int generate(int uc, int len, char[] da, int dp, int dl) {
-            if (Surrogate.isBMP(uc)) {
+            if (Surrogate.isBMPCodePoint(uc)) {
                 if (Surrogate.is(uc)) {
                     error = CoderResult.malformedForLength(len);
                     return -1;
--- a/jdk/src/share/classes/sun/nio/cs/ext/Big5.java	Wed Jul 05 17:09:16 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5508 +0,0 @@
-
-/*
- * Copyright 2002-2003 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-/*
- */
-
-package sun.nio.cs.ext;
-
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetDecoder;
-import java.nio.charset.CharsetEncoder;
-
-public class Big5
-    extends Charset
-{
-    public Big5() {
-        super("Big5", ExtendedCharsets.aliasesFor("Big5"));
-    }
-
-    public boolean contains(Charset cs) {
-        return ((cs.name().equals("US-ASCII"))
-                || (cs instanceof Big5));
-    }
-
-    public CharsetDecoder newDecoder() {
-        return new Decoder(this);
-    }
-
-    public CharsetEncoder newEncoder() {
-        return new Encoder(this);
-    }
-
-
-    /**
-     * These accessors are temporarily supplied while sun.io
-     * converters co-exist with the sun.nio.cs.{ext} charset coders
-     * These facilitate sharing of conversion tables between the
-     * two co-existing implementations. When sun.io converters
-     * are made extinct these will be unncessary and should be removed
-     */
-
-    public short[] getDecoderIndex1() {
-        return Decoder.index1;
-    }
-
-    public String[] getDecoderIndex2() {
-        return Decoder.index2;
-
-    }
-
-    public short[] getEncoderIndex1() {
-        return Encoder.index1;
-
-    }
-    public String[] getEncoderIndex2() {
-        return Encoder.index2;
-
-    }
-
-    protected static class Decoder extends DoubleByteDecoder {
-
-        private final static String innerIndex0=
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u3000"+
-            "\uFF0C\u3001\u3002\uFF0E\u2022\uFF1B\uFF1A\uFF1F"+
-            "\uFF01\uFE30\u2026\u2025\uFE50\uFF64\uFE52\u00B7"+
-            "\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014"+
-            "\uFE33\uFF3F\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36"+
-            "\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A"+
-            "\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E"+
-            "\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42"+
-            "\u300E\u300F\uFE43\uFE44\uFE59\uFE5A\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D"+
-            "\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B"+
-            "\u00A7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606"+
-            "\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3"+
-            "\u2105\u203E\uFFFD\uFF3F\uFFFD\uFE49\uFE4A\uFE4D"+
-            "\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D"+
-            "\u00D7\u00F7\u00B1\u221A\uFF1C\uFF1E\uFF1D\u2266"+
-            "\u2267\u2260\u221E\u2252\u2261\uFE62\uFE63\uFE64"+
-            "\uFE65\uFE66\u223C\u2229\u222A\u22A5\u2220\u221F"+
-            "\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640"+
-            "\u2642\u2641\u2609\u2191\u2193\u2190\u2192\u2196"+
-            "\u2197\u2199\u2198\u2225\u2223\u2571\u2572\uFF0F"+
-            "\uFF3C\uFF04\u00A5\u3012\u00A2\u00A3\uFF05\uFF20"+
-            "\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D"+
-            "\u339E\u33CE\u33A1\u338E\u338F\u33C4\u00B0\u5159"+
-            "\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE"+
-            "\u2581\u2582\u2583\u2584\u2585\u2586\u2587\u2588"+
-            "\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C"+
-            "\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595"+
-            "\u250C\u2510\u2514\u2518\u256D\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u256E"+
-            "\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3"+
-            "\u25E5\u25E4\u2571\u2572\u2573\uFF10\uFF11\uFF12"+
-            "\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19\u2160"+
-            "\u2161\u2162\u2163\u2164\u2165\u2166\u2167\u2168"+
-            "\u2169\u3021\u3022\u3023\u3024\u3025\u3026\u3027"+
-            "\u3028\u3029\u5341\u5344\u5345\uFF21\uFF22\uFF23"+
-            "\uFF24\uFF25\uFF26\uFF27\uFF28\uFF29\uFF2A\uFF2B"+
-            "\uFF2C\uFF2D\uFF2E\uFF2F\uFF30\uFF31\uFF32\uFF33"+
-            "\uFF34\uFF35\uFF36\uFF37\uFF38\uFF39\uFF3A\uFF41"+
-            "\uFF42\uFF43\uFF44\uFF45\uFF46\uFF47\uFF48\uFF49"+
-            "\uFF4A\uFF4B\uFF4C\uFF4D\uFF4E\uFF4F\uFF50\uFF51"+
-            "\uFF52\uFF53\uFF54\uFF55\uFF56\uFF57\uFF58\uFF59"+
-            "\uFF5A\u0391\u0392\u0393\u0394\u0395\u0396\u0397"+
-            "\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F"+
-            "\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8"+
-            "\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7"+
-            "\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF"+
-            "\u03C0\u03C1\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8"+
-            "\u03C9\u3105\u3106\u3107\u3108\u3109\u310A\u310B"+
-            "\u310C\u310D\u310E\u310F\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u3110\u3111"+
-            "\u3112\u3113\u3114\u3115\u3116\u3117\u3118\u3119"+
-            "\u311A\u311B\u311C\u311D\u311E\u311F\u3120\u3121"+
-            "\u3122\u3123\u3124\u3125\u3126\u3127\u3128\u3129"+
-            "\u02D9\u02C9\u02CA\u02C7\u02CB\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\u4E00\u4E59\u4E01\u4E03"+
-            "\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B"+
-            "\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8"+
-            "\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45"+
-            "\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA"+
-            "\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973"+
-            "\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71"+
-            "\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE"+
-            "\u5F0B\u5F13\u624D\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u4E11\u4E10\u4E0D"+
-            "\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95"+
-            "\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7"+
-            "\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D"+
-            "\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB"+
-            "\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E"+
-            "\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A"+
-            "\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B"+
-            "\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E"+
-            "\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708"+
-            "\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F"+
-            "\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B"+
-            "\u72AC\u738B\u4E19\u4E16\u4E15\u4E14\u4E18\u4E3B"+
-            "\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6"+
-            "\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189"+
-            "\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F"+
-            "\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361"+
-            "\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC"+
-            "\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6"+
-            "\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB"+
-            "\u56DA\u5916\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\u592E\u5931\u5974\u5976"+
-            "\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03"+
-            "\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253"+
-            "\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A"+
-            "\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41"+
-            "\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518"+
-            "\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B"+
-            "\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A"+
-            "\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69"+
-            "\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A"+
-            "\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB"+
-            "\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146"+
-            "\u5148\u5168\u5171\u518D\u51B0\u5217\u5211\u5212"+
-            "\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371"+
-            "\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404"+
-            "\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0"+
-            "\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F"+
-            "\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983"+
-            "\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88"+
-            "\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76"+
-            "\u5E74\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\u5F0F\u5F1B\u5FD9\u5FD6\u620E"+
-            "\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9"+
-            "\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734"+
-            "\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57"+
-            "\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D"+
-            "\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8"+
-            "\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033"+
-            "\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC"+
-            "\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840"+
-            "\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F"+
-            "\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50"+
-            "\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46"+
-            "\u4F63\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D"+
-            "\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7"+
-            "\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA"+
-            "\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E"+
-            "\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442"+
-            "\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435"+
-            "\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C"+
-            "\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\u5747\u574E\u573E\u5750\u574F\u573B"+
-            "\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999"+
-            "\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C"+
-            "\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41"+
-            "\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C"+
-            "\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62"+
-            "\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB"+
-            "\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280"+
-            "\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273"+
-            "\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286"+
-            "\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F"+
-            "\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"+
-            "\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81"+
-            "\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70"+
-            "\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E"+
-            "\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076"+
-            "\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2"+
-            "\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3"+
-            "\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093"+
-            "\u809D\u8098\u809B\u809A\u80B2\u826F\u8292\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46"+
-            "\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B"+
-            "\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2"+
-            "\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E"+
-            "\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B"+
-            "\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F"+
-            "\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88"+
-            "\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154"+
-            "\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD"+
-            "\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241"+
-            "\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377"+
-            "\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475\u5496"+
-            "\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486"+
-            "\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468"+
-            "\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769"+
-            "\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948"+
-            "\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1"+
-            "\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3"+
-            "\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98"+
-            "\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3"+
-            "\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A"+
-            "\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29"+
-            "\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5"+
-            "\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015"+
-            "\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F"+
-            "\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2"+
-            "\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8"+
-            "\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5"+
-            "\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE"+
-            "\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606"+
-            "\u6602\u660E\u6600\u660F\u6615\u660A\u6607\u670D"+
-            "\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777"+
-            "\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E"+
-            "\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23"+
-            "\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3"+
-            "\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2"+
-            "\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE"+
-            "\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA"+
-            "\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u7095"+
-            "\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248"+
-            "\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9"+
-            "\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A"+
-            "\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940"+
-            "\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54"+
-            "\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1"+
-            "\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D"+
-            "\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1"+
-            "\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7"+
-            "\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1"+
-            "\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580"+
-            "\u961C\u9640\u963F\u963B\u9644\u9642\u96B9\u96E8"+
-            "\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF"+
-            "\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8"+
-            "\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA"+
-            "\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E"+
-            "\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9"+
-            "\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC"+
-            "\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7"+
-            "\u54C2\u54BD\u54AA\u54C1\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u54C4\u54C8"+
-            "\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF"+
-            "\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793"+
-            "\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF"+
-            "\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01"+
-            "\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01"+
-            "\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D"+
-            "\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D"+
-            "\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89"+
-            "\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070"+
-            "\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064"+
-            "\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE"+
-            "\u62FD\u6307\u62F1\u62F7\u62EF\u62EC\u62FE\u62F4"+
-            "\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625"+
-            "\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624"+
-            "\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6"+
-            "\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA"+
-            "\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2"+
-            "\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7"+
-            "\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C"+
-            "\u6D31\u6D1E\u6D17\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6D3B\u6D3D\u6D3E"+
-            "\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E"+
-            "\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF"+
-            "\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274"+
-            "\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD"+
-            "\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B"+
-            "\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687"+
-            "\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8"+
-            "\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814"+
-            "\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA"+
-            "\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D"+
-            "\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38"+
-            "\u7F8E\u7FBF\u8004\u8010\u800D\u8011\u8036\u80D6"+
-            "\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE"+
-            "\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305"+
-            "\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2"+
-            "\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3"+
-            "\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D"+
-            "\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0"+
-            "\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2"+
-            "\u8FEA\u8FE5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\u8FED\u8FEB\u8FE4\u8FE8"+
-            "\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582"+
-            "\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED"+
-            "\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58"+
-            "\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8"+
-            "\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011"+
-            "\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019"+
-            "\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009"+
-            "\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB"+
-            "\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F"+
-            "\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5"+
-            "\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509"+
-            "\u54EE\u54EA\u54E6\u5527\u5507\u54FD\u550F\u5703"+
-            "\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957"+
-            "\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13"+
-            "\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B"+
-            "\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9"+
-            "\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB"+
-            "\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D"+
-            "\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90"+
-            "\u6059\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\u6063\u6065\u6050\u6055\u606D"+
-            "\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C"+
-            "\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E"+
-            "\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350"+
-            "\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549"+
-            "\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652"+
-            "\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821"+
-            "\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829"+
-            "\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840"+
-            "\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A"+
-            "\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0"+
-            "\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59"+
-            "\u6D93\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C"+
-            "\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4"+
-            "\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD"+
-            "\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA"+
-            "\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5"+
-            "\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8"+
-            "\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720"+
-            "\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\u7825\u782D\u7820\u781F\u7832\u7955"+
-            "\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A"+
-            "\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84"+
-            "\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B"+
-            "\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C"+
-            "\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1"+
-            "\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1"+
-            "\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3"+
-            "\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200"+
-            "\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352"+
-            "\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F"+
-            "\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343";
-
-        private final static String innerIndex1=
-            "\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3"+
-            "\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18"+
-            "\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16"+
-            "\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77"+
-            "\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7"+
-            "\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095"+
-            "\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD"+
-            "\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2"+
-            "\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A"+
-            "\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065"+
-            "\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F"+
-            "\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2"+
-            "\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340"+
-            "\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E"+
-            "\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F"+
-            "\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541"+
-            "\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806"+
-            "\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920"+
-            "\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40\u5A3C"+
-            "\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4"+
-            "\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C"+
-            "\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11"+
-            "\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38"+
-            "\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE"+
-            "\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99"+
-            "\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089"+
-            "\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6"+
-            "\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0"+
-            "\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398"+
-            "\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8"+
-            "\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380"+
-            "\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559"+
-            "\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B"+
-            "\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664"+
-            "\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF"+
-            "\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897"+
-            "\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D"+
-            "\u68A8\u689F\u68A1\u6882\u6B32\u6BBA\u6BEB\u6BEC"+
-            "\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC"+
-            "\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1"+
-            "\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2"+
-            "\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE"+
-            "\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9"+
-            "\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C"+
-            "\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403"+
-            "\u7406\u73FE\u740D\u74E0\u74F6\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u74F7"+
-            "\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4"+
-            "\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB"+
-            "\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843"+
-            "\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20"+
-            "\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92"+
-            "\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C"+
-            "\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31"+
-            "\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A"+
-            "\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124"+
-            "\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398"+
-            "\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393"+
-            "\u8389\u83A0\u8377\u837B\u837C\u8386\u83A7\u8655"+
-            "\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB"+
-            "\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892"+
-            "\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23"+
-            "\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A"+
-            "\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66"+
-            "\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017"+
-            "\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F"+
-            "\u9022\u9016\u901B\u9014\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u90E8\u90ED"+
-            "\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED"+
-            "\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674"+
-            "\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF"+
-            "\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB"+
-            "\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098"+
-            "\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE"+
-            "\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C"+
-            "\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587"+
-            "\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A"+
-            "\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D"+
-            "\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D"+
-            "\u5820\u58F9\u58FA\u5960\u5A77\u5A9A\u5A7F\u5A92"+
-            "\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0"+
-            "\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD"+
-            "\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2"+
-            "\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1"+
-            "\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0"+
-            "\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100"+
-            "\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9"+
-            "\u63C9\u63C6\u63CD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u63D2\u63E3\u63D0"+
-            "\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB"+
-            "\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591"+
-            "\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691"+
-            "\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA"+
-            "\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE"+
-            "\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D"+
-            "\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A"+
-            "\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C"+
-            "\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20"+
-            "\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E"+
-            "\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43"+
-            "\u6E1D\u6E3E\u6ECB\u6E89\u6E19\u6E4E\u6E63\u6E44"+
-            "\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121"+
-            "\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325"+
-            "\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435"+
-            "\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526"+
-            "\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE"+
-            "\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F"+
-            "\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05"+
-            "\u7A00\u7A98\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\u7A97\u7A96\u7AE5\u7AE3"+
-            "\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B"+
-            "\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55"+
-            "\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73"+
-            "\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154"+
-            "\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153"+
-            "\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0"+
-            "\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A"+
-            "\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E"+
-            "\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9"+
-            "\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1"+
-            "\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E"+
-            "\u8A3C\u8A41\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A"+
-            "\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD"+
-            "\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8"+
-            "\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1"+
-            "\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E"+
-            "\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109"+
-            "\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209"+
-            "\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B"+
-            "\u9591\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\u9593\u9592\u958E\u968A\u968E"+
-            "\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1"+
-            "\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805"+
-            "\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED"+
-            "\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5"+
-            "\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF"+
-            "\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2"+
-            "\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC"+
-            "\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5"+
-            "\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858"+
-            "\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862"+
-            "\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD"+
-            "\u5ABC\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79"+
-            "\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F"+
-            "\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E"+
-            "\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106"+
-            "\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D"+
-            "\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416"+
-            "\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687"+
-            "\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\u695A\u6977\u6960\u6954\u6975\u6930"+
-            "\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986"+
-            "\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3"+
-            "\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D"+
-            "\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1"+
-            "\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E"+
-            "\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166"+
-            "\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252"+
-            "\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F"+
-            "\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578"+
-            "\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4"+
-            "\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"+
-            "\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE"+
-            "\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891"+
-            "\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C"+
-            "\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77"+
-            "\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93"+
-            "\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A"+
-            "\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084"+
-            "\u8171\u8170\u8178\u8165\u816E\u8173\u816B\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\u8179\u817A\u8166\u8205\u8247\u8482\u8477"+
-            "\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B"+
-            "\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E"+
-            "\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE"+
-            "\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4"+
-            "\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2"+
-            "\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70"+
-            "\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62"+
-            "\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A"+
-            "\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2"+
-            "\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA"+
-            "\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A\u8F9F"+
-            "\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055"+
-            "\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041"+
-            "\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257"+
-            "\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251"+
-            "\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598"+
-            "\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7"+
-            "\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811"+
-            "\u9813\u980A\u9812\u980C\u98FC\u98F4\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82"+
-            "\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED"+
-            "\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162"+
-            "\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B"+
-            "\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7"+
-            "\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875"+
-            "\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD"+
-            "\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9"+
-            "\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1"+
-            "\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62"+
-            "\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3"+
-            "\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147\u613F\u614B"+
-            "\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A"+
-            "\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451"+
-            "\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6"+
-            "\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE"+
-            "\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0"+
-            "\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C"+
-            "\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E"+
-            "\u6F20\u6F2C\u6F0F\u6F02\u6F22\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6EFF"+
-            "\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B"+
-            "\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7"+
-            "\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292"+
-            "\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D"+
-            "\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1"+
-            "\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7"+
-            "\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31"+
-            "\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75"+
-            "\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9"+
-            "\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0"+
-            "\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5"+
-            "\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC\u7F70\u7FE0\u7FE1"+
-            "\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188"+
-            "\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E"+
-            "\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2"+
-            "\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1"+
-            "\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718"+
-            "\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8"+
-            "\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3"+
-            "\u8A8D\u8AA1\u8A93\u8AA4\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u8AAA\u8AA5"+
-            "\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C"+
-            "\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14"+
-            "\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063"+
-            "\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E"+
-            "\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298"+
-            "\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1"+
-            "\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B"+
-            "\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818"+
-            "\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF"+
-            "\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC"+
-            "\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102"+
-            "\u5108\u5109\u5105\u51DC\u5287\u5288\u5289\u528D"+
-            "\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F"+
-            "\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F"+
-            "\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9"+
-            "\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08"+
-            "\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94"+
-            "\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3"+
-            "\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E"+
-            "\u615D\u6155\u6182\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u617C\u6170\u616B"+
-            "\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4"+
-            "\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2"+
-            "\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492"+
-            "\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3"+
-            "\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23"+
-            "\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13"+
-            "\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E"+
-            "\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66"+
-            "\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A"+
-            "\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F"+
-            "\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357"+
-            "\u7469\u748B\u7483\u747E\u7480\u757F\u7620\u7629"+
-            "\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4"+
-            "\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA"+
-            "\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40"+
-            "\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4"+
-            "\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0"+
-            "\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3"+
-            "\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75"+
-            "\u7F77\u7FAF\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\u7FE9\u8026\u819B\u819C"+
-            "\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE"+
-            "\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC"+
-            "\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766"+
-            "\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D"+
-            "\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2"+
-            "\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2"+
-            "\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C"+
-            "\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED"+
-            "\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3"+
-            "\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21"+
-            "\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A"+
-            "\u8F1C\u8F1E\u8F25\u9069\u906E\u9068\u906D\u9077"+
-            "\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183"+
-            "\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3"+
-            "\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704"+
-            "\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821"+
-            "\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD"+
-            "\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7"+
-            "\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06"+
-            "\u9D09\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\u9D03\u9EA9\u9EBE\u9ECE\u58A8"+
-            "\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA"+
-            "\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669"+
-            "\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C"+
-            "\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D"+
-            "\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9"+
-            "\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5"+
-            "\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2"+
-            "\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9"+
-            "\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59"+
-            "\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47"+
-            "\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1"+
-            "\u6FA1\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9"+
-            "\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2"+
-            "\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4"+
-            "\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C"+
-            "\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E"+
-            "\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D"+
-            "\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9"+
-            "\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D"+
-            "\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028"+
-            "\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A"+
-            "\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A"+
-            "\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A"+
-            "\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA"+
-            "\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01"+
-            "\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D"+
-            "\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35"+
-            "\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074"+
-            "\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336"+
-            "\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A";
-
-        private final static String innerIndex2=
-            "\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7"+
-            "\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713"+
-            "\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B"+
-            "\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B"+
-            "\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB"+
-            "\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12"+
-            "\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121"+
-            "\u5132\u52F5\u568E\u5680\u5690\u5685\u5687\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A"+
-            "\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8"+
-            "\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB"+
-            "\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6"+
-            "\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6"+
-            "\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E"+
-            "\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8"+
-            "\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80"+
-            "\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF"+
-            "\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235"+
-            "\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646"+
-            "\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC\u77A7"+
-            "\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7"+
-            "\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C"+
-            "\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD"+
-            "\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D"+
-            "\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F"+
-            "\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F"+
-            "\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD"+
-            "\u81C9\u81BE\u81E8\u8209\u8271\u85AA\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587"+
-            "\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6"+
-            "\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944"+
-            "\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A"+
-            "\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA"+
-            "\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48"+
-            "\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D"+
-            "\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C"+
-            "\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318"+
-            "\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB"+
-            "\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E"+
-            "\u97A0\u97D3\u9846\u98B6\u9935\u9A01\u99FF\u9BAE"+
-            "\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE"+
-            "\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE"+
-            "\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2"+
-            "\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726"+
-            "\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF"+
-            "\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA"+
-            "\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375"+
-            "\u74A7\u74BF\u7515\u7656\u7658\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u7652"+
-            "\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62"+
-            "\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23"+
-            "\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52"+
-            "\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF"+
-            "\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA"+
-            "\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2"+
-            "\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59"+
-            "\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D"+
-            "\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A"+
-            "\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A"+
-            "\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9"+
-            "\u96DB\u96DE\u9724\u97A3\u97A6\u97AD\u97F9\u984D"+
-            "\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D"+
-            "\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E"+
-            "\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D"+
-            "\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF"+
-            "\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5"+
-            "\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3"+
-            "\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206"+
-            "\u720D\u7258\u72A2\u7378\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u737A\u74BD"+
-            "\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919"+
-            "\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37"+
-            "\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73"+
-            "\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5"+
-            "\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE"+
-            "\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49"+
-            "\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C"+
-            "\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E"+
-            "\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF"+
-            "\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8"+
-            "\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727"+
-            "\u9761\u97DC\u97FB\u985E\u9858\u985B\u98BC\u9945"+
-            "\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB"+
-            "\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93"+
-            "\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4"+
-            "\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518"+
-            "\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032"+
-            "\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C"+
-            "\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0"+
-            "\u8FAE\u7E7D\u7E7C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u7E82\u7F4C\u8000"+
-            "\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B"+
-            "\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70"+
-            "\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89"+
-            "\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD"+
-            "\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30"+
-            "\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F"+
-            "\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2"+
-            "\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595"+
-            "\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7"+
-            "\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC"+
-            "\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A"+
-            "\u896C\u89BD\u8B74\u8B77\u8B7D\u8D13\u8E8A\u8E8D"+
-            "\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A"+
-            "\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF"+
-            "\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF"+
-            "\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8"+
-            "\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B"+
-            "\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF"+
-            "\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A"+
-            "\u766E\u766C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\u79B3\u7C60\u7C5F\u807E"+
-            "\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17"+
-            "\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D"+
-            "\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2"+
-            "\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34"+
-            "\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B"+
-            "\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65"+
-            "\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A"+
-            "\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C"+
-            "\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57"+
-            "\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E"+
-            "\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862"+
-            "\u8B93\u8B92\u8B96\u8277\u8D1B\u91C0\u946A\u9742"+
-            "\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F"+
-            "\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3"+
-            "\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1"+
-            "\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064"+
-            "\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C"+
-            "\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7"+
-            "\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E"+
-            "\u7C72\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\u30FE\u309D\u309E\u3005\u3041"+
-            "\u3042\u3043\u3044\u3045\u3046\u3047\u3048\u3049"+
-            "\u304A\u304B\u304C\u304D\u304E\u304F\u3050\u3051"+
-            "\u3052\u3053\u3054\u3055\u3056\u3057\u3058\u3059"+
-            "\u305A\u305B\u305C\u305D\u305E\u305F\u3060\u3061"+
-            "\u3062\u3063\u3064\u3065\u3066\u3067\u3068\u3069"+
-            "\u306A\u306B\u306C\u306D\u306E\u306F\u3070\u3071"+
-            "\u3072\u3073\u3074\u3075\u3076\u3077\u3078\u3079"+
-            "\u307A\u307B\u307C\u307D\u307E\u307F\u3080\u3081"+
-            "\u3082\u3083\u3084\u3085\u3086\u3087\u3088\u3089"+
-            "\u308A\u308B\u308C\u308D\u308E\u308F\u3090\u3091"+
-            "\u3092\u3093\u30A1\u30A2\u30A3\u30A4\u30A5\u30A6"+
-            "\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC\u30AD\u30AE"+
-            "\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4\u30B5\u30B6"+
-            "\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC\u30BD\u30BE"+
-            "\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4\u30C5\u30C6"+
-            "\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC\u30CD\u30CE"+
-            "\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4\u30D5\u30D6"+
-            "\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC\u30DD\u30DE"+
-            "\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4\u30E5\u30E6"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC"+
-            "\u30ED\u30EE\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4"+
-            "\u30F5\u30F6\u0414\u0415\u0401\u0416\u0417\u0418"+
-            "\u0419\u041A\u041B\u041C\u0423\u0424\u0425\u0426"+
-            "\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E"+
-            "\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0451"+
-            "\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D"+
-            "\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445"+
-            "\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D"+
-            "\u044E\u044F\u2460\u2461\u2462\u2463\u2464\u2465"+
-            "\u2466\u2467\u2468\u2469\u2474\u2475\u2476\u2477"+
-            "\u2478\u2479\u247A\u247B\u247C\u247D\uFFFD\uFFFD"+
-            "\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47"+
-            "\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E"+
-            "\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C"+
-            "\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3"+
-            "\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9"+
-            "\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723"+
-            "\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73"+
-            "\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A"+
-            "\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14"+
-            "\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22"+
-            "\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210"+
-            "\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF"+
-            "\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B"+
-            "\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A"+
-            "\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74"+
-            "\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266"+
-            "\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E"+
-            "\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18"+
-            "\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B\u6C4C"+
-            "\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75"+
-            "\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E"+
-            "\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620"+
-            "\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E"+
-            "\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F"+
-            "\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE"+
-            "\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A"+
-            "\u5454\u5445\u5419\u541C\u5425\u5418\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7"+
-            "\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906"+
-            "\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990"+
-            "\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D"+
-            "\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93"+
-            "\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88"+
-            "\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0"+
-            "\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA"+
-            "\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C"+
-            "\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270"+
-            "\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0"+
-            "\u65F4\u65F3\u65F2\u65F5\u6745\u6747\u6759\u6755"+
-            "\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19"+
-            "\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71"+
-            "\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66"+
-            "\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF"+
-            "\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397"+
-            "\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681"+
-            "\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290"+
-            "\u828F\u8285\u828E\u8291\u8293\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u828A"+
-            "\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5"+
-            "\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33"+
-            "\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74"+
-            "\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79"+
-            "\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82"+
-            "\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232"+
-            "\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392"+
-            "\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B"+
-            "\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F"+
-            "\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9"+
-            "\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780"+
-            "\u5775\u577B\u5773\u5774\u5762\u5768\u577D\u590C"+
-            "\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1"+
-            "\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8"+
-            "\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47"+
-            "\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F"+
-            "\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6"+
-            "\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23"+
-            "\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D"+
-            "\u6026\u6019\u6032\u600B\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6034\u600A"+
-            "\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010"+
-            "\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D"+
-            "\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE"+
-            "\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8"+
-            "\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603"+
-            "\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A"+
-            "\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786"+
-            "\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799"+
-            "\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80"+
-            "\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9"+
-            "\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA"+
-            "\u6CC3\u6CC6\u6CED\u6CF2\u6CD2\u6CDD\u6CB4\u6C8A"+
-            "\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0"+
-            "\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093"+
-            "\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A"+
-            "\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA"+
-            "\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0"+
-            "\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C"+
-            "\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC"+
-            "\u77F9\u77FB\u77FA\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u77F7\u7942\u793F"+
-            "\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F"+
-            "\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0"+
-            "\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC"+
-            "\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4"+
-            "\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56"+
-            "\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2"+
-            "\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A"+
-            "\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1"+
-            "\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6"+
-            "\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2"+
-            "\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1"+
-            "\u54AD\u54A5\u54CF\u54C3\u830D\u54B7\u54AE\u54D6"+
-            "\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE"+
-            "\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C"+
-            "\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5"+
-            "\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE"+
-            "\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4"+
-            "\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE"+
-            "\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7"+
-            "\u5CCB\u5CDB\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\u5CDE\u5CDA\u5CC9\u5CC7"+
-            "\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE"+
-            "\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24"+
-            "\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E"+
-            "\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045"+
-            "\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F"+
-            "\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF"+
-            "\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F"+
-            "\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315"+
-            "\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621"+
-            "\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A"+
-            "\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2"+
-            "\u67C8\u67BA\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7"+
-            "\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7"+
-            "\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0"+
-            "\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB"+
-            "\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82"+
-            "\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28"+
-            "\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA"+
-            "\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D"+
-            "\u6D42\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\u6D01\u6D18\u6D37\u6D03\u6D0F"+
-            "\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10"+
-            "\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5"+
-            "\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E"+
-            "\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3"+
-            "\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5"+
-            "\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8"+
-            "\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA"+
-            "\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7"+
-            "\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805"+
-            "\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C"+
-            "\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE"+
-            "\u7A80\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79"+
-            "\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91"+
-            "\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8"+
-            "\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3"+
-            "\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6"+
-            "\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307"+
-            "\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC"+
-            "\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\u82E4\u82E0\u82FA\u82F3\u82ED\u8677"+
-            "\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869"+
-            "\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0"+
-            "\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB"+
-            "\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A"+
-            "\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B"+
-            "\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017"+
-            "\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A"+
-            "\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261"+
-            "\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E"+
-            "\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4"+
-            "\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1";
-
-        private final static String innerIndex3=
-            "\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B"+
-            "\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6"+
-            "\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9"+
-            "\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15"+
-            "\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD"+
-            "\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1"+
-            "\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA"+
-            "\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\u6041\u60A2\u6088\u6080\u6092\u6081\u609D"+
-            "\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219"+
-            "\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336"+
-            "\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341"+
-            "\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A"+
-            "\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6"+
-            "\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712"+
-            "\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B"+
-            "\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F"+
-            "\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828"+
-            "\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D"+
-            "\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4\u6BE8"+
-            "\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76"+
-            "\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91"+
-            "\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97"+
-            "\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B"+
-            "\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75"+
-            "\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2"+
-            "\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6"+
-            "\u70C7\u70DA\u70CE\u70E1\u7242\u7278\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3"+
-            "\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7"+
-            "\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA"+
-            "\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521"+
-            "\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF"+
-            "\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713"+
-            "\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727"+
-            "\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B"+
-            "\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F"+
-            "\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE"+
-            "\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85"+
-            "\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10\u7B04\u7B13"+
-            "\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84"+
-            "\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D"+
-            "\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F"+
-            "\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96"+
-            "\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA"+
-            "\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F"+
-            "\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356"+
-            "\u833F\u8341\u8326\u831C\u8322\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u8342"+
-            "\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324"+
-            "\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353"+
-            "\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2"+
-            "\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686"+
-            "\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695"+
-            "\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D"+
-            "\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883"+
-            "\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4"+
-            "\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3"+
-            "\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6"+
-            "\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8"+
-            "\u90DB\u90D7\u90DC\u90E4\u9150\u914E\u914F\u91D5"+
-            "\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F"+
-            "\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B"+
-            "\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062"+
-            "\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046"+
-            "\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D"+
-            "\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576"+
-            "\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536"+
-            "\u5535\u5530\u5552\u5545\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u550C\u5532"+
-            "\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B"+
-            "\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4"+
-            "\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF"+
-            "\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E"+
-            "\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0"+
-            "\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E"+
-            "\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53"+
-            "\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48"+
-            "\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47"+
-            "\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0"+
-            "\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28"+
-            "\u5D0D\u5D26\u5D25\u5D0F\u5D30\u5D12\u5D23\u5D1F"+
-            "\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3"+
-            "\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086"+
-            "\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9"+
-            "\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3"+
-            "\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD"+
-            "\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387"+
-            "\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C"+
-            "\u63A4\u633B\u639F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6378\u6385\u6381"+
-            "\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B"+
-            "\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C"+
-            "\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC"+
-            "\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C"+
-            "\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896"+
-            "\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C"+
-            "\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F"+
-            "\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3"+
-            "\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00"+
-            "\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD"+
-            "\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5"+
-            "\u6DC2\u6DCF\u6DC9\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7"+
-            "\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4"+
-            "\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106"+
-            "\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E"+
-            "\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318"+
-            "\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8"+
-            "\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC"+
-            "\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE"+
-            "\u75D2\u75CF\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\u75CB\u75CC\u75D1\u75D0"+
-            "\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732"+
-            "\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852"+
-            "\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964"+
-            "\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA"+
-            "\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47"+
-            "\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A"+
-            "\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A"+
-            "\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38"+
-            "\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E"+
-            "\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D"+
-            "\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF"+
-            "\u7FC9\u801F\u801E\u801B\u8047\u8043\u8048\u8118"+
-            "\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121"+
-            "\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A"+
-            "\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A"+
-            "\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375"+
-            "\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA"+
-            "\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F"+
-            "\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF"+
-            "\u86B7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\u86C2\u86C1\u86C5\u86BA\u86B0"+
-            "\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC"+
-            "\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2"+
-            "\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899"+
-            "\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982"+
-            "\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39"+
-            "\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79"+
-            "\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD"+
-            "\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C"+
-            "\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3"+
-            "\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153"+
-            "\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9"+
-            "\u91EA\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588"+
-            "\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804"+
-            "\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3"+
-            "\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082"+
-            "\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591"+
-            "\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588"+
-            "\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C"+
-            "\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\u5819\u581E\u5827\u5823\u5828\u57F5"+
-            "\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E"+
-            "\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94"+
-            "\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5"+
-            "\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83"+
-            "\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93"+
-            "\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE"+
-            "\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F"+
-            "\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D"+
-            "\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32"+
-            "\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5"+
-            "\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"+
-            "\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC"+
-            "\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104"+
-            "\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8"+
-            "\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5"+
-            "\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4"+
-            "\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0"+
-            "\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568"+
-            "\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\u667C\u666C\u667B\u6680\u6671\u6679\u666A"+
-            "\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC"+
-            "\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6"+
-            "\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970"+
-            "\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD"+
-            "\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD"+
-            "\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915"+
-            "\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97"+
-            "\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC"+
-            "\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45"+
-            "\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33"+
-            "\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E\u6E68"+
-            "\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39"+
-            "\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77"+
-            "\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120"+
-            "\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122"+
-            "\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288"+
-            "\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322"+
-            "\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335"+
-            "\u730C\u742E\u742C\u7430\u742B\u7416\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429"+
-            "\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA"+
-            "\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692"+
-            "\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E"+
-            "\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C"+
-            "\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E"+
-            "\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03"+
-            "\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44"+
-            "\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E"+
-            "\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67"+
-            "\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69"+
-            "\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65\u7F66\u7FA2"+
-            "\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4"+
-            "\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A"+
-            "\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D"+
-            "\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8"+
-            "\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8"+
-            "\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF"+
-            "\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F"+
-            "\u83DE\u8411\u8406\u83C2\u83F3\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u83D5"+
-            "\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE"+
-            "\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8"+
-            "\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB"+
-            "\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856"+
-            "\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6"+
-            "\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998"+
-            "\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59"+
-            "\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51"+
-            "\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE"+
-            "\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3"+
-            "\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8"+
-            "\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA\u8EF9\u8EE6\u8EEE"+
-            "\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC"+
-            "\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104"+
-            "\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107"+
-            "\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201"+
-            "\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200"+
-            "\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C"+
-            "\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C"+
-            "\u9590\u9687\u967E\u9688\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u9689\u9683"+
-            "\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770"+
-            "\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84"+
-            "\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4"+
-            "\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9"+
-            "\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3"+
-            "\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4"+
-            "\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2"+
-            "\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853"+
-            "\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E"+
-            "\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC"+
-            "\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0"+
-            "\u5ABF\u5AC8\u5ABB\u5AC6\u5AB7\u5AC0\u5ACA\u5AB4"+
-            "\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F"+
-            "\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E"+
-            "\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D"+
-            "\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF"+
-            "\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132"+
-            "\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168"+
-            "\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412"+
-            "\u6409\u6420\u6424\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6433\u6443\u641F"+
-            "\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426"+
-            "\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440"+
-            "\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E"+
-            "\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B"+
-            "\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938"+
-            "\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942"+
-            "\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933"+
-            "\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F"+
-            "\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B"+
-            "\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B"+
-            "\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B"+
-            "\uFA0D\u6BFB\u6BFC\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6"+
-            "\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1"+
-            "\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7"+
-            "\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC"+
-            "\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF"+
-            "\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154"+
-            "\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178"+
-            "\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F"+
-            "\u7150\u7153\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\u7144\u714D\u715A\u724F"+
-            "\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B"+
-            "\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452"+
-            "\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446"+
-            "\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579"+
-            "\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC"+
-            "\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD"+
-            "\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756"+
-            "\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887"+
-            "\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1"+
-            "\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982"+
-            "\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15"+
-            "\u7A22\u7A13\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB"+
-            "\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73"+
-            "\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4"+
-            "\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A"+
-            "\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D"+
-            "\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5"+
-            "\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C"+
-            "\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167"+
-            "\u816F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\u8144\u8161\u821D\u8249\u8244"+
-            "\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479"+
-            "\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430"+
-            "\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507"+
-            "\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432"+
-            "\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F"+
-            "\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E"+
-            "\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B"+
-            "\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C"+
-            "\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701"+
-            "\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE"+
-            "\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5"+
-            "\u89E4\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86"+
-            "\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83"+
-            "\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64"+
-            "\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91"+
-            "\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92"+
-            "\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3"+
-            "\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01"+
-            "\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\u9044\u9049\u903D\u9110\u910D\u910F"+
-            "\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248"+
-            "\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283"+
-            "\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267"+
-            "\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250"+
-            "\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C"+
-            "\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA"+
-            "\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F"+
-            "\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0"+
-            "\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80"+
-            "\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA"+
-            "\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0";
-
-        private final static String innerIndex4=
-            "\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627"+
-            "\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613"+
-            "\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C"+
-            "\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A"+
-            "\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894"+
-            "\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA"+
-            "\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC"+
-            "\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A"+
-            "\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D"+
-            "\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7"+
-            "\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43"+
-            "\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173"+
-            "\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A"+
-            "\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227"+
-            "\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472"+
-            "\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E"+
-            "\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C"+
-            "\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0"+
-            "\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9\u69A0"+
-            "\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E"+
-            "\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD"+
-            "\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993"+
-            "\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5"+
-            "\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0"+
-            "\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25"+
-            "\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A"+
-            "\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C"+
-            "\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6"+
-            "\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08"+
-            "\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F"+
-            "\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295"+
-            "\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471"+
-            "\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D"+
-            "\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614"+
-            "\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F"+
-            "\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E"+
-            "\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998"+
-            "\u798A\u798B\u7996\u7995\u7994\u7993\u7997\u7988"+
-            "\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26"+
-            "\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91"+
-            "\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98"+
-            "\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA"+
-            "\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5"+
-            "\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9"+
-            "\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9"+
-            "\u7F73\u7FE2\u7FE3\u7FE5\u7FDE\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u8024"+
-            "\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C"+
-            "\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE"+
-            "\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD"+
-            "\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2"+
-            "\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6"+
-            "\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB"+
-            "\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740"+
-            "\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741"+
-            "\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712"+
-            "\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724"+
-            "\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA"+
-            "\u88FE\u88EE\u88FC\u88F6\u88FB\u88F0\u88EC\u88EB"+
-            "\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB"+
-            "\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69"+
-            "\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D"+
-            "\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00"+
-            "\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120"+
-            "\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A"+
-            "\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A"+
-            "\u92A0\u9294\u92AA\u928D\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u92A6\u929A"+
-            "\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282"+
-            "\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C"+
-            "\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D"+
-            "\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783"+
-            "\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD"+
-            "\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C"+
-            "\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1"+
-            "\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1"+
-            "\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106"+
-            "\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B"+
-            "\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641"+
-            "\u564A\u5649\u5646\u5658\u565A\u5640\u5633\u563D"+
-            "\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D"+
-            "\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF"+
-            "\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02"+
-            "\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97"+
-            "\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1"+
-            "\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB"+
-            "\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1"+
-            "\u61B0\u61A2\u6189\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u619B\u6193\u61AF"+
-            "\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3"+
-            "\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C"+
-            "\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1"+
-            "\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5"+
-            "\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06"+
-            "\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF"+
-            "\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE"+
-            "\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D"+
-            "\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6"+
-            "\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2"+
-            "\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E"+
-            "\u6F87\u6FC6\u6F92\u6F8D\u6F89\u6F8C\u6F62\u6F4F"+
-            "\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72"+
-            "\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61"+
-            "\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F"+
-            "\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B"+
-            "\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E"+
-            "\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A"+
-            "\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361"+
-            "\u735A\u7359\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\u7362\u7487\u7489\u748A"+
-            "\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508"+
-            "\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623"+
-            "\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D"+
-            "\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1"+
-            "\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1"+
-            "\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4"+
-            "\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9"+
-            "\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB"+
-            "\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6"+
-            "\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD"+
-            "\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067"+
-            "\u81A3\u819F\u819E\u8195\u81A2\u8199\u8197\u8216"+
-            "\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B"+
-            "\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A"+
-            "\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4"+
-            "\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512"+
-            "\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502"+
-            "\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0"+
-            "\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F"+
-            "\u8662\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\u8756\u8763\u8764\u8777\u87E1"+
-            "\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751"+
-            "\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F"+
-            "\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775"+
-            "\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B"+
-            "\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909"+
-            "\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6"+
-            "\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE"+
-            "\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E"+
-            "\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD"+
-            "\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25"+
-            "\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26"+
-            "\u8E27\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A"+
-            "\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17"+
-            "\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129"+
-            "\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181"+
-            "\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9"+
-            "\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD"+
-            "\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6"+
-            "\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\u92B5\u92E1\u92C6\u92B4\u957C\u95AC"+
-            "\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708"+
-            "\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E"+
-            "\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2"+
-            "\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC"+
-            "\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8"+
-            "\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2"+
-            "\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76"+
-            "\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD"+
-            "\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05"+
-            "\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117"+
-            "\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"+
-            "\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C"+
-            "\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC"+
-            "\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10"+
-            "\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1"+
-            "\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2"+
-            "\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9"+
-            "\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8"+
-            "\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF"+
-            "\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533"+
-            "\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB"+
-            "\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66"+
-            "\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76"+
-            "\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A"+
-            "\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C"+
-            "\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54"+
-            "\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03"+
-            "\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8"+
-            "\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5"+
-            "\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8\u6FA2"+
-            "\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2"+
-            "\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA"+
-            "\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB"+
-            "\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B"+
-            "\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1"+
-            "\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C"+
-            "\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1"+
-            "\u779C\u779B\u77A2\u77A3\u7795\u7799\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB"+
-            "\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48"+
-            "\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3"+
-            "\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4"+
-            "\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4"+
-            "\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F"+
-            "\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B"+
-            "\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B"+
-            "\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1"+
-            "\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4"+
-            "\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556"+
-            "\u8545\u856B\u854D\u8553\u8561\u8558\u8540\u8546"+
-            "\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E"+
-            "\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560"+
-            "\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665"+
-            "\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781"+
-            "\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791"+
-            "\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926"+
-            "\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923"+
-            "\u892F\u892C\u891F\u89F1\u8AE0\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u8AE2"+
-            "\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0"+
-            "\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91"+
-            "\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C"+
-            "\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45"+
-            "\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36"+
-            "\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079"+
-            "\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190"+
-            "\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306"+
-            "\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301"+
-            "\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325"+
-            "\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329"+
-            "\u9339\u9335\u932A\u9314\u930C\u930B\u92FE\u9309"+
-            "\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA"+
-            "\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712"+
-            "\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F"+
-            "\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC"+
-            "\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9"+
-            "\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33"+
-            "\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93"+
-            "\u9B92\u9B90\u9B7A\u9B95\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u9B7D\u9B88"+
-            "\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18"+
-            "\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE"+
-            "\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125"+
-            "\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D"+
-            "\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6"+
-            "\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C"+
-            "\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7"+
-            "\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7"+
-            "\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3"+
-            "\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2"+
-            "\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1"+
-            "\u6A9E\u6A87\u6A93\u6A8E\u6A95\u6A83\u6AA8\u6AA4"+
-            "\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B"+
-            "\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC"+
-            "\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8"+
-            "\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373"+
-            "\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD"+
-            "\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584"+
-            "\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB"+
-            "\u77B2\u77B7\u77B6\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u77B4\u77B1\u77A8"+
-            "\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905"+
-            "\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56"+
-            "\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F"+
-            "\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3"+
-            "\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0"+
-            "\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33"+
-            "\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C"+
-            "\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E"+
-            "\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA"+
-            "\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583"+
-            "\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B"+
-            "\u85A4\u859A\u859E\u8577\u857C\u8589\u85A1\u857A"+
-            "\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D"+
-            "\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598"+
-            "\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0"+
-            "\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2"+
-            "\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF"+
-            "\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E"+
-            "\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2"+
-            "\u89F3\u8B1E\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\u8B18\u8B16\u8B11\u8B05"+
-            "\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08"+
-            "\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71"+
-            "\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53"+
-            "\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138"+
-            "\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0"+
-            "\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358"+
-            "\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F"+
-            "\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371"+
-            "\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E"+
-            "\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE"+
-            "\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A"+
-            "\u97A1\u979C\u979E\u979D\u97D5\u97D4\u97F1\u9841"+
-            "\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C"+
-            "\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998"+
-            "\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8"+
-            "\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE"+
-            "\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B"+
-            "\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF"+
-            "\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38"+
-            "\u9D30\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\u9D45\u9D42\u9D43\u9D3E\u9D37"+
-            "\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0"+
-            "\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54"+
-            "\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A"+
-            "\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D"+
-            "\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0"+
-            "\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501"+
-            "\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5"+
-            "\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7"+
-            "\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D"+
-            "\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026"+
-            "\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD"+
-            "\u7376\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB"+
-            "\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653"+
-            "\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF"+
-            "\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD"+
-            "\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D"+
-            "\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50"+
-            "\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57"+
-            "\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\u81D0\u825F\u825E\u85B4\u85C6\u85C0"+
-            "\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF"+
-            "\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624"+
-            "\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB"+
-            "\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC"+
-            "\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801"+
-            "\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946"+
-            "\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30"+
-            "\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37"+
-            "\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42"+
-            "\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00"+
-            "\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67";
-
-        private final static String innerIndex5=
-            "\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47"+
-            "\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5"+
-            "\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B"+
-            "\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395"+
-            "\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4"+
-            "\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3"+
-            "\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722"+
-            "\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA"+
-            "\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F"+
-            "\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07"+
-            "\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35"+
-            "\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1"+
-            "\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C"+
-            "\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C"+
-            "\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C"+
-            "\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29"+
-            "\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4"+
-            "\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD"+
-            "\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70\u5FBF"+
-            "\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584"+
-            "\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9"+
-            "\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE"+
-            "\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B"+
-            "\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A"+
-            "\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4"+
-            "\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660"+
-            "\u77C9\u77CA\u77C4\u77F1\u791D\u791B\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33"+
-            "\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75"+
-            "\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68"+
-            "\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078"+
-            "\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED"+
-            "\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8"+
-            "\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF"+
-            "\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809"+
-            "\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802"+
-            "\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D"+
-            "\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A"+
-            "\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55\u8B51\u8B42"+
-            "\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07"+
-            "\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73"+
-            "\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50"+
-            "\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7"+
-            "\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9"+
-            "\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4"+
-            "\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1"+
-            "\u9729\u972B\u972C\u9728\u9726\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u97B3"+
-            "\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D"+
-            "\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943"+
-            "\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B"+
-            "\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2"+
-            "\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0"+
-            "\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC"+
-            "\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81"+
-            "\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B"+
-            "\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85"+
-            "\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68"+
-            "\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D"+
-            "\u9F56\u9F57\u9F58\u5337\u56B2\u56B5\u56B3\u58E3"+
-            "\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9"+
-            "\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4"+
-            "\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF"+
-            "\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038"+
-            "\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213"+
-            "\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE"+
-            "\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923"+
-            "\u7927\u7928\u7924\u7929\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u79B2\u7A6E"+
-            "\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45"+
-            "\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079"+
-            "\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601"+
-            "\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C"+
-            "\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963"+
-            "\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63"+
-            "\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59"+
-            "\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141"+
-            "\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420"+
-            "\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D"+
-            "\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA"+
-            "\u9409\u93F8\u940A\u93FF\u93FC\u940C\u93F6\u9411"+
-            "\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB"+
-            "\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2"+
-            "\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34"+
-            "\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D"+
-            "\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08"+
-            "\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06"+
-            "\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92"+
-            "\u9D98\u9D90\u9D9B\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u9DA0\u9D94\u9D9C"+
-            "\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3"+
-            "\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A"+
-            "\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60"+
-            "\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297"+
-            "\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1"+
-            "\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043"+
-            "\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A"+
-            "\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F"+
-            "\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86"+
-            "\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626"+
-            "\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620"+
-            "\u8629\u861E\u8625\u8829\u881D\u881B\u8820\u8824"+
-            "\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA"+
-            "\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF"+
-            "\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145"+
-            "\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430"+
-            "\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4"+
-            "\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6"+
-            "\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42"+
-            "\u9A41\u9A3A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\u9A3F\u9ACD\u9B15\u9B17"+
-            "\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C"+
-            "\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC"+
-            "\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB"+
-            "\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD"+
-            "\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE"+
-            "\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64"+
-            "\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C"+
-            "\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B"+
-            "\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E"+
-            "\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D"+
-            "\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59"+
-            "\u7C5B\u7C5A\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE"+
-            "\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C"+
-            "\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB"+
-            "\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95"+
-            "\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62"+
-            "\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445"+
-            "\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB"+
-            "\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48"+
-            "\u9A4A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\u9A49\u9A52\u9A50\u9AD0\u9B19"+
-            "\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44"+
-            "\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D"+
-            "\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC"+
-            "\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5"+
-            "\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B"+
-            "\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D"+
-            "\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525"+
-            "\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A"+
-            "\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66"+
-            "\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B"+
-            "\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973"+
-            "\u89FE\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98"+
-            "\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E"+
-            "\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20"+
-            "\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59"+
-            "\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8"+
-            "\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2"+
-            "\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2"+
-            "\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD"+
-            "\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061"+
-            "\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7"+
-            "\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837"+
-            "\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D"+
-            "\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746"+
-            "\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63"+
-            "\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07"+
-            "\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD"+
-            "\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4"+
-            "\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226"+
-            "\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"+
-            "\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648"+
-            "\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5"+
-            "\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749"+
-            "\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10"+
-            "\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78"+
-            "\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2"+
-            "\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74"+
-            "\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D"+
-            "\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874"+
-            "\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15"+
-            "\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482"+
-            "\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B"+
-            "\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D"+
-            "\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD";
-
-        private final static short index1[] = {
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-            16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-            32, 33, 34, 35, 36, 37, 38, 39, 0, 40, 41, 42, 43, 44, 45, 46,
-            47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
-            63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
-            79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 0, 0, 0, 0, 0, 0
-        };
-
-        static String index2[] = {
-            innerIndex0,
-            innerIndex1,
-            innerIndex2,
-            innerIndex3,
-            innerIndex4,
-            innerIndex5
-        };
-
-        public Decoder(Charset cs) {
-            super(cs,
-                  index1,
-                  index2,
-                  0x40,
-                  0xFE);
-        }
-    }
-
-    protected static class Encoder extends DoubleByteEncoder {
-        private final static String innerIndex0=
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA246\uA247\u0000\uA244\u0000\uA1B1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA258\uA1D3\u0000\u0000\u0000\u0000\u0000\uA150"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA1D1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA1D2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA3BE"+
-            "\u0000\uA3BC\uA3BD\uA3BF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA3BB\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA344\uA345\uA346\uA347\uA348\uA349\uA34A"+
-            "\uA34B\uA34C\uA34D\uA34E\uA34F\uA350\uA351\uA352"+
-            "\uA353\uA354\u0000\uA355\uA356\uA357\uA358\uA359"+
-            "\uA35A\uA35B\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA35C\uA35D\uA35E\uA35F\uA360\uA361\uA362"+
-            "\uA363\uA364\uA365\uA366\uA367\uA368\uA369\uA36A"+
-            "\uA36B\uA36C\u0000\uA36D\uA36E\uA36F\uA370\uA371"+
-            "\uA372\uA373\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uC7B3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uC7B1\uC7B2\uC7B4\uC7B5"+
-            "\uC7B6\uC7B7\uC7B8\uC7B9\uC7BA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uC7BB\uC7BC\uC7BD\uC7BE\uC7BF"+
-            "\uC7C0\uC7C1\uC7C2\uC7C3\uC7C4\uC7C5\uC7C6\uC7C7"+
-            "\uC7C8\uC7C9\uC7CA\uC7CB\uC7CC\uC7CD\uC7CF\uC7D0"+
-            "\uC7D1\uC7D2\uC7D3\uC7D4\uC7D5\uC7D6\uC7D7\uC7D8"+
-            "\uC7D9\uC7DA\uC7DB\uC7DC\uC7DD\uC7DE\uC7DF\uC7E0"+
-            "\uC7E1\uC7E2\uC7E3\uC7E4\uC7E5\uC7E6\uC7E7\uC7E8"+
-            "\u0000\uC7CE\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA156\uA158\u0000\u0000\u0000"+
-            "\uA1A5\uA1A6\u0000\u0000\uA1A7\uA1A8\u0000\u0000"+
-            "\u0000\u0000\uA145\u0000\u0000\uA14C\uA14B\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA1AC\u0000\u0000\uA1AB\u0000\u0000"+
-            "\u0000\u0000\u0000\uA1B0\u0000\u0000\uA1C2\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA24A\u0000\uA1C1\u0000\u0000"+
-            "\u0000\uA24B\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA2B9\uA2BA\uA2BB\uA2BC\uA2BD\uA2BE\uA2BF\uA2C0"+
-            "\uA2C1\uA2C2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA1F6\uA1F4\uA1F7\uA1F5\u0000\u0000\uA1F8\uA1F9"+
-            "\uA1FB\uA1FA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA1D4\u0000\u0000\u0000\uA1DB\uA1E8"+
-            "\uA1E7\u0000\u0000\uA1FD\u0000\uA1FC\u0000\u0000"+
-            "\u0000\uA1E4\uA1E5\uA1EC\u0000\u0000\uA1ED\u0000"+
-            "\u0000\u0000\u0000\u0000\uA1EF\uA1EE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA1E3\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA1DC\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA1DA\uA1DD\u0000\u0000\u0000\u0000\uA1D8\uA1D9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA1E6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA1E9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC7E9\uC7EA\uC7EB\uC7EC\uC7ED\uC7EE\uC7EF\uC7F0"+
-            "\uC7F1\uC7F2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uC7F3\uC7F4\uC7F5\uC7F6"+
-            "\uC7F7\uC7F8\uC7F9\uC7FA\uC7FB\uC7FC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA277\u0000\uA278\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA27A\u0000\u0000\u0000"+
-            "\uA27B\u0000\u0000\u0000\uA27C\u0000\u0000\u0000"+
-            "\uA27D\u0000\u0000\u0000\uA275\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA274\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA273\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA272\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA271\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA2A4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA2A5\u0000"+
-            "\u0000\uA2A7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA2A6\u0000\u0000\uA27E\uA2A1\uA2A3"+
-            "\uA2A2\uA2AC\uA2AD\uA2AE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA262\uA263\uA264\uA265\uA266\uA267\uA268"+
-            "\uA269\uA270\uA26F\uA26E\uA26D\uA26C\uA26B\uA26A"+
-            "\u0000\u0000\u0000\u0000\uA276\uA279\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA1BD\uA1BC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA1B6\uA1B5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA1BF\uA1BE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA1BB\uA1BA"+
-            "\u0000\u0000\u0000\uA1B3\u0000\u0000\uA1B7\uA1B4"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA2A8\uA2A9\uA2AB\uA2AA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA1B9\uA1B8\u0000"+
-            "\u0000\uA1F3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA1F0\uA1F2\uA1F1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA140\uA142\uA143\uA1B2\u0000\uC6A4\u0000\u0000"+
-            "\uA171\uA172\uA16D\uA16E\uA175\uA176\uA179\uA17A"+
-            "\uA169\uA16A\uA245\u0000\uA165\uA166\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA1A9\uA1AA\u0000"+
-            "\u0000\uA2C3\uA2C4\uA2C5\uA2C6\uA2C7\uA2C8\uA2C9"+
-            "\uA2CA\uA2CB\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uC6A5\uC6A6\uC6A7\uC6A8\uC6A9\uC6AA\uC6AB"+
-            "\uC6AC\uC6AD\uC6AE\uC6AF\uC6B0\uC6B1\uC6B2\uC6B3"+
-            "\uC6B4\uC6B5\uC6B6\uC6B7\uC6B8\uC6B9\uC6BA\uC6BB"+
-            "\uC6BC\uC6BD\uC6BE\uC6BF\uC6C0\uC6C1\uC6C2\uC6C3"+
-            "\uC6C4\uC6C5\uC6C6\uC6C7\uC6C8\uC6C9\uC6CA\uC6CB"+
-            "\uC6CC\uC6CD\uC6CE\uC6CF\uC6D0\uC6D1\uC6D2\uC6D3"+
-            "\uC6D4\uC6D5\uC6D6\uC6D7\uC6D8\uC6D9\uC6DA\uC6DB"+
-            "\uC6DC\uC6DD\uC6DE\uC6DF\uC6E0\uC6E1\uC6E2\uC6E3"+
-            "\uC6E4\uC6E5\uC6E6\uC6E7\uC6E8\uC6E9\uC6EA\uC6EB"+
-            "\uC6EC\uC6ED\uC6EE\uC6EF\uC6F0\uC6F1\uC6F2\uC6F3"+
-            "\uC6F4\uC6F5\uC6F6\uC6F7\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC6A2\uC6A3\u0000"+
-            "\u0000\uC6F8\uC6F9\uC6FA\uC6FB\uC6FC\uC6FD\uC6FE"+
-            "\uC740\uC741\uC742\uC743\uC744\uC745\uC746\uC747"+
-            "\uC748\uC749\uC74A\uC74B\uC74C\uC74D\uC74E\uC74F"+
-            "\uC750\uC751\uC752\uC753\uC754\uC755\uC756\uC757"+
-            "\uC758\uC759\uC75A\uC75B\uC75C\uC75D\uC75E\uC75F"+
-            "\uC760\uC761\uC762\uC763\uC764\uC765\uC766\uC767"+
-            "\uC768\uC769\uC76A\uC76B\uC76C\uC76D\uC76E\uC76F"+
-            "\uC770\uC771\uC772\uC773\uC774\uC775\uC776\uC777"+
-            "\uC778\uC779\uC77A\uC77B\uC77C\uC77D\uC77E\uC7A1"+
-            "\uC7A2\uC7A3\uC7A4\uC7A5\uC7A6\uC7A7\uC7A8\uC7A9"+
-            "\uC7AA\uC7AB\uC7AC\uC7AD\uC7AE\uC7AF\uC7B0\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC6A1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA374\uA375\uA376"+
-            "\uA377\uA378\uA379\uA37A\uA37B\uA37C\uA37D\uA37E"+
-            "\uA3A1\uA3A2\uA3A3\uA3A4\uA3A5\uA3A6\uA3A7\uA3A8"+
-            "\uA3A9\uA3AA\uA3AB\uA3AC\uA3AD\uA3AE\uA3AF\uA3B0"+
-            "\uA3B1\uA3B2\uA3B3\uA3B4\uA3B5\uA3B6\uA3B7\uA3B8"+
-            "\uA3B9\uA3BA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA1C0\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA255\uA256"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA250\uA251\uA252\u0000"+
-            "\u0000\uA254\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA257\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA253\u0000"+
-            "\u0000\uA1EB\uA1EA\u0000\u0000\uA24F\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA440\uA442\u0000\uA443\u0000\u0000\u0000\uC945"+
-            "\uA456\uA454\uA457\uA455\uC946\uA4A3\uC94F\uC94D"+
-            "\uA4A2\uA4A1\u0000\u0000\uA542\uA541\uA540\u0000"+
-            "\uA543\uA4FE\u0000\u0000\u0000\u0000\uA5E0\uA5E1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA8C3\u0000"+
-            "\u0000\u0000\u0000\uA458\u0000\uA4A4\uC950\u0000"+
-            "\uA4A5\uC963\uA6EA\uCBB1\u0000\u0000\u0000\u0000"+
-            "\uA459\uA4A6\u0000\uA544\uC964\u0000\u0000\u0000"+
-            "\u0000\u0000\uC940\uA444\u0000\uA45B\u0000\uC947"+
-            "\uA45C\u0000\u0000\uA4A7\u0000\uA545\uA547\uA546"+
-            "\u0000\u0000\uA5E2\uA5E3\u0000\u0000\uA8C4\u0000"+
-            "\uADBC\uA441\u0000\u0000\uC941\uA445\uA45E\uA45D"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA5E4\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA8C5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uB0AE\uD44B"+
-            "\u0000\u0000\uB6C3\uDCB1\uDCB2\u0000\uA446\u0000"+
-            "\uA4A9\u0000\u0000\uA8C6\uA447\uC948\uA45F\u0000"+
-            "\u0000\uA4AA\uA4AC\uC951\uA4AD\uA4AB\u0000\u0000"+
-            "\u0000\uA5E5\u0000\uA8C7\u0000\u0000\uA8C8\uAB45"+
-            "\u0000\uA460\uA4AE\u0000\uA5E6\uA5E8\uA5E7\u0000"+
-            "\uA6EB\u0000\u0000\uA8C9\uA8CA\uAB46\uAB47\u0000"+
-            "\u0000\u0000\u0000\uADBD\u0000\u0000\uDCB3\u0000"+
-            "\u0000\uF6D6\uA448\u0000\u0000\u0000\u0000\u0000"+
-            "\uA4B0\uA4AF\uC952\uA4B1\uA4B7\u0000\uA4B2\uA4B3"+
-            "\uC954\uC953\uA4B5\uA4B6\u0000\uA4B4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA54A\uA54B\uA54C\uA54D"+
-            "\uA549\uA550\uC96A\u0000\uC966\uC969\uA551\uA561"+
-            "\u0000\uC968\u0000\uA54E\uA54F\uA548\u0000\u0000"+
-            "\uC965\uC967\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA5F5\uC9B0\uA5F2\uA5F6\uC9BA\uC9AE\uA5F3\uC9B2"+
-            "\u0000\u0000\u0000\uA5F4\u0000\uA5F7\u0000\uA5E9";
-
-        private final static String innerIndex1=
-            "\uC9B1\uA5F8\uC9B5\u0000\uC9B9\uC9B6\u0000\u0000"+
-            "\uC9B3\uA5EA\uA5EC\uA5F9\u0000\uA5EE\uC9AB\uA5F1"+
-            "\uA5EF\uA5F0\uC9BB\uC9B8\uC9AF\uA5ED\u0000\u0000"+
-            "\uC9AC\uA5EB\u0000\u0000\u0000\uC9B4\u0000\u0000"+
-            "\u0000\u0000\uC9B7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uC9AD\uCA66\u0000\uA742"+
-            "\uA6F4\u0000\u0000\uCA67\uA6F1\u0000\uA744\u0000"+
-            "\uA6F9\u0000\uA6F8\uCA5B\uA6FC\uA6F7\uCA60\uCA68"+
-            "\u0000\uCA64\u0000\uA6FA\u0000\u0000\uA6FD\uA6EE"+
-            "\uA747\uCA5D\u0000\u0000\uCBBD\uA6EC\uA743\uA6ED"+
-            "\uA6F5\uA6F6\uCA62\uCA5E\uA6FB\uA6F3\uCA5A\uA6EF"+
-            "\uCA65\uA745\uA748\uA6F2\uA740\uA746\uA6F0\uCA63"+
-            "\uA741\uCA69\uCA5C\uA6FE\uCA5F\u0000\u0000\uCA61"+
-            "\u0000\uA8D8\uCBBF\uCBCB\uA8D0\u0000\uCBCC\uA8CB"+
-            "\uA8D5\u0000\u0000\uA8CE\uCBB9\uA8D6\uCBB8\uCBBC"+
-            "\uCBC3\uCBC1\uA8DE\uA8D9\uCBB3\uCBB5\uA8DB\uA8CF"+
-            "\uCBB6\uCBC2\uCBC9\uA8D4\uCBBB\uCBB4\uA8D3\uCBB7"+
-            "\uA8D7\uCBBA\u0000\uA8D2\u0000\uA8CD\u0000\uA8DC"+
-            "\uCBC4\uA8DD\uCBC8\u0000\uCBC6\uCBCA\uA8DA\uCBBE"+
-            "\uCBB2\u0000\uCBC0\uA8D1\uCBC5\uA8CC\uCBC7\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uAB56\uAB4A"+
-            "\u0000\u0000\uCDE0\uCDE8\u0000\uAB49\uAB51\uAB5D"+
-            "\u0000\uCDEE\uCDEC\uCDE7\u0000\u0000\u0000\uAB4B"+
-            "\uCDED\uCDE3\uAB59\uAB50\uAB58\uCDDE\u0000\uCDEA"+
-            "\u0000\uCDE1\uAB54\uCDE2\u0000\uCDDD\uAB5B\uAB4E"+
-            "\uAB57\uAB4D\u0000\uCDDF\uCDE4\u0000\uCDEB\uAB55"+
-            "\uAB52\uCDE6\uAB5A\uCDE9\uCDE5\uAB4F\uAB5C\uAB53"+
-            "\uAB4C\uAB48\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uCDEF\u0000\uADD7\uADC1"+
-            "\u0000\uADD1\u0000\uADD6\uD0D0\uD0CF\uD0D4\uD0D5"+
-            "\uADC4\u0000\uADCD\u0000\u0000\u0000\uADDA\u0000"+
-            "\uADCE\u0000\u0000\u0000\u0000\uD0C9\uADC7\uD0CA"+
-            "\u0000\uADDC\u0000\uADD3\uADBE\uADBF\uD0DD\uB0BF"+
-            "\u0000\uADCC\uADCB\uD0CB\uADCF\uD45B\uADC6\uD0D6"+
-            "\uADD5\uADD4\uADCA\uD0CE\uD0D7\u0000\uD0C8\uADC9"+
-            "\uD0D8\uADD2\uD0CC\uADC0\u0000\uADC3\uADC2\uD0D9"+
-            "\uADD0\uADC5\uADD9\uADDB\uD0D3\uADD8\u0000\uD0DB"+
-            "\uD0CD\uD0DC\u0000\uD0D1\u0000\uD0DA\u0000\uD0D2"+
-            "\u0000\u0000\u0000\u0000\uADC8\u0000\u0000\u0000"+
-            "\uD463\uD457\u0000\uB0B3\u0000\uD45C\uD462\uB0B2"+
-            "\uD455\uB0B6\uD459\uD452\uB0B4\uD456\uB0B9\uB0BE"+
-            "\u0000\uD467\u0000\uD451\u0000\uB0BA\u0000\uD466"+
-            "\u0000\u0000\uB0B5\uD458\uB0B1\uD453\uD44F\uD45D"+
-            "\uD450\uD44E\uD45A\uD460\uD461\uB0B7\u0000\u0000"+
-            "\uD85B\uD45E\uD44D\uD45F\u0000\uB0C1\uD464\uB0C0"+
-            "\uD44C\u0000\uD454\uD465\uB0BC\uB0BB\uB0B8\uB0BD"+
-            "\u0000\u0000\uB0AF\u0000\u0000\uB0B0\u0000\u0000"+
-            "\uB3C8\u0000\uD85E\uD857\u0000\uB3C5\u0000\uD85F"+
-            "\u0000\u0000\u0000\uD855\uD858\uB3C4\uD859\u0000"+
-            "\u0000\uB3C7\uD85D\u0000\uD853\uD852\uB3C9\u0000"+
-            "\uB3CA\uB3C6\uB3CB\uD851\uD85C\uD85A\uD854\u0000"+
-            "\u0000\u0000\uB3C3\uD856\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uB6CA\uB6C4\uDCB7\uB6CD"+
-            "\uDCBD\uDCC0\uB6C6\uB6C7\uDCBA\uB6C5\uDCC3\uB6CB"+
-            "\uDCC4\u0000\uDCBF\uB6CC\u0000\uDCB4\uB6C9\uDCB5"+
-            "\u0000\uDCBE\uDCBC\u0000\uDCB8\uB6C8\uDCB6\uB6CE"+
-            "\uDCBB\uDCC2\uDCB9\uDCC1\u0000\u0000\uB9B6\uB9B3"+
-            "\u0000\uB9B4\u0000\uE0F9\uE0F1\uB9B2\uB9AF\uE0F2"+
-            "\u0000\u0000\uB9B1\uE0F5\u0000\uE0F7\u0000\u0000"+
-            "\uE0FE\u0000\u0000\uE0FD\uE0F8\uB9AE\uE0F0\uB9AC"+
-            "\uE0F3\uB9B7\uE0F6\u0000\uE0FA\uB9B0\uB9AD\uE0FC"+
-            "\uE0FB\uB9B5\u0000\uE0F4\u0000\uBBF8\uE4EC\u0000"+
-            "\uE4E9\uBBF9\u0000\uBBF7\u0000\uE4F0\uE4ED\uE4E6"+
-            "\uBBF6\u0000\uBBFA\uE4E7\uBBF5\uBBFD\uE4EA\uE4EB"+
-            "\uBBFB\uBBFC\uE4F1\uE4EE\uE4EF\u0000\u0000\u0000"+
-            "\uBEAA\uE8F8\uBEA7\uE8F5\uBEA9\uBEAB\u0000\uE8F6"+
-            "\uBEA8\u0000\uE8F7\u0000\uE8F4\u0000\u0000\uC076"+
-            "\uECBD\uC077\uECBB\u0000\uECBC\uECBA\uECB9\u0000"+
-            "\u0000\uECBE\uC075\u0000\u0000\uEFB8\uEFB9\u0000"+
-            "\uE4E8\uEFB7\uC078\uC35F\uF1EB\uF1EC\u0000\uC4D7"+
-            "\uC4D8\uF5C1\uF5C0\uC56C\uC56B\uF7D0\u0000\uA449"+
-            "\uA461\uA4B9\u0000\uA4B8\uA553\uA552\uA5FC\uA5FB"+
-            "\uA5FD\uA5FA\u0000\uA74A\uA749\uA74B\u0000\u0000"+
-            "\u0000\u0000\uA8E0\u0000\uA8DF\uA8E1\u0000\uAB5E"+
-            "\u0000\uA259\uD0DE\uA25A\uB0C2\uA25C\uA25B\uD860"+
-            "\u0000\uA25D\uB9B8\uA25E\u0000\uA44A\u0000\uA4BA"+
-            "\uA5FE\uA8E2\u0000\uA44B\uA4BD\uA4BB\uA4BC\u0000"+
-            "\u0000\uA640\u0000\u0000\u0000\uA74C\uA8E4\uA8E3"+
-            "\uA8E5\u0000\u0000\u0000\uADDD\u0000\u0000\u0000"+
-            "\uBEAC\u0000\u0000\u0000\u0000\u0000\u0000\uC94E"+
-            "\u0000\uA554\uA555\u0000\u0000\uA641\u0000\uCA6A"+
-            "\u0000\uAB60\uAB5F\uD0E0\uD0DF\uB0C3\u0000\uA4BE"+
-            "\uC955\u0000\u0000\u0000\u0000\u0000\uCBCD\u0000"+
-            "\uAB61\u0000\uADE0\u0000\uADDE\uADDF\u0000\u0000"+
-            "\u0000\u0000\uBEAD\u0000\uA556\u0000\u0000\u0000"+
-            "\uA642\uC9BC\u0000\u0000\u0000\u0000\uA74D\uA74E"+
-            "\u0000\uCA6B\u0000\u0000\uCBCE\uA8E6\uCBCF\u0000"+
-            "\u0000\u0000\u0000\u0000\uD0E2\uD0E3\uADE3\u0000"+
-            "\uD0E4\u0000\uD0E1\uADE4\uADE2\uADE1\uD0E5\u0000"+
-            "\uD468\u0000\u0000\u0000\uD861\u0000\u0000\uDCC5"+
-            "\uE140\u0000\u0000\u0000\uBBFE\uBEAE\uE8F9\u0000"+
-            "\uA44C\uA45A\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uB0C4\uB3CD\u0000\uB9B9\u0000\uC942\uA4BF\u0000"+
-            "\uA559\uA557\uA558\u0000\u0000\uA8E7\u0000\u0000"+
-            "\uA44D\uA44E\u0000\uA462\u0000\u0000\uA4C0\uA4C1"+
-            "\uA4C2\uC9BE\uA55A\u0000\uC96B\u0000\uA646\u0000"+
-            "\uC9BF\uA644\uA645\uC9BD\u0000\u0000\uA647\uA643"+
-            "\u0000\u0000\u0000\u0000\uCA6C\uAAEC\uCA6D\u0000"+
-            "\u0000\uCA6E\u0000\u0000\uA750\uA74F\u0000\u0000"+
-            "\uA753\uA751\uA752\u0000\u0000\u0000\uA8ED\u0000"+
-            "\uA8EC\uCBD4\uCBD1\uCBD2\u0000\uCBD0\uA8EE\uA8EA"+
-            "\uA8E9\u0000\uA8EB\uA8E8\u0000\u0000\u0000\u0000"+
-            "\u0000\uA8EF\u0000\uAB63\uCDF0\u0000\uCBD3\uAB68"+
-            "\u0000\uCDF1\uAB64\uAB67\uAB66\uAB65\uAB62\u0000"+
-            "\u0000\u0000\uD0E8\u0000\uADE7\uD0EB\uADE5\u0000"+
-            "\u0000\u0000\uD0E7\uADE8\uADE6\uADE9\uD0E9\uD0EA"+
-            "\u0000\uD0E6\uD0EC\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uB3D1\uB0C5\uD469\uD46B\uD46A\uD46C\uB0C6"+
-            "\u0000\u0000\uB3CE\u0000\uB3CF\uB3D0\u0000\uB6D0"+
-            "\uDCC7\u0000\uDCC6\uDCC8\uDCC9\uB6D1\u0000\uB6CF"+
-            "\uE141\uE142\uB9BB\uB9BA\uE35A\u0000\u0000\uBC40"+
-            "\uBC41\uBC42\uBC44\uE4F2\uE4F3\uBC43\u0000\u0000"+
-            "\u0000\uBEAF\u0000\uBEB0\u0000\u0000\uF1ED\uF5C3"+
-            "\uF5C2\uF7D1\u0000\uA44F\u0000\u0000\u0000\uA55C"+
-            "\uA55B\u0000\u0000\uA648\u0000\u0000\uC9C0\u0000"+
-            "\u0000\uA755\uA756\uA754\uA757\uCA6F\uCA70\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA8F1\uCBD5\u0000\uA8F0\u0000"+
-            "\uCDF2\uAB6C\uCDF3\uAB6B\u0000\u0000\u0000\uAB69"+
-            "\u0000\uAB6A\u0000\u0000\u0000\uD0ED\u0000\u0000"+
-            "\u0000\u0000\uB0C7\uD46E\u0000\uB0CA\uD46D\uB1E5"+
-            "\uB0C9\uB0C8\u0000\uB3D4\u0000\uB3D3\uB3D2\uB6D2"+
-            "\u0000\u0000\uB6D5\uB6D6\uB6D4\u0000\uB6D3\u0000"+
-            "\u0000\uE143\u0000\uE144\u0000\u0000\u0000\uE4F5"+
-            "\uBC45\uE4F4\u0000\uBEB1\uECBF\uC079\u0000\uF1EE"+
-            "\uC455\u0000\uA463\uA4C3\uC956\u0000\uA4C4\uA4C5"+
-            "\u0000\u0000\u0000\u0000\u0000\uA55D\uA55E\u0000"+
-            "\uA649\uCA71\uCBD6\uCBD7\u0000\uAB6D\uD0EE\uB0CC"+
-            "\uB0CB\uD863\uD862\u0000\u0000\uA450\uA4C6\uA55F"+
-            "\u0000\uB0CD\uC943\u0000\uC96C\uA560\u0000\uC9C2"+
-            "\uA64B\uA64A\uC9C1\uA758\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uADEA\u0000\u0000\uD46F\u0000\uB6D7"+
-            "\uE145\uB9BC\u0000\u0000\uE8FA\u0000\u0000\uF3FD"+
-            "\u0000\uA4C7\u0000\u0000\uCBD8\uCDF4\uB0D0\uB0CE"+
-            "\uB0CF\uA451\u0000\uA464\uA2CD\uA4CA\u0000\uA4C9"+
-            "\uA4C8\uA563\uA562\u0000\uC96D\uC9C3\u0000\u0000"+
-            "\u0000\uA8F5\uA8F2\uA8F4\uA8F3\u0000\u0000\uAB6E"+
-            "\u0000\u0000\uB3D5\u0000\uA452\u0000\uA4CB\u0000"+
-            "\uA565\uA564\u0000\uCA72\u0000\u0000\uA8F6\u0000"+
-            "\u0000\u0000\u0000\u0000\uC957\u0000\uA567\uA566"+
-            "\uA64C\uA64D\uCA73\uA759\u0000\uA75A\u0000\uA8F7"+
-            "\uA8F8\uA8F9\u0000\uAB6F\uCDF5\u0000\u0000\uADEB"+
-            "\u0000\u0000\uC944\u0000\uA4CC\u0000\u0000\u0000"+
-            "\u0000\u0000\uC9C4\u0000\u0000\u0000\uCA74\uCA75"+
-            "\u0000\u0000\uCBD9\u0000\uCBDA\u0000\uCDF7\uCDF6"+
-            "\uCDF9\uCDF8\uAB70\u0000\uD470\uADED\uD0EF\uADEC"+
-            "\u0000\u0000\u0000\u0000\uD864\uB3D6\u0000\uD865"+
-            "\u0000\u0000\u0000\u0000\uE146\uB9BD\u0000\u0000"+
-            "\u0000\u0000\uBC46\u0000\uF1EF\u0000\u0000\u0000"+
-            "\u0000\uC958\u0000\uA568\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uB0D1\u0000\u0000\u0000\u0000"+
-            "\uA453\uA465\uA4CE\uA4CD\u0000\uA4CF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA8FB\u0000\uA8FA\uA8FC"+
-            "\u0000\u0000\u0000\uAB71\u0000\u0000\u0000\uADEE"+
-            "\u0000\uE8FB\uC24F\uA466\uA56A\uA579\uA574\u0000"+
-            "\uA56F\uA56E\uA575\uA573\uA56C\uA57A\uA56D\uA569"+
-            "\uA578\uA577\uA576\uA56B\u0000\uA572\u0000\u0000"+
-            "\uA571\u0000\u0000\uA57B\uA570\u0000\u0000\u0000"+
-            "\u0000\uA653\u0000\uA659\uA655\u0000\uA65B\uC9C5"+
-            "\uA658\uA64E\uA651\uA654\uA650\uA657\uA65A\uA64F"+
-            "\uA652\uA656\uA65C\u0000\u0000\u0000\u0000\u0000"+
-            "\uCA7E\uCA7B\u0000\uA767\uCA7C\uA75B\uA75D\uA775"+
-            "\uA770\u0000\u0000\u0000\uCAA5\uCA7D\uA75F\uA761"+
-            "\uCAA4\uA768\uCA78\uA774\uA776\uA75C\uA76D\u0000"+
-            "\uCA76\uA773\u0000\uA764\u0000\uA76E\uA76F\uCA77"+
-            "\uA76C\uA76A\u0000\uA76B\uA771\uCAA1\uA75E\u0000"+
-            "\uA772\uCAA3\uA766\uA763\u0000\uCA7A\uA762\uCAA6"+
-            "\uA765\u0000\uA769\u0000\u0000\u0000\uA760\uCAA2"+
-            "\u0000\u0000\u0000\u0000\uCA79\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uCBEB\uCBEA\uA94F\uCBED\uCBEF\uCBE4\uCBE7\uCBEE"+
-            "\uA950\u0000\u0000\uCBE1\uCBE5\u0000\u0000\uCBE9"+
-            "\uCE49\uA94B\uCE4D\uA8FD\uCBE6\uA8FE\uA94C\uA945"+
-            "\uA941\u0000\uCBE2\uA944\uA949\uA952\uCBE3\uCBDC"+
-            "\uA943\uCBDD\uCBDF\u0000\uA946\u0000\uA948\uCBDB"+
-            "\uCBE0\u0000\u0000\uA951\uA94D\uCBE8\uA953\u0000"+
-            "\uA94A\uCBDE\uA947\u0000\u0000\uA942\uA940\u0000"+
-            "\uCBEC\u0000\uA94E\u0000\u0000\u0000\u0000\u0000"+
-            "\uCE48\uCDFB\uCE4B\u0000\u0000\uCDFD\uAB78\uABA8"+
-            "\uAB74\uABA7\uAB7D\uABA4\uAB72\uCDFC\uCE43\uABA3"+
-            "\uCE4F\uABA5\u0000\uAB79\u0000\u0000\uCE45\uCE42"+
-            "\uAB77\u0000\uCDFA\uABA6\uCE4A\uAB7C\uCE4C\uABA9"+
-            "\uAB73\uAB7E\uAB7B\uCE40\uABA1\uCE46\uCE47\uAB7A"+
-            "\uABA2\uAB76\u0000\u0000\u0000\u0000\uAB75\uCDFE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uCE44\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uCE4E\u0000"+
-            "\uD144\uADFB\uD0F1\u0000\uD0F6\uADF4\uAE40\uD0F4"+
-            "\uADEF\uADF9\uADFE\uD0FB\u0000\uADFA\uADFD\u0000"+
-            "\u0000\uD0FE\uADF5\uD0F5\u0000\u0000\u0000\uD142"+
-            "\uD143\u0000\uADF7\uD141\uADF3\uAE43\u0000\uD0F8"+
-            "\u0000\uADF1\u0000\uD146\uD0F9\uD0FD\uADF6\uAE42"+
-            "\uD0FA\uADFC\uD140\uD147\uD4A1\u0000\uD145\uAE44"+
-            "\uADF0\uD0FC\uD0F3\u0000\uADF8\u0000\u0000\uD0F2"+
-            "\u0000\u0000\uD0F7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uD0F0\uAE41"+
-            "\u0000\u0000\uD477\u0000\uB0E4\uD4A7\uB0E2\uB0DF"+
-            "\uD47C\uB0DB\uD4A2\uB0E6\uD476\uD47B\uD47A\uADF2"+
-            "\uB0E1\uD4A5\u0000\uD4A8\uD473\u0000\uB3E8\u0000"+
-            "\uD4A9\uB0E7\u0000\uB0D9\uB0D6\uD47E\uB0D3\u0000"+
-            "\uD4A6\u0000\uB0DA\uD4AA\u0000\uD474\uD4A4\uB0DD"+
-            "\uD475\uD478\uD47D\u0000\u0000\uB0DE\uB0DC\uB0E8"+
-            "\u0000\u0000\u0000\u0000\uB0E3\u0000\uB0D7\uB1D2"+
-            "\u0000\uB0D8\uD479\uB0E5\uB0E0\uD4A3\uB0D5\u0000"+
-            "\u0000\u0000\uB0D4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uD471\uD472\uD86A"+
-            "\u0000\u0000\u0000\uB3D7\uB3DA\uD875\uB3EE\uD878"+
-            "\uB3D8\uD871\uB3DE\uB3E4\uB5BD\u0000\u0000\uB3E2"+
-            "\uD86E\uB3EF\uB3DB\uB3E3\uD876\uDCD7\uD87B\uD86F"+
-            "\u0000\uD866\uD873\uD86D\uB3E1\uD879\u0000\u0000"+
-            "\uB3DD\uB3F1\uB3EA\u0000\uB3DF\uB3DC\u0000\uB3E7"+
-            "\u0000\uD87A\uD86C\uD872\uD874\uD868\uD877\uB3D9"+
-            "\uD867\u0000\uB3E0\uB3F0\uB3EC\uD869\uB3E6\u0000"+
-            "\u0000\uB3ED\uB3E9\uB3E5\u0000\uD870\u0000\u0000"+
-            "\u0000\u0000\u0000\uB3EB\u0000\u0000\u0000\uDCD5"+
-            "\uDCD1\u0000\uDCE0\uDCCA\uDCD3\uB6E5\uB6E6\uB6DE"+
-            "\uDCDC\uB6E8\uDCCF\uDCCE\uDCCC\uDCDE\uB6DC\uDCD8"+
-            "\uDCCD\uB6DF\uDCD6\uB6DA\uDCD2\uDCD9\uDCDB\u0000"+
-            "\u0000\uDCDF\uB6E3\uDCCB\uB6DD\uDCD0\u0000\uB6D8"+
-            "\u0000\uB6E4\uDCDA\uB6E0\uB6E1\uB6E7\uB6DB\uA25F"+
-            "\uB6D9\uDCD4\u0000\u0000\u0000\u0000\u0000\uB6E2"+
-            "\u0000\u0000\uDCDD\u0000\u0000\u0000\uB9CD\uB9C8"+
-            "\u0000\uE155\uE151\u0000\uE14B\uB9C2\uB9BE\uE154"+
-            "\uB9BF\uE14E\uE150\u0000\uE153\u0000\uB9C4\u0000"+
-            "\uB9CB\uB9C5\u0000\u0000\uE149\uB9C6\uB9C7\uE14C"+
-            "\uB9CC\u0000\uE14A\uE14F\uB9C3\uE148\uB9C9\uB9C1"+
-            "\u0000\u0000\u0000\uB9C0\uE14D\uE152\u0000\uB9CA"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uE147"+
-            "\u0000\uBC4D\uE547\u0000\uE544\u0000\uBC47\uBC53"+
-            "\uBC54\u0000\uBC4A\uE542\uBC4C\uE4F9\uBC52\u0000"+
-            "\uE546\uBC49\uE548\uBC48\u0000\uE543\uE545\uBC4B"+
-            "\uE541\uE4FA\uE4F7\u0000\u0000\uD86B\uE4FD\u0000"+
-            "\uE4F6\uE4FC\uE4FB\u0000\uE4F8\u0000\uBC4F\u0000"+
-            "\u0000\u0000\u0000\uBC4E\u0000\u0000\u0000\uBC50"+
-            "\uE4FE\uBEB2\uE540\u0000\u0000\u0000\uE945\u0000"+
-            "\uE8FD\u0000\uBEBE\uE942\uBEB6\uBEBA\uE941\u0000"+
-            "\uBEB9\uBEB5\uBEB8\uBEB3\uBEBD\uE943\uE8FE\uBEBC"+
-            "\uE8FC\uBEBB\uE944\uE940\uBC51\u0000\uBEBF\uE946"+
-            "\uBEB7\uBEB4\u0000\u0000\u0000\u0000\uECC6\uECC8"+
-            "\uC07B\uECC9\uECC7\uECC5\uECC4\uC07D\uECC3\uC07E"+
-            "\u0000\u0000\u0000\u0000\uECC1\uECC2\uC07A\uC0A1"+
-            "\uC07C\u0000\u0000\uECC0\u0000\uC250\u0000\uEFBC"+
-            "\uEFBA\uEFBF\uEFBD\u0000\uEFBB\uEFBE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC360\uF1F2\uF1F3"+
-            "\uC456\u0000\uF1F4\uF1F0\uF1F5\uF1F1\uC251\u0000"+
-            "\u0000\u0000\uF3FE\uF441\uC459\uF440\uC458\uC457"+
-            "\u0000\u0000\u0000\u0000\uC45A\uF5C5\uF5C6\u0000"+
-            "\uC4DA\uC4D9\uC4DB\uF5C4\u0000\uF6D8\uF6D7\u0000"+
-            "\uC56D\uC56F\uC56E\uF6D9\uC5C8\uF8A6\u0000\u0000"+
-            "\u0000\uC5F1\u0000\uF8A5\uF8EE\u0000\u0000\uC949"+
-            "\u0000\u0000\uA57D\uA57C\u0000\uA65F\uA65E\uC9C7"+
-            "\uA65D\uC9C6\u0000\u0000\uA779\uCAA9\u0000\uCAA8"+
-            "\u0000\u0000\uA777\uA77A\u0000\u0000\uCAA7\u0000"+
-            "\uA778\u0000\u0000\u0000\u0000\u0000\u0000\uCBF0"+
-            "\u0000\uCBF1\uA954\u0000\u0000\u0000\u0000\uABAA"+
-            "\u0000\uD148\uD149\uAE45\uAE46\u0000\u0000\uD4AC"+
-            "\uB0E9\uB0EB\uD4AB\uB0EA\uD87C\uB3F2\u0000\u0000"+
-            "\u0000\u0000\uB6E9\uB6EA\uDCE1\u0000\uB9CF\u0000"+
-            "\uB9CE\u0000\uE549\uE948\uE947\u0000\uF96B\uA467"+
-            "\uC959\u0000\uC96E\uC96F\u0000\u0000\u0000\u0000"+
-            "\uA662\uA666\uC9C9\u0000\uA664\uA663\uC9C8\uA665"+
-            "\uA661\u0000\u0000\uA660\uC9CA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA7A6\u0000\u0000\uA7A3\u0000"+
-            "\uA77D\uCAAA\u0000\u0000\u0000\uCAAB\u0000\uA7A1"+
-            "\u0000\uCAAD\uA77B\uCAAE\uCAAC\uA77E\uA7A2\uA7A5"+
-            "\uA7A4\uA77C\uCAAF\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA959\uCBFE\u0000\uA95B\u0000\uA95A\u0000"+
-            "\uCC40\uA958\uA957\uCBF5\u0000\uCBF4\u0000\uCBF2"+
-            "\uCBF7\uCBF6\uCBF3\uCBFC\uCBFD\uCBFA\uCBF8\uA956"+
-            "\u0000\u0000\u0000\uCBFB\uA95C\uCC41\u0000\u0000"+
-            "\uCBF9\u0000\uABAB\uA955\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uABAC\uCE54\u0000\u0000\uCE5A"+
-            "\u0000\u0000\u0000\uABB2\uCE58\uCE5E\u0000\uCE55"+
-            "\uCE59\uCE5B\uCE5D\uCE57\u0000\uCE56\uCE51\uCE52"+
-            "\uABAD\u0000\uABAF\uABAE\uCE53\uCE5C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uABB1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uCE50\uD153\u0000"+
-            "\uD152\uD157\uD14E\u0000\uD151\uD150\u0000\uD154"+
-            "\u0000\uD158\uAE47\uAE4A\u0000\u0000\uD14F\uD155"+
-            "\u0000\u0000\u0000\uAE49\uD14A\u0000\uABB0\uD4BA"+
-            "\uD156\u0000\uD14D\u0000\uAE48\uD14C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uD4B1\u0000\u0000\uB0EC"+
-            "\uB0F0\uD4C1\uD4AF\uD4BD\uB0F1\uD4BF\u0000\uD4C5"+
-            "\u0000\uD4C9\u0000\u0000\uD4C0\uD4B4\uD4BC\u0000"+
-            "\uD4CA\uD4C8\uD4BE\uD4B9\uD4B2\uD8A6\uD4B0\uB0F5"+
-            "\uD4B7\uB0F6\uB0F2\uD4AD\uD4C3\uD4B5\u0000\u0000"+
-            "\uD4B3\uD4C6\uB0F3\u0000\uD4CC\uB0ED\uB0EF\uD4BB"+
-            "\uD4B6\uAE4B\uB0EE\uD4B8\uD4C7\uD4CB\uD4C2\u0000"+
-            "\uD4C4\u0000\u0000\u0000\uD4AE\u0000\u0000\u0000"+
-            "\u0000\uD8A1\u0000\uD8AA\uD8A9\uB3FA\uD8A2\u0000"+
-            "\uB3FB\uB3F9\u0000\uD8A4\uB3F6\uD8A8\u0000\uD8A3"+
-            "\uD8A5\uD87D\uB3F4\u0000\uD8B2\uD8B1\uD8AE\uB3F3"+
-            "\uB3F7\uB3F8\uD14B\uD8AB\uB3F5\uB0F4\uD8AD\uD87E"+
-            "\uD8B0\uD8AF\u0000\uD8B3\u0000\uDCEF\u0000\uD8AC"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uD8A7\uDCE7\uB6F4\uB6F7\uB6F2\uDCE6\uDCEA\uDCE5"+
-            "\u0000\uB6EC\uB6F6\uDCE2\uB6F0\uDCE9\u0000\uB6EE"+
-            "\uB6ED\uDCEC\uB6EF\uDCEE\u0000\uDCEB\uB6EB\u0000"+
-            "\u0000\u0000\uB6F5\uDCF0\uDCE4\uDCED\u0000\u0000"+
-            "\uDCE3\u0000\u0000\uB6F1\u0000\uB6F3\u0000\uDCE8"+
-            "\u0000\uDCF1\u0000\u0000\uE15D\uB9D0\uE163\u0000"+
-            "\u0000\uB9D5\uE15F\uE166\uE157\uB9D7\uB9D1\uE15C"+
-            "\uBC55\uE15B\uE164\uB9D2\u0000\uB9D6\uE15A\uE160"+
-            "\uE165\uE156\uB9D4\uE15E\u0000\u0000\uE162\uE168"+
-            "\uE158\uE161\u0000\uB9D3\uE167\u0000\u0000\u0000"+
-            "\uE159\u0000\u0000\u0000\uBC59\uE54B\uBC57\uBC56"+
-            "\uE54D\uE552\u0000\uE54E\u0000\uE551\uBC5C\u0000"+
-            "\uBEA5\uBC5B\u0000\uE54A\uE550\u0000\uBC5A\uE54F"+
-            "\u0000\uE54C\u0000\uBC58\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uE94D\u0000\uE94F\uE94A\uBEC1\uE94C"+
-            "\u0000\uBEC0\uE94E\u0000\u0000\uBEC3\uE950\uBEC2"+
-            "\uE949\uE94B\u0000\u0000\u0000\u0000\uC0A5\uECCC"+
-            "\u0000\uC0A4\uECCD\uC0A3\uECCB\uC0A2\uECCA\u0000"+
-            "\uC253\uC252\uF1F6\uF1F8\u0000\uF1F7\uC361\uC362"+
-            "\u0000\u0000\uC363\uF442\uC45B\u0000\u0000\uF7D3"+
-            "\uF7D2\uC5F2\u0000\uA468\uA4D0\u0000\u0000\uA7A7"+
-            "\u0000\u0000\u0000\u0000\uCE5F\u0000\u0000\u0000"+
-            "\u0000\uB3FC\uB3FD\u0000\uDCF2\uB9D8\uE169\uE553"+
-            "\u0000\u0000\u0000\uC95A\u0000\u0000\uCAB0\u0000"+
-            "\u0000\u0000\u0000\u0000\uCC42\uCE60\uD159\uAE4C"+
-            "\u0000\u0000\uF1F9\u0000\uC4DC\uA469\uA57E\uC970"+
-            "\u0000\uA667\uA668\u0000\uA95D\u0000\u0000\u0000"+
-            "\uB0F7\u0000\uB9DA\u0000\uB9DB\uB9D9\u0000\uA46A"+
-            "\u0000\uA4D1\uA4D3\uA4D2\uC95B\uA4D4\uA5A1\uC971"+
-            "\u0000\uA5A2\u0000\u0000\u0000\u0000\u0000\uA669"+
-            "\uA66A\u0000\u0000\u0000\uC9CB\u0000\uA7A8\u0000"+
-            "\uCAB1\u0000\u0000\u0000\uA961\uCC43\u0000\uA95F"+
-            "\uA960\uA95E\uD15A\u0000\u0000\u0000\uABB6\uABB5"+
-            "\uABB7\uABB4\u0000\uCE61\uA962\uABB3\u0000\uAE4D"+
-            "\uAE4E\u0000\uAE4F\u0000\uD4CD\u0000\u0000\u0000"+
-            "\uB3FE\uD8B4\uB0F8\u0000\u0000\u0000\u0000\uB6F8"+
-            "\u0000\uB9DD\uB9DC\uE16A\u0000\uBC5D\uBEC4\u0000"+
-            "\uEFC0\uF6DA\uF7D4\uA46B\uA5A3\u0000\uA5A4\uC9D1"+
-            "\uA66C\uA66F\u0000\uC9CF\uC9CD\uA66E\uC9D0\uC9D2"+
-            "\uC9CC\uA671\uA670\uA66D\uA66B\uC9CE\u0000\u0000"+
-            "\u0000\u0000\uA7B3\u0000\u0000\uA7B0\uCAB6\uCAB9"+
-            "\uCAB8\u0000\uA7AA\uA7B2\u0000\u0000\uA7AF\uCAB5"+
-            "\uCAB3\uA7AE\u0000\u0000\u0000\uA7A9\uA7AC\u0000"+
-            "\uCAB4\uCABB\uCAB7\uA7AD\uA7B1\uA7B4\uCAB2\uCABA"+
-            "\uA7AB\u0000\u0000\u0000\u0000\u0000\uA967\uA96F"+
-            "\u0000\uCC4F\uCC48\uA970\uCC53\uCC44\uCC4B\u0000"+
-            "\u0000\uA966\uCC45\uA964\uCC4C\uCC50\uA963\u0000"+
-            "\uCC51\uCC4A\u0000\uCC4D\u0000\uA972\uA969\uCC54"+
-            "\uCC52\u0000\uA96E\uA96C\uCC49\uA96B\uCC47\uCC46"+
-            "\uA96A\uA968\uA971\uA96D\uA965\u0000\uCC4E\u0000"+
-            "\uABB9\u0000\uABC0\uCE6F\uABB8\uCE67\uCE63\u0000"+
-            "\uCE73\uCE62\u0000\uABBB\uCE6C\uABBE\uABC1\u0000"+
-            "\uABBC\uCE70\uABBF\u0000\uAE56\uCE76\uCE64\u0000"+
-            "\u0000\uCE66\uCE6D\uCE71\uCE75\uCE72\uCE6B\uCE6E"+
-            "\u0000\u0000\uCE68\uABC3\uCE6A\uCE69\uCE74\uABBA"+
-            "\uCE65\uABC2\u0000\uABBD\u0000\u0000\u0000\u0000"+
-            "\u0000\uAE5C\uD162\u0000\uAE5B\u0000\u0000\uD160"+
-            "\u0000\uAE50\u0000\uAE55\u0000\uD15F\uD15C\uD161"+
-            "\uAE51\uD15B\u0000\uAE54\uAE52\u0000\uD163\uAE53"+
-            "\uAE57\u0000\u0000\uAE58\u0000\uAE5A\u0000\u0000"+
-            "\u0000\uAE59\u0000\u0000\u0000\uD15D\uD15E\u0000"+
-            "\u0000\u0000\u0000\uD164\u0000\uD4D4\uB0F9\uD8C2"+
-            "\uD4D3\uD4E6\u0000\u0000\uB140\u0000\uD4E4\u0000"+
-            "\uB0FE\uB0FA\uD4ED\uD4DD\uD4E0\u0000\uB143\uD4EA"+
-            "\uD4E2\uB0FB\uB144\u0000\uD4E7\uD4E5\u0000\u0000"+
-            "\uD4D6\uD4EB\uD4DF\uD4DA\u0000\uD4D0\uD4EC\uD4DC"+
-            "\uD4CF\u0000\uB142\uD4E1\uD4EE\uD4DE\uD4D2\uD4D7"+
-            "\uD4CE\u0000\uB141\u0000\uD4DB\uD4D8\uB0FC\uD4D1"+
-            "\u0000\uD4E9\uB0FD\u0000\uD4D9\uD4D5\u0000\u0000"+
-            "\uD4E8\u0000\u0000\u0000\u0000\u0000\u0000\uB440"+
-            "\uD8BB\u0000\uD8B8\uD8C9\uD8BD\uD8CA\u0000\uB442"+
-            "\u0000\u0000\u0000\uD8C6\uD8C3\u0000\u0000\u0000"+
-            "\u0000\u0000\uD8C4\uD8C7\uD8CB\u0000\uD4E3\uD8CD"+
-            "\uDD47\u0000\uB443\uD8CE\uD8B6\uD8C0\u0000\uD8C5"+
-            "\u0000\u0000\uB441\uB444\uD8CC\uD8CF\uD8BA\uD8B7"+
-            "\u0000\u0000\uD8B9\u0000\u0000\uD8BE\uD8BC\uB445"+
-            "\u0000\uD8C8\u0000\u0000\uD8BF\u0000\uD8C1\uD8B5"+
-            "\uDCFA\uDCF8\uB742\uB740\uDD43\uDCF9\uDD44\uDD40"+
-            "\uDCF7\uDD46\uDCF6\uDCFD\uB6FE\uB6FD\uB6FC\uDCFB"+
-            "\uDD41\uB6F9\uB741\u0000\uDCF4\u0000\uDCFE\uDCF3"+
-            "\uDCFC\uB6FA\uDD42\uDCF5\uB6FB\uDD45\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uE16E\uB9E2\uB9E1"+
-            "\uB9E3\uE17A\uE170\uE176\uE16B\uE179\uE178\uE17C"+
-            "\uE175\uB9DE\uE174\uB9E4\u0000\uE16D\uB9DF\u0000"+
-            "\uE17B\uB9E0\uE16F\uE172\uE177\uE171\uE16C\u0000"+
-            "\u0000\u0000\u0000\uE173\uE555\uBC61\uE558\uE557"+
-            "\uE55A\uE55C\u0000\uBC5F\u0000\uE556\u0000\uE554"+
-            "\u0000\uE55D\uE55B\uE559\u0000\uE55F\u0000\uE55E"+
-            "\uBC63\uBC5E\u0000\uBC60\uBC62\u0000\u0000\uE560"+
-            "\uE957\u0000\u0000\uE956\uE955\u0000\uE958\uE951"+
-            "\u0000\uE952\uE95A\uE953\u0000\uBEC5\uE95C\u0000"+
-            "\uE95B\uE954\u0000\uECD1\uC0A8\uECCF\uECD4\uECD3"+
-            "\uE959\u0000\uC0A7\u0000\uECD2\uECCE\uECD6\uECD5"+
-            "\uC0A6\u0000\uECD0\u0000\uBEC6\u0000\u0000\u0000"+
-            "\uC254\u0000\u0000\u0000\uEFC1\uF1FA\uF1FB\uF1FC"+
-            "\uC45C\u0000\u0000\uC45D\u0000\uF443\u0000\uF5C8"+
-            "\uF5C7\u0000\u0000\uF6DB\uF6DC\uF7D5\uF8A7\u0000"+
-            "\uA46C\uA46D\u0000\uA46E\uA4D5\uA5A5\uC9D3\uA672"+
-            "\uA673\u0000\uA7B7\uA7B8\uA7B6\uA7B5\u0000\uA973"+
-            "\u0000\u0000\uCC55\uA975\uA974\uCC56\u0000\u0000"+
-            "\u0000\uABC4\u0000\uAE5D\uD165\u0000\uD4F0\u0000"+
-            "\uB145\uB447\uD4EF\uB446\u0000\uB9E5\u0000\uE17D"+
-            "\uBEC7\u0000\uC0A9\uECD7\u0000\uC45E\u0000\uC570"+
-            "\u0000\uC972\u0000\uA5A6\uC973\uA676\u0000\uA674"+
-            "\uA675\uA677\u0000\uA7BA\uA7B9\u0000\uCABC\uA7BB"+
-            "\u0000\u0000\uCABD\uCC57\u0000\uCC58\u0000\uA976"+
-            "\uA978\uA97A\uA977\uA97B\uA979\u0000\u0000\u0000"+
-            "\u0000\u0000\uABC8\uABC5\uABC7\uABC9\uABC6\uD166"+
-            "\uCE77\u0000\u0000\u0000\uD168\uD167\uAE63\u0000"+
-            "\uAE5F\u0000\u0000\uAE60\uAE62\uAE64\uAE61\u0000"+
-            "\uAE66\uAE65\u0000\u0000\u0000\u0000\u0000\uB14A"+
-            "\uD4F2\uD4F1\uB149\u0000\uB148\uB147\uB14B\uB146"+
-            "\u0000\u0000\uD8D5\uD8D2\uB449\uD8D1\uD8D6\u0000"+
-            "\uB44B\uD8D4\uB448\uB44A\uD8D3\u0000\uDD48\u0000"+
-            "\uDD49\uDD4A\u0000\u0000\u0000\u0000\uB9E6\uB9EE"+
-            "\uE17E\uB9E8\uB9EC\uE1A1\uB9ED\uB9E9\uB9EA\uB9E7"+
-            "\uB9EB\uBC66\uD8D0\uBC67\uBC65\u0000\uBC64\uE95D"+
-            "\uBEC8\uECD8\uECD9\u0000\u0000\uC364\uC45F\u0000"+
-            "\uA46F\u0000\uA678\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uABCA\u0000\uD169\uAE67\u0000\u0000\uB14E"+
-            "\uB14D\uB14C\uB44C\uB44D\uD8D7\uB9EF\uBEC9\uA470"+
-            "\uC95C\uA4D6\uC974\u0000\u0000\uC9D4\uA679\u0000"+
-            "\u0000\u0000\uA97C\u0000\u0000\u0000\u0000\uDD4B"+
-            "\u0000\u0000\uA471\u0000\uA4D7\uC9D5\u0000\u0000"+
-            "\uCABE\u0000\uCABF\u0000\uA7BC\u0000\u0000\u0000"+
-            "\uD8D8\uB44E\u0000\uDD4C\u0000\u0000\u0000\uC0AA"+
-            "\uA472\uA4A8\uA4D8\uC975\uA5A7\u0000\uA7C0\uA7BF"+
-            "\uA7BD\uA7BE\u0000\u0000\uCC59\uA97E\uA9A1\uCC5A"+
-            "\uA97D\u0000\u0000\uABCE\uCE78\uABCD\uABCB\uABCC"+
-            "\uAE6A\uAE68\u0000\u0000\uD16B\uAE69\uD16A\u0000"+
-            "\uAE5E\uD4F3\u0000\u0000\uB150\uB151\u0000\u0000"+
-            "\uB14F\u0000\uB9F0\uE1A2\uBC68\uBC69\u0000\uE561"+
-            "\uC0AB\uEFC2\uEFC3\u0000\uC4DD\uF8A8\uC94B\uA4D9"+
-            "\u0000\uA473\u0000\uC977\uC976\u0000\u0000\u0000"+
-            "\u0000\uA67A\uC9D7\uC9D8\uC9D6\u0000\uC9D9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uCAC7\u0000"+
-            "\uCAC2\uCAC4\uCAC6\uCAC3\uA7C4\uCAC0\u0000\uCAC1"+
-            "\uA7C1\uA7C2\uCAC5\uCAC8\uA7C3\uCAC9\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uCC68\u0000\uCC62"+
-            "\uCC5D\uA9A3\uCC65\uCC63\uCC5C\uCC69\uCC6C\uCC67"+
-            "\uCC60\uA9A5\uCC66\uA9A6\uCC61\uCC64\uCC5B\uCC5F"+
-            "\uCC6B\uA9A7\u0000\uA9A8\u0000\uCC5E\uCC6A\uA9A2"+
-            "\uA9A4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uCEAB\uCEA4"+
-            "\uCEAA\uCEA3\uCEA5\uCE7D\uCE7B\u0000\uCEAC\uCEA9"+
-            "\uCE79\u0000\uABD0\uCEA7\uCEA8\u0000\uCEA6\uCE7C"+
-            "\uCE7A\uABCF\uCEA2\uCE7E\u0000\u0000\uCEA1\uCEAD"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uAE6F\u0000\uAE6E\u0000\uD16C\uAE6B\uD16E\u0000"+
-            "\uAE70\uD16F\u0000\u0000\uAE73\u0000\uAE71\uD170"+
-            "\uCEAE\uD172\u0000\uAE6D\u0000\uAE6C\u0000\uD16D"+
-            "\uD171\uAE72\u0000\u0000\u0000\u0000\uB153\uB152"+
-            "\u0000\u0000\u0000\uD4F5\uD4F9\uD4FB\uB154\uD4FE"+
-            "\u0000\uB158\uD541\u0000\uB15A\u0000\uB156\uB15E"+
-            "\u0000\uB15B\uD4F7\uB155\u0000\uD4F6\uD4F4\uD543"+
-            "\uD4F8\u0000\uB157\uD542\uB15C\uD4FD\uD4FC\uB15D"+
-            "\uD4FA\uB159\u0000\u0000\u0000\u0000\uD544\u0000"+
-            "\uD540\uD8E7\uD8EE\uD8E3\uB451\uD8DF\uD8EF\uD8D9"+
-            "\uD8EC\uD8EA\uD8E4\u0000\uD8ED\uD8E6\u0000\uD8DE"+
-            "\uD8F0\uD8DC\uD8E9\uD8DA\u0000\uD8F1\u0000\uB452"+
-            "\u0000\uD8EB\uDD4F\uD8DD\uB44F\u0000\uD8E1\u0000"+
-            "\uB450\uD8E0\uD8E5\u0000\u0000\uD8E2\u0000\u0000"+
-            "\u0000\uD8E8\u0000\u0000\u0000\u0000\uDD53\u0000"+
-            "\u0000\u0000\uDD56\uDD4E\u0000\uDD50\u0000\uDD55"+
-            "\uDD54\uB743\u0000\uD8DB\uDD52\u0000\u0000\uB744"+
-            "\u0000\uDD4D\uDD51\u0000\u0000\u0000\u0000\uE1A9"+
-            "\u0000\uE1B0\uE1A7\u0000\uE1AE\uE1A5\uE1AD\uE1B1"+
-            "\uE1A4\uE1A8\uE1A3\u0000\uB9F1\u0000\uE1A6\uB9F2"+
-            "\uE1AC\uE1AB\uE1AA\u0000\u0000\uE1AF\u0000\u0000"+
-            "\u0000\u0000\uE565\uE567\uBC6B\uE568\u0000\uE563"+
-            "\u0000\uE562\uE56C\u0000\uE56A\uBC6A\uE56D\uE564"+
-            "\uE569\uE56B\uE566\u0000\u0000\u0000\u0000\uE961"+
-            "\uE966\uE960\uE965\u0000\uE95E\uE968\uE964\uE969"+
-            "\uE963\uE95F\uE967\u0000\uE96A\uE962\u0000\uECDA"+
-            "\uC0AF\u0000\uC0AD\u0000\uC0AC\uC0AE\u0000\u0000"+
-            "\uEFC4\u0000\uF172\uF1FD\u0000\u0000\uF444\uF445"+
-            "\u0000\uC460\u0000\uF5C9\u0000\uC4DE\u0000\uF5CA"+
-            "\u0000\uF6DE\uC572\u0000\uC571\uF6DD\uC5C9\u0000"+
-            "\uF7D6\u0000\u0000\u0000\u0000\uA474\uA67B\uC9DA"+
-            "\uCACA\uA8B5\uB15F\u0000\u0000\uA475\uA5AA\uA5A9"+
-            "\uA5A8\u0000\u0000\uA7C5\u0000\u0000\uAE74\u0000"+
-            "\uDD57\uA476\uA477\uA478\uA4DA\u0000\u0000\uABD1"+
-            "\u0000\uCEAF\u0000\u0000\u0000\uB453\uA479\uC95D"+
-            "\u0000\u0000\uA5AB\uA5AC\uC978\u0000\uA67C\u0000"+
-            "\u0000\u0000\uCACB\u0000\uA7C6\u0000\uCACC\u0000"+
-            "\u0000\uA9AE\u0000\u0000\uCC6E\uA9AC\uA9AB\uCC6D"+
-            "\uA9A9\uCC6F\uA9AA\uA9AD\u0000\uABD2\u0000\uABD4"+
-            "\uCEB3\uCEB0\uCEB1\uCEB2\uCEB4\uABD3\u0000\u0000"+
-            "\uD174\uD173\u0000\uAE76\u0000\uAE75\u0000\u0000"+
-            "\u0000\u0000\u0000\uB162\uD546\u0000\uB161\uB163"+
-            "\uB160\u0000\u0000\u0000\u0000\uB455\uD545\u0000"+
-            "\uB456\uD8F3\u0000\uB457\uD8F2\uB454\u0000\u0000"+
-            "\u0000\u0000\uDD5A\uDD5C\uB745\uDD5B\uDD59\uDD58"+
-            "\u0000\u0000\u0000\uE1B4\uB9F7\uB9F5\u0000\uB9F6"+
-            "\uE1B2\uE1B3\u0000\uB9F3\uE571\uE56F\u0000\uBC6D"+
-            "\uE570\uBC6E\uBC6C\uB9F4\u0000\u0000\uE96D\uE96B"+
-            "\uE96C\uE56E\uECDC\uC0B0\uECDB\uEFC5\uEFC6\uE96E"+
-            "\uF1FE\u0000\uA47A\uA5AD\uA67E\uC9DB\uA67D\u0000"+
-            "\uA9AF\uB746\u0000\uA4DB\uA5AE\uABD5\uB458\u0000"+
-            "\uC979\u0000\uC97A\u0000\uC9DC\u0000\u0000\uA7C8"+
-            "\uCAD0\uCACE\uA7C9\uCACD\uCACF\uCAD1\u0000\uA7C7"+
-            "\u0000\u0000\u0000\u0000\u0000\uA9B3\uA9B4\uA9B1"+
-            "\u0000\u0000\uA9B0\uCEB8\uA9B2\u0000\u0000\u0000"+
-            "\uABD6\u0000\uCEB7\uCEB9\uCEB6\uCEBA\uABD7\uAE79"+
-            "\uD175\u0000\uD177\uAE77\uD178\uAE78\uD176\u0000"+
-            "\uCEB5\uD547\uD54A\uD54B\uD548\uB167\uB166\uB164"+
-            "\uB165\uD549\u0000\u0000\u0000\u0000\uB168\u0000"+
-            "\u0000\uB45A\uB45B\u0000\uB45C\uDD5D\uDD5F\uDD61"+
-            "\uB748\uB747\uB459\uDD60\uDD5E\u0000\uE1B8\u0000"+
-            "\u0000\uE1B6\uE1BC\uB9F8\uE1BD\uE1BA\uB9F9\uE1B7"+
-            "\uE1B5\uE1BB\uBC70\uE573\uE1B9\uBC72\uE574\uBC71"+
-            "\uBC74\uE575\uBC6F\uBC73\u0000\uE973\uE971\uE970"+
-            "\uE972\uE96F\u0000\u0000\uC366\u0000\uF446\uF447"+
-            "\u0000\uF5CB\uF6DF\uC655\u0000\u0000\uA9B5\uA7CA"+
-            "\u0000\u0000\uABD8\u0000\u0000\u0000\uA47B\uA4DC";
-
-        private final static String innerIndex2=
-            "\u0000\uA5AF\uC9DD\u0000\uA7CB\uCAD2\u0000\uCEBB"+
-            "\uABD9\u0000\uB9FA\uA47C\u0000\u0000\u0000\uA6A1"+
-            "\u0000\u0000\uB749\uA47D\uA4DD\uA4DE\u0000\uA5B1"+
-            "\uA5B0\u0000\uC9DE\uA6A2\u0000\uCAD3\u0000\uA7CC"+
-            "\u0000\u0000\uCC71\uCC72\uCC73\u0000\uA9B6\uA9B7"+
-            "\uCC70\uA9B8\u0000\u0000\u0000\uABDA\uCEBC\u0000"+
-            "\uD17A\uAE7A\u0000\uD179\u0000\uB169\uD54C\uB16A"+
-            "\uD54D\u0000\u0000\u0000\uB45D\u0000\u0000\u0000"+
-            "\uDD62\u0000\u0000\uE1BF\uE1BE\u0000\uB9FB\u0000"+
-            "\uBC75\uE576\uBECA\uE974\uC0B1\u0000\uC573\uF7D8"+
-            "\u0000\u0000\u0000\u0000\uCC74\u0000\uCEBD\uB16B"+
-            "\uD8F4\uB74A\u0000\u0000\u0000\uC255\u0000\u0000"+
-            "\u0000\u0000\uA7CE\u0000\uA7CD\uABDB\u0000\uD17B"+
-            "\u0000\uB16D\uB343\uB16E\uB16C\uB45E\u0000\uE1C0"+
-            "\uB9FC\uBC76\u0000\uC94C\uC9DF\u0000\uCAD5\uA7CF"+
-            "\uCAD4\uA7D0\u0000\u0000\uA9BC\uCC77\uCC76\uA9BB"+
-            "\uA9B9\uA9BA\uCC75\u0000\u0000\uABDD\uCEBE\uABE0"+
-            "\uABDC\uABE2\uABDE\uABDF\uABE1\u0000\u0000\u0000"+
-            "\uAE7D\uAE7C\uAE7B\u0000\u0000\u0000\uD54F\uB16F"+
-            "\uB172\uB170\u0000\uD54E\uB175\u0000\uB171\uD550"+
-            "\uB174\uB173\u0000\u0000\u0000\uD8F6\uD8F5\u0000"+
-            "\uB461\uB45F\uB460\uD8F7\uB74B\uDD64\uB74C\uDD63"+
-            "\u0000\u0000\uE577\u0000\u0000\uBC78\uE1C1\uBC77"+
-            "\u0000\uB9FD\u0000\uECDE\uE975\uC0B2\uECDD\uF240"+
-            "\uF448\uF449\u0000\uA4DF\u0000\uA5B2\u0000\u0000"+
-            "\u0000\uC97B\u0000\u0000\uA7D2\uA7D4\u0000\uC9E2"+
-            "\uCAD8\uCAD7\uCAD6\u0000\uC9E1\uC9E0\uA6A4\uA7D3"+
-            "\uA7D1\uA6A3\u0000\u0000\u0000\uA9BD\uCC78\u0000"+
-            "\uA9BE\uCADD\u0000\uCADF\uCADE\uCC79\u0000\u0000"+
-            "\uCADA\u0000\uA7D8\uA7D6\u0000\uCAD9\uCADB\uCAE1"+
-            "\u0000\uA7D5\u0000\uCADC\uCAE5\uA9C0\u0000\uCAE2"+
-            "\uA7D7\u0000\uCAE0\uCAE3\u0000\uA9BF\u0000\uA9C1"+
-            "\uCAE4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uCCAF\uCCA2\uCC7E\uCCAE\uCCA9\uABE7\uA9C2"+
-            "\uCCAA\uCCAD\uABE3\uCCAC\uA9C3\uA9C8\uA9C6\uCCA3"+
-            "\u0000\uCC7C\uCCA5\uA9CD\uCCB0\uABE4\uCCA6\u0000"+
-            "\uABE5\uA9C9\uCCA8\u0000\uCECD\uABE6\uCC7B\uA9CA"+
-            "\uABE8\uA9CB\uA9C7\uA9CC\uCCA7\uCC7A\uCCAB\uA9C4"+
-            "\u0000\u0000\uCC7D\uCCA4\uCCA1\uA9C5\u0000\uCEBF"+
-            "\u0000\uCEC0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uCECA\uD1A1\uCECB\uABEE\uCECE\uCEC4\uABED\uCEC6"+
-            "\u0000\uCEC7\u0000\u0000\uCEC9\uABE9\u0000\u0000"+
-            "\uAEA3\u0000\u0000\uCEC5\uCEC1\uAEA4\u0000\u0000"+
-            "\uCECF\uAE7E\uD17D\uCEC8\u0000\uD17C\uCEC3\uCECC"+
-            "\u0000\u0000\uABEC\uAEA1\uABF2\uAEA2\uCED0\uD17E"+
-            "\uABEB\uAEA6\uABF1\uABF0\uABEF\uAEA5\uCED1\uAEA7"+
-            "\uABEA\u0000\uCEC2\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uB176"+
-            "\uD1A4\uD1A6\u0000\uD1A8\uAEA8\uAEAE\uD553\uD1AC"+
-            "\uD1A3\uB178\uD551\u0000\uAEAD\uAEAB\uD1AE\u0000"+
-            "\uD552\u0000\uD1A5\u0000\uAEAC\uD1A9\uAEAF\uD1AB"+
-            "\u0000\u0000\uAEAA\uD1AA\uD1AD\uD1A7\u0000\uAEA9"+
-            "\uB179\u0000\uD1A2\uB177\u0000\u0000\u0000\u0000"+
-            "\uB17A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uD555\uD55E\uB464\u0000\uB17C\uB1A3\uB465\uD560"+
-            "\uB1AA\uD8F9\uD556\uB1A2\uB1A5\uB17E\uD554\uD562"+
-            "\uD565\uD949\u0000\uD563\uD8FD\uB1A1\uB1A8\uB1AC"+
-            "\uD55D\uD8F8\uD561\uB17B\uD8FA\uD564\uD8FC\uD559"+
-            "\u0000\uB462\u0000\uD557\uD558\uB1A7\u0000\u0000"+
-            "\uB1A6\uD55B\uB1AB\uD55F\uB1A4\uD55C\u0000\uB1A9"+
-            "\uB466\uB463\uD8FB\u0000\uD55A\u0000\uB17D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uB46B\uB46F\uD940\uB751\uB46D\uD944\uB471\uDD65"+
-            "\uD946\uB753\uB469\uB46C\uD947\u0000\uD948\uD94E"+
-            "\uB473\uB754\u0000\uD94A\uD94F\uD943\uB75E\u0000"+
-            "\uB755\uB472\uD941\uD950\u0000\uB75D\uB470\uB74E"+
-            "\uD94D\u0000\uB474\uD945\uD8FE\uB46A\uD942\u0000"+
-            "\uD94B\u0000\uB74D\uB752\uB467\uD94C\u0000\uB750"+
-            "\u0000\u0000\u0000\uB468\u0000\u0000\u0000\uB75C"+
-            "\uE1C3\uDD70\u0000\uDD68\uE1C2\u0000\uDD6C\uDD6E"+
-            "\u0000\u0000\uDD6B\u0000\uB75B\u0000\uDD6A\uB75F"+
-            "\u0000\u0000\u0000\uE1D2\u0000\u0000\uB75A\uBA40"+
-            "\uDD71\uE1C4\u0000\u0000\uB758\uDD69\uDD6D\uB9FE"+
-            "\uB74F\uDD66\uDD67\uBA41\uB757\uB759\uB756\uDD6F"+
-            "\u0000\u0000\uE1C8\uE1C9\uE1CE\uBC7D\uE1D5\u0000"+
-            "\uBA47\u0000\uBA46\uE1D0\u0000\uBC7C\uE1C5\uBA45"+
-            "\u0000\uE1D4\uBA43\uBA44\u0000\uE1D1\uE5AA\uBC7A"+
-            "\uB46E\u0000\uE1D3\uBCA3\uE1CB\u0000\uBC7B\u0000"+
-            "\uBCA2\uE1C6\uE1CA\uE1C7\uE1CD\uBA48\uBC79\uBA42"+
-            "\u0000\uE57A\uE1CF\u0000\uBCA1\u0000\uBCA4\u0000"+
-            "\uE1CC\u0000\uBC7E\uE579\u0000\u0000\u0000\u0000"+
-            "\u0000\uE57E\uBECE\uE578\uE9A3\uE5A9\uBCA8\u0000"+
-            "\uBCA6\uBECC\uE5A6\uE5A2\uBCAC\u0000\uE978\u0000"+
-            "\u0000\u0000\uBCAA\uE5A1\u0000\uE976\u0000\uE5A5"+
-            "\u0000\uE5A8\uE57D\u0000\uBCAB\u0000\u0000\uBCA5"+
-            "\uE977\uBECD\uE5A7\uBCA7\uBCA9\uE5A4\uBCAD\uE5A3"+
-            "\uE57C\uE57B\uBECB\uE5AB\uE97A\uECE0\uBED0\u0000"+
-            "\uE9A2\u0000\uE97E\u0000\uECE1\u0000\uBED1\uE9A1"+
-            "\u0000\uE97C\uC0B4\uECDF\u0000\uE979\uE97B\uC0B5"+
-            "\uBED3\uC0B3\uBED2\uC0B7\uE97D\uBECF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uEFCF\u0000"+
-            "\uEFC7\u0000\u0000\u0000\u0000\u0000\uECE7\uEFC8"+
-            "\uECE3\u0000\u0000\uC256\uECE5\uECE4\uC0B6\uECE2"+
-            "\uECE6\uEFD0\uEFCC\uEFCE\u0000\uEFC9\uEFCA\u0000"+
-            "\uEFCD\uEFCB\uC367\u0000\u0000\uC36A\uC369\uC368"+
-            "\uC461\uF44A\uC462\uF241\uC4DF\uF5CC\uC4E0\uC574"+
-            "\uC5CA\uF7D9\u0000\uF7DA\uF7DB\u0000\u0000\uF9BA"+
-            "\uA4E0\uC97C\uA5B3\u0000\uA6A6\uA6A7\uA6A5\u0000"+
-            "\uA6A8\uA7DA\uA7D9\u0000\uCCB1\uA9CF\uA9CE\u0000"+
-            "\u0000\uD1AF\uB1AD\uB1AE\u0000\u0000\u0000\uB475"+
-            "\uDD72\uB760\uB761\uDD74\uDD76\uDD75\u0000\uE1D7"+
-            "\u0000\uE1D6\uBA49\uE1D8\u0000\uE5AC\uBCAE\u0000"+
-            "\uBED4\u0000\uC0B8\uC257\uC0B9\u0000\uA4E1\u0000"+
-            "\u0000\u0000\uCAE6\u0000\u0000\uCCB2\uA9D1\uA9D0"+
-            "\uA9D2\uABF3\uCED2\uCED3\u0000\u0000\uD1B0\uAEB0"+
-            "\uB1AF\uB476\uD951\uA4E2\u0000\uA47E\uA4E3\u0000"+
-            "\uC97D\uA5B7\uA5B6\uA5B4\uA5B5\u0000\u0000\u0000"+
-            "\uA6AB\uC9E9\uC9EB\uA6AA\uC9E3\u0000\uC9E4\u0000"+
-            "\uC9EA\uC9E6\uC9E8\uA6A9\uC9E5\uC9EC\uC9E7\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA7E1\uA7EA\uA7E8"+
-            "\uCAF0\uCAED\uCAF5\uA7E6\uCAF6\u0000\uA7DF\uCAF3"+
-            "\u0000\uA7E5\uCAEF\uCAEE\uA7E3\uCAF4\uA7E4\uA9D3"+
-            "\uA7DE\uCAF1\u0000\uCAE7\uA7DB\u0000\uA7EE\uCAEC"+
-            "\uCAF2\uA7E0\uA7E2\u0000\uCAE8\u0000\uCAE9\uCAEA"+
-            "\u0000\uA7ED\uA7E7\uA7EC\uCAEB\uA7EB\uA7DD\uA7DC"+
-            "\uA7E9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA9E1\uCCBE\uCCB7\uA9DC\uA9EF\uCCB3\uCCBA\uCCBC"+
-            "\uCCBF\uA9EA\u0000\uCCBB\uCCB4\uA9E8\uCCB8\u0000"+
-            "\uCCC0\uA9D9\u0000\uCCBD\uA9E3\uA9E2\uCCB6\uA9D7"+
-            "\u0000\u0000\uA9D8\u0000\uA9D6\u0000\uA9EE\uA9E6"+
-            "\uA9E0\uA9D4\uCCB9\uA9DF\uA9D5\uA9E7\uA9F0\uCED4"+
-            "\uA9E4\uCCB5\uA9DA\uA9DD\uA9DE\u0000\uA9EC\uA9ED"+
-            "\uA9EB\uA9E5\uA9E9\uA9DB\uABF4\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uCEDA\uAC41\uABF8\uABFA\uAC40"+
-            "\uCEE6\uABFD\uD1B1\uAEB1\uAC43\uCED7\uCEDF\uABFE"+
-            "\uCEDE\uCEDB\uCEE3\uCEE5\uABF7\uABFB\uAC42\uAEB3"+
-            "\uCEE0\uABF9\uAC45\uCED9\u0000\u0000\u0000\uABFC"+
-            "\uAEB2\uABF6\u0000\uCED6\uCEDD\uCED5\uCED8\uCEDC"+
-            "\uD1B2\uAC44\u0000\uCEE1\uCEE2\uCEE4\uABF5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uAEC1\uD1BE\uAEBF\uAEC0\uD1B4\uD1C4\u0000\uAEB6"+
-            "\u0000\u0000\uD566\uD1C6\uD1C0\u0000\uD1B7\u0000"+
-            "\uD1C9\uD1BA\uAEBC\uD57D\uD1BD\uAEBE\uAEB5\u0000"+
-            "\uD1CB\uD1BF\uAEB8\uD1B8\uD1B5\uD1B6\uAEB9\uD1C5"+
-            "\uD1CC\uAEBB\uD1BC\uD1BB\uAEC3\uAEC2\uAEB4\uAEBA"+
-            "\uAEBD\uD1C8\u0000\u0000\uD1C2\uAEB7\uD1B3\uD1CA"+
-            "\uD1C1\uD1C3\uD1C7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uD567\u0000\uB1B7"+
-            "\uB1CB\uB1CA\u0000\uB1BF\u0000\uD579\uD575\uD572"+
-            "\uD5A6\uB1BA\uB1B2\u0000\u0000\uD577\uB4A8\uB1B6"+
-            "\uD5A1\u0000\uB1CC\uB1C9\uD57B\uD56A\u0000\u0000"+
-            "\uB1C8\uD5A3\uD569\uB1BD\uB1C1\uD5A2\u0000\uD573"+
-            "\uB1C2\uB1BC\uD568\u0000\uB478\uD5A5\uD571\uB1C7"+
-            "\uD574\uD5A4\uB1C6\u0000\uD952\u0000\uB1B3\uD56F"+
-            "\uB1B8\uB1C3\u0000\uB1BE\uD578\uD56E\uD56C\uD57E"+
-            "\uB1B0\uB1C4\uB1B4\uB477\uD57C\uB1B5\u0000\uB1B1"+
-            "\uB1C0\uB1BB\uB1B9\uD570\uB1C5\uD56D\uD57A\uD576"+
-            "\uD954\uD953\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uD56B\uD964\u0000"+
-            "\uB47A\u0000\uD96A\uD959\uD967\uDD77\uB47D\uD96B"+
-            "\uD96E\uB47C\uD95C\uD96D\uD96C\uB47E\uD955\uB479"+
-            "\uB4A3\u0000\uB4A1\uD969\u0000\uD95F\uB4A5\uD970"+
-            "\uD968\uD971\uB4AD\uB4AB\uD966\uD965\u0000\uD963"+
-            "\uD95D\uB4A4\u0000\uB4A2\uD1B9\uD956\u0000\uDDB7"+
-            "\uD957\uB47B\uB4AA\uDD79\u0000\uB4A6\uB4A7\uD958"+
-            "\uD96F\uDD78\uD960\uD95B\uB4A9\uD961\uD95E\u0000"+
-            "\u0000\uB4AE\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uB770\u0000"+
-            "\u0000\uDD7C\uDDB1\uDDB6\uDDAA\uB76C\uDDBB\uB769"+
-            "\uDD7A\u0000\uDD7B\uB762\uB76B\uDDA4\uB76E\uB76F"+
-            "\uDDA5\u0000\uDDB2\uDDB8\uB76A\u0000\uB764\uDDA3"+
-            "\uDD7D\uDDBA\uDDA8\uDDA9\uDD7E\uDDB4\uDDAB\uDDB5"+
-            "\uDDAD\u0000\uB765\uE1D9\uB768\uB766\uDDB9\uDDB0"+
-            "\uDDAC\u0000\u0000\uDDA1\uBA53\uDDAF\uB76D\uDDA7"+
-            "\u0000\uDDA6\u0000\u0000\u0000\uB767\uB763\uE1EE"+
-            "\uDDB3\uDDAE\u0000\uDDA2\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uE1E9\u0000\uE1DA\uE1E5\u0000"+
-            "\uE1EC\uBA51\uB4AC\uE1EA\uBA4C\u0000\u0000\u0000"+
-            "\uBA4B\uE1F1\u0000\uE1DB\uE1E8\uE1DC\uE1E7\uBA4F"+
-            "\uE1EB\uD962\u0000\u0000\u0000\uE1F2\uE1E3\uBA52"+
-            "\uE5BA\uBCAF\u0000\uE1F0\uE1EF\uBA54\uE5AD\uBCB0"+
-            "\uE5AE\u0000\uE1DF\uE1E0\uE1DD\uE1E2\uE1DE\uE1F3"+
-            "\uBA4E\uBCB1\uBA50\uBA55\u0000\uE1E1\u0000\uE1ED"+
-            "\u0000\u0000\uE1E6\u0000\u0000\uE5B1\u0000\uBA4A"+
-            "\uBCB4\uE9AA\uE5B6\uE5B5\uE5B7\u0000\u0000\uE5B4"+
-            "\uBCB5\u0000\uBCBB\uBCB8\u0000\uBCB9\uE5AF\uE5B2"+
-            "\uE5BC\uBCC1\uBCBF\u0000\uE5B3\uD95A\uBCB2\uE5B9"+
-            "\uE5B0\u0000\uBCC2\uE5B8\uBA4D\uBCB7\uE1E4\u0000"+
-            "\u0000\uBCBA\u0000\uBCBE\uBCC0\uBCBD\uBCBC\u0000"+
-            "\uBCB6\uE5BB\uBCB3\uBCC3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uBED8\uBED9\uE9A9\uBEE2\uBEDF"+
-            "\u0000\uBED6\uBEDD\uE9AB\uBEDB\uBED5\u0000\uBEDC"+
-            "\u0000\uE9A8\uC0BB\uBED7\u0000\uBEDE\uC0BA\uE9A7"+
-            "\uE9A6\u0000\uBEE0\u0000\uBEE1\u0000\uE9A5\uE9A4"+
-            "\uC0BC\uE9AE\uBEDA\uE9AC\u0000\u0000\u0000\u0000"+
-            "\uC0BD\u0000\uC0C2\uECEA\uECEC\u0000\uC0BF\u0000"+
-            "\uECED\uECE9\u0000\uECEB\uC0C0\uC0C3\u0000\uECE8"+
-            "\uC0BE\uC0C1\uC259\uE9AD\uC258\u0000\u0000\uC25E"+
-            "\uEFD4\u0000\uC25C\uC25D\uEFD7\uEFD3\uC25A\uEFD1"+
-            "\uC36B\uEFD5\u0000\uEFD6\uEFD2\u0000\uC25B\uF242"+
-            "\u0000\uF245\u0000\u0000\uF246\uF244\uF247\uC36C"+
-            "\uF243\u0000\u0000\uF44E\uC464\uF44D\uF44C\uF44B"+
-            "\uC463\uC465\u0000\uF5CD\uC4E2\uC4E1\u0000\u0000"+
-            "\uF6E1\uF6E0\uF6E3\uC5CB\uC575\uF7DD\uF6E2\u0000"+
-            "\u0000\uF7DC\uC5CD\uC5CC\uC5F3\uF8A9\uF8EF\uA4E4"+
-            "\u0000\u0000\uD972\uE9AF\u0000\u0000\uA6AC\uCAF7"+
-            "\uA7F1\uA7EF\u0000\uA7F0\u0000\uCCC1\uA9F1\uAC46"+
-            "\u0000\uCEE7\u0000\uCEE8\u0000\uAC47\uD1CE\u0000"+
-            "\uAEC4\uAEC5\uD1CD\u0000\u0000\u0000\u0000\uB1D3"+
-            "\u0000\uB1CF\u0000\uD5A7\uB1D6\uB1D5\uB1CE\uB1D1"+
-            "\uB1D4\uB1D0\u0000\u0000\uD976\uB1CD\uB4AF\u0000"+
-            "\u0000\u0000\uB4B1\uB4B2\uD975\uD978\uB4B0\uD973"+
-            "\uD977\u0000\uD974\u0000\uB771\u0000\u0000\uDDBC"+
-            "\u0000\u0000\uBA56\uE1F4\uBEE3\uBCC4\uE5BD\uBCC5"+
-            "\uBCC6\uE5BF\uE5BE\uE5C0\uE9B1\u0000\u0000\uE9B0"+
-            "\uECEF\uECEE\uC0C4\uC0C5\uF248\u0000\u0000\uA4E5"+
-            "\u0000\u0000\u0000\u0000\uD979\u0000\u0000\u0000"+
-            "\uB4B4\uB4B3\uDDBD\u0000\uEFD8\uC4E3\uF7DE\uA4E6"+
-            "\u0000\uAEC6\u0000\uB1D8\uB1D7\uD97A\uD97B\uB772"+
-            "\uE1F5\uBA57\uE9B2\u0000\uA4E7\uA5B8\u0000\uA9F2"+
-            "\uCCC2\u0000\uCEE9\uAC48\uB1D9\u0000\uD97C\uB4B5"+
-            "\uB773\u0000\uE5C1\uE5C2\u0000\u0000\uECF0\uC25F"+
-            "\uF8F0\uA4E8\u0000\uCCC3\uA9F3\uAC49\u0000\uCEEA"+
-            "\u0000\uAEC7\uD1D2\uD1D0\uD1D1\uAEC8\uD1CF\u0000"+
-            "\u0000\u0000\u0000\uB1DB\uB1DC\uD5A8\uB1DD\uB1DA"+
-            "\uD97D\u0000\uD97E\uDDBE\u0000\u0000\uBA59\uBA58"+
-            "\u0000\u0000\uECF1\uEFD9\u0000\uF24A\uF249\uF44F"+
-            "\u0000\uC95E\uAC4A\u0000\u0000\uA4E9\uA5B9\u0000"+
-            "\uA6AE\uA6AD\u0000\u0000\uA6AF\uA6B0\uC9EE\uC9ED"+
-            "\uCAF8\uA7F2\uCAFB\uCAFA\uCAF9\uCAFC\u0000\u0000"+
-            "\u0000\u0000\uA9F4\uCCC9\uCCC5\uCCCE\u0000\u0000"+
-            "\uA9FB\u0000\uA9F9\uCCCA\uCCC6\uCCCD\uA9F8\uAA40"+
-            "\uCCC8\uCCC4\uA9FE\uCCCB\uA9F7\uCCCC\uA9FA\uA9FC"+
-            "\uCCD0\uCCCF\uCCC7\uA9F6\uA9F5\uA9FD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uCEEF\uCEF5\u0000\uAC50"+
-            "\uAC4D\uCEEC\uCEF1\u0000\uAC53\uAC4B\uCEF0\uAC4E"+
-            "\uAC51\u0000\u0000\uCEF3\u0000\uAC4C\uCEF8\uAC4F"+
-            "\u0000\uAC52\uCEED\uCEF2\uCEF6\uCEEE\uCEEB\u0000"+
-            "\u0000\uCEF7\uCEF4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uAED0\uAEC9\uAECC\u0000\uAECF\u0000\uD1D5"+
-            "\u0000\uAECA\uD1D3\u0000\uAECE\u0000\u0000\uAECB"+
-            "\u0000\uD1D6\uAECD\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uD5AC\uB1DF\uD5AB\uD5AD\uB1DE\uB1E3\uD1D4"+
-            "\u0000\uD5AA\uD5AE\u0000\uB1E0\uD5A9\uB1E2\u0000"+
-            "\uB1E1\u0000\uD9A7\u0000\uD9A2\u0000\uB4B6\uB4BA"+
-            "\uB4B7\uD9A5\uD9A8\u0000\uB4B8\u0000\uB4B9\uB4BE"+
-            "\uDDC7\uD9A6\uB4BC\uD9A3\uD9A1\u0000\uB4BD\u0000"+
-            "\uD9A4\u0000\u0000\u0000\uB779\u0000\uDDBF\uB776"+
-            "\uB777\uB775\uDDC4\uDDC3\uDDC0\uB77B\u0000\u0000"+
-            "\uDDC2\uB4BB\u0000\u0000\uDDC6\uDDC1\uB778\uB774"+
-            "\uB77A\uDDC5\u0000\u0000\u0000\uBA5C\u0000\uE1F8"+
-            "\uE1F7\uE1F6\uBA5A\u0000\u0000\u0000\u0000\u0000"+
-            "\uBA5B\uE5C5\uE5C8\uBCC8\u0000\u0000\uBCC7\uE5C9"+
-            "\uE5C4\uBCCA\uE5C6\u0000\uBCC9\uE5C3\u0000\uE5C7"+
-            "\uBEE9\uBEE6\uE9BB\uE9BA\u0000\uE9B9\uE9B4\u0000"+
-            "\uE9B5\u0000\u0000\u0000\uBEE7\u0000\uBEE4\uBEE8"+
-            "\uE9B3\uBEE5\uE9B6\uE9B7\uE9BC\u0000\u0000\uE9B8"+
-            "\u0000\u0000\uECF2\u0000\u0000\u0000\uC0C7\u0000"+
-            "\uEFDC\uC0C6\uEFDA\uEFDB\uC260\uC36E\uF24B\u0000"+
-            "\uC36D\u0000\u0000\uF451\uF452\u0000\uC466\u0000"+
-            "\uF450\uC4E4\u0000\uF7DF\uC5CE\uF8AA\uF8AB\u0000"+
-            "\uA4EA\u0000\uA6B1\uA6B2\uA7F3\u0000\uCCD1\uAC54"+
-            "\uAED1\uB1E4\u0000\u0000\uB0D2\u0000\uB4BF\uB4C0"+
-            "\uB3CC\uD9A9\u0000\uB77C\uE1FA\uE1F9\u0000\u0000"+
-            "\uA4EB\uA6B3\uCCD2\uAA42\u0000\uAA41\u0000\uCEF9"+
-            "\uCEFA\u0000\uD1D7\uD1D8\uAED2\uAED3\u0000\uAED4"+
-            "\uD5AF\u0000\u0000\uB1E6\u0000\uB4C2\u0000\uB4C1"+
-            "\uDDC8\uDF7A\uE1FB\uE9BD\u0000\u0000\uC261\uC467"+
-            "\uA4EC\u0000\uA5BC\uA5BD\uA5BB\uA5BE\uA5BA\u0000"+
-            "\u0000\uA6B6\u0000\uC9F6\uA6B5\uA6B7\u0000\u0000"+
-            "\uC9F1\uC9F0\uC9F3\uC9F2\uC9F5\uA6B4\uC9EF\uC9F4"+
-            "\u0000\u0000\u0000\u0000\u0000\uCAFD\uA7FD\uCAFE"+
-            "\uCB43\uA7FC\u0000\uCB47\uCB42\uCB45\uA7F5\uA7F6"+
-            "\uA7F7\uA7F8\u0000\uA840\u0000\uCB41\uA7FA\uA841"+
-            "\u0000\uCB40\uCB46\u0000\uA7F9\uCB44\uA7FB\uA7F4"+
-            "\uA7FE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uAA57\u0000\uCCD4\uAA43\u0000\uAA4D"+
-            "\uAA4E\uAA46\uAA58\uAA48\uCCDC\uAA53\uCCD7\uAA49"+
-            "\uCCE6\uCCE7\uCCDF\uCCD8\uAA56\uCCE4\uAA51\uAA4F"+
-            "\u0000\uCCE5\u0000\uCCE3\uCCDB\uCCD3\uCCDA\uAA4A"+
-            "\u0000\uAA50\u0000\uAA44\uCCDE\uCCDD\uCCD5\u0000"+
-            "\uAA52\uCCE1\uCCD6\uAA55\uCCE8\uAA45\u0000\uAA4C"+
-            "\uCCD9\uCCE2\uAA54\u0000\uAA47\uAA4B\u0000\uCCE0"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uCF5B\uAC5C"+
-            "\uAC69\u0000\uCF56\uCF4C\uAC62\uCF4A\uAC5B\uCF45"+
-            "\uAC65\uCF52\uCEFE\uCF41\u0000\u0000\u0000\u0000"+
-            "\uCF44\uCEFB\uCF51\uCF61\uAC60\uCF46\uCF58\u0000"+
-            "\uCEFD\uCF5F\uCF60\uCF63\uCF5A\uCF4B\uCF53\uAC66"+
-            "\uAC59\uAC61\uAC6D\uAC56\uAC58\u0000\u0000\u0000"+
-            "\uCF43\uAC6A\uAC63\uCF5D\uCF40\uAC6C\uAC67\uCF49"+
-            "\u0000\u0000\uAC6B\uCF50\uCF48\uAC64\uCF5C\uCF54"+
-            "\u0000\uAC5E\uCF62\uCF47\uAC5A\uCF59\uCF4F\uAC5F"+
-            "\uCF55\uAC57\uCEFC\uAC68\uAEE3\uAC5D\uCF4E\uCF4D"+
-            "\uCF42\u0000\uCF5E\u0000\uCF57\u0000\u0000\uAC55"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uD1EC\uAEEA\uD1ED\u0000\uD1E1\uAEDF"+
-            "\uAEEB\u0000\uD1DA\u0000\uD1E3\uD1EB\u0000\uD1D9"+
-            "\uD1F4\uAED5\u0000\u0000\u0000\uD1F3\uD1EE\u0000"+
-            "\uD1EF\uAEDD\uAEE8\uD1E5\u0000\uD1E6\uD1F0\uD1E7"+
-            "\u0000\uD1E2\uD1DC\uD1DD\uD1EA\uD1E4\u0000\u0000"+
-            "\uAED6\uAEDA\uD1F2\uD1DE\uAEE6\uAEE2\u0000\u0000"+
-            "\uAEE5\uAEEC\uAEDB\uAEE7\uD1E9\uAEE9\uAED8\u0000"+
-            "\uAED7\uD1DB\u0000\uD1DF\uAEE0\uD1F1\uD1E8\uD1E0"+
-            "\uAEE4\uAEE1\u0000\uAED9\uAEDC\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uD5C4\u0000\uD5B4\uD5B5\uD5B9"+
-            "\u0000\uD5C8\uD5C5\u0000\uD5BE\uD5BD\uB1ED\uD5C1"+
-            "\uD5D0\uD5B0\u0000\uD5D1\uD5C3\uD5D5\uD5C9\uB1EC"+
-            "\uD5C7\uB1E7\uB1FC\uB1F2\u0000\uB1F6\uB1F5\uD5B1"+
-            "\u0000\uD5CE\uD5D4\uD5CC\uD5D3\u0000\u0000\uD5C0"+
-            "\uD5B2\uD5D2\uD5C2\uB1EA\uB1F7\u0000\uD5CB\uB1F0"+
-            "\u0000\u0000\u0000\uD5CA\uD5B3\uB1F8\u0000\uB1FA"+
-            "\uD5CD\uB1FB\uB1E9\uD5BA\uD5CF\u0000\u0000\uB1EF"+
-            "\uB1F9\uD5BC\uD5C6\uD5B7\uD5BB\uB1F4\uD5B6\uB1E8"+
-            "\uB1F1\uB1EE\uD5BF\uAEDE\uD9C0\uB1EB\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uB1F3\u0000\uD9C3\uD9D9"+
-            "\uD9CE\uB4D6\u0000\uB4D1\uD9BD\uB4D2\uD9CD\u0000"+
-            "\uD9C6\uD9D3\uB4CE\uD9AB\uD9D5\uB4C4\uD9B3\uB4C7"+
-            "\uB4C6\u0000\uB4D7\u0000\uD9AD\uD9CF\uD9D0\uB4C9"+
-            "\uB4C5\uD9BB\u0000\uB4D0\uD9B6\u0000\uD9D1\uB4CC"+
-            "\uD9C9\uD9D6\uD9B0\uD9B5\uD9AF\u0000\uB4CB\uD9C2"+
-            "\uDDDE\uD9B1\uB4CF\uD9BA\uD9D2\uB4CA\uD9B7\uD9B4"+
-            "\uD9C5\uB4CD\uB4C3\uB4D9\uD9C8\uD9C7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uD9AC\uB4C8\uD9D4\uD9BC"+
-            "\uD9BE\u0000\uD9CB\uD9CA\uD9AA\uB4D3\uB4D5\uD9B2"+
-            "\uD9B9\uD9C1\uB4D4\uD9B8\uD9C4\uD9D7\u0000\uD9CC"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uD9D8\u0000\u0000"+
-            "\u0000\u0000\uD9AE\u0000\u0000\u0000\u0000\uDDF2"+
-            "\uB7A6\u0000\uDDF0\uDDDB\uDDE0\uDDD9\u0000\uDDEC"+
-            "\uDDCB\uDDD2\u0000\uDDEA\uDDF4\uDDDC\u0000\uDDCF"+
-            "\uDDE2\uDDE7\uDDD3\u0000\uDDE4\uDDD0\u0000\u0000"+
-            "\uDDD7\uDDD8\uB7A8\uDDEB\uDDE9\u0000\uDDCC\uDDEE"+
-            "\u0000\uDDEF\uDDF1\uB7AC\uB7A4\u0000\uD5B8\uDDD4"+
-            "\uDDE6\uDDD5\uB7A1\uB7B1\uDDED\uB7AF\uB7AB\uDDCA"+
-            "\uB7A3\u0000\uDDCD\uB7B0\u0000\uDDDD\uDDC9\u0000"+
-            "\uB7A9\uDDE1\uDDD1\uB7AA\uDDDA\uB77E\uB4D8\uDDE3"+
-            "\uD9BF\uDDCE\u0000\u0000\uDDE8\uB7A5\uDDE5\uB7A2"+
-            "\uDDDF\uB7AD\uDDD6\uDDF3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uB7A7\uDEC6\u0000\u0000\uB7AE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uE24A\uE248\u0000"+
-            "\uE25E\uE246\u0000\uE258\uB77D\uBA5F\uE242\uE25D"+
-            "\u0000\uE247\uE255\uBA64\uBA5D\u0000\uE25B\u0000"+
-            "\uE240\uE25A\u0000\uBA6F\uE251\uE261\uBA6D\uE249"+
-            "\uBA5E\uE24B\uE259\uBA67\uE244\uBA6B\uBA61\uE24D"+
-            "\uE243\uE1FC\u0000\uE257\uBA68\uE260\uE1FD\uBA65"+
-            "\u0000\uE253\u0000\uBA66\uE245\uE250\uE24C\uE24E"+
-            "\u0000\uBA60\uE25F\uBA6E\uE24F\u0000\uE262\u0000"+
-            "\u0000\uE1FE\uE254\uBA63\uBA6C\uBA6A\uE241\uE256"+
-            "\uBA69\u0000\u0000\uBA62\uE252\u0000\u0000\u0000"+
-            "\u0000\uE25C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uE5D5\u0000\uE5D1\uE5CD\uE5E1\uE5DE"+
-            "\uBCCD\u0000\u0000\uE5E5\uE5D4\uBCD8\uE5DB\u0000"+
-            "\u0000\uE5D0\uE5DA\uBCD5\uE5EE\u0000\uE5EB\uE5DD"+
-            "\uE5CE\u0000\u0000\uE5E2\uE5E4\uBCD1\uE5D8\uE5D3"+
-            "\uE5CA\uBCCE\uBCD6\u0000\uE5E7\uBCD7\uE5CB\uE5ED"+
-            "\uE5E0\uE5E6\uBCD4\u0000\u0000\uE5E3\u0000\uE5EA"+
-            "\u0000\uBCD9\u0000\uBCD3\uE5DC\uE5CF\uE5EF\uE5CC"+
-            "\uE5E8\uBCD0\u0000\uE5D6\u0000\uE5D7\uBCCF\uBCCC"+
-            "\uE5D2\uBCD2\u0000\uBCCB\u0000\uE5E9\uE5EC\uE5D9"+
-            "\uE9CA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uE9C2\u0000\uE9BE\uBEF6\u0000\u0000"+
-            "\uBEEB\uBEF0\uBEEC\uE9CC\uE9D7\uBEEA\uE9C4\uE9CD"+
-            "\uE5DF\uE9CE\u0000\u0000\uBEF1\u0000\uE9DD\uBEF5"+
-            "\uBEF8\uE9C0\u0000\uBEF4\u0000\uE9DB\uE9DC\uE9D2"+
-            "\uE9D1\uE9C9\u0000\u0000\uE9D3\uE9DA\uE9D9\u0000"+
-            "\uBEEF\uBEED\uE9CB\uE9C8\u0000\uE9C5\uE9D8\uBEF7"+
-            "\uE9D6\uBEF3\uBEF2\u0000\uE9D0\u0000\uE9BF\uE9C1"+
-            "\uE9C3\uE9D5\uE9CF\uBEEE\u0000\uE9C6\u0000\uE9D4"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uE9C7\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC0CF\uED45"+
-            "\uC0C8\uECF5\u0000\uED41\uC0CA\uED48\u0000\uECFC"+
-            "\u0000\uECF7\u0000\u0000\uED49\uECF3\uECFE\u0000"+
-            "\uC0D1\uED44\uED4A\uECFD\uC0C9\uED40\uECF4\uC0D0"+
-            "\u0000\u0000\uED47\uECF9\uC0CC\u0000\uECFB\uECF8"+
-            "\uC0D2\uECFA\uC0CB\uC0CE\uED43\uECF6\uED46\u0000"+
-            "\uED42\u0000\u0000\u0000\uC263\uEFE7\uC268\uC269"+
-            "\u0000\u0000\u0000\uC262\uEFE6\u0000\uEFE3\uEFE4"+
-            "\uC266\uEFDE\uEFE2\uC265\u0000\uEFDF\u0000\u0000"+
-            "\u0000\u0000\uC267\uC264\u0000\uEFDD\uEFE1\uEFE5"+
-            "\u0000\u0000\u0000\uF251\uF24E\uF257\u0000\uF256"+
-            "\uF254\uF24F\u0000\uC372\u0000\u0000\u0000\u0000"+
-            "\u0000\uF250\uC371\uC0CD\uF253\uC370\uF258\uF252"+
-            "\uF24D\uEFE0\u0000\u0000\u0000\uC36F\u0000\uF24C"+
-            "\uF456\u0000\uF455\uF255\uC468\u0000\uF459\uF45A"+
-            "\uF454\uF458\u0000\uF453\u0000\u0000\u0000\u0000"+
-            "\uF5D1\uF457\uC4E7\uC4E5\uF5CF\u0000\u0000\u0000"+
-            "\uF5D2\u0000\uF5CE\uF5D0\uC4E6\u0000\u0000\u0000"+
-            "\uF6E5\uF6E6\uC576\uF6E4\u0000\u0000\u0000\uF7E2"+
-            "\uC5CF\uF7E0\uF7E1\uF8AC\u0000\u0000\uC656\uF8F3"+
-            "\uF8F1\uF8F2\uF8F4\u0000\u0000\u0000\uF9BB\u0000"+
-            "\uA4ED\uA6B8\u0000\uAA59\u0000\uCCE9\u0000\u0000"+
-            "\uCF64\u0000\u0000\u0000\uD1F5\uD1F7\u0000\uD1F6"+
-            "\u0000\uD1F8\uB1FD\uD5D7\uD1F9\u0000\uD5D6\uD5D8"+
-            "\uD5D9\uD9DA\uB4DB\uD9DB\uD9DD\uB4DC\uB4DA\uD9DC"+
-            "\u0000\uDDFA\uDDF8\uDDF7\u0000\uDDF6\uDDF5\uB7B2"+
-            "\uDDF9\uBA70\uE263\uE265\uBA71\uE264\uBCDB\u0000"+
-            "\uBCDA\uE5F0\u0000\u0000\uE9DF\uE9DE\uE9E0\u0000"+
-            "\u0000\uBEF9\u0000\uED4B\uC0D3\u0000\uEFE8\uC26A"+
-            "\uF259\uC577\uA4EE\uA5BF\uA6B9\uA842\uAA5A\uAA5B"+
-            "\u0000\u0000\uAC6E\u0000\u0000\uD1FA\u0000\u0000"+
-            "\u0000\u0000\uB7B3\u0000\u0000\u0000\uE6D1\uBEFA"+
-            "\uC26B\uA4EF\u0000\uA6BA\u0000\u0000\uCCEB\uAA5C"+
-            "\uCCEA\u0000\uCF65\uAC6F\uCF66\u0000\uAC70\u0000"+
-            "\uD1FC\uAEEE\uAEED\u0000\uD5DE\uD5DC\uD5DD\uD5DB"+
-            "\u0000\uD5DA\u0000\u0000\uD9DE\uD9E1\uB4DE\uD9DF"+
-            "\uB4DD\uD9E0\u0000\uDDFB\u0000\u0000\uE266\uE267"+
-            "\uE268\u0000\uE5F3\uE5F2\uBCDC\uE5F1\uE5F4\uE9E1"+
-            "\u0000\u0000\uE9E2\uE9E3\u0000\uED4C\uC0D4\uC26C"+
-            "\uF25A\u0000\uC4E8\uC95F\u0000\uAC71\uCF67\uAEEF"+
-            "\u0000\u0000\uB1FE\u0000\uB4DF\uD9E2\u0000\uB7B5"+
-            "\uB7B4\u0000\u0000\uE269\uE26A\uBCDD\uBCDE\uE9E5"+
-            "\uE9E4\uEFE9\uF7E3\uA4F0\uC960\uA5C0\u0000\uA843"+
-            "\uCB48\u0000\uAC72\uB7B6\uA4F1\u0000\uCF68\uAC73"+
-            "\uCF69\u0000\uC0D5\uA4F2\u0000\u0000\uCCEC\u0000"+
-            "\uCF6A\u0000\uD242\uD241\uD1FE\u0000\uD1FD\uD243"+
-            "\uD240\u0000\u0000\uB240\uB241\u0000\u0000\uB4E0"+
-            "\uD9E3\u0000\uD9E4\uD9E5\u0000\u0000\u0000\uDE41"+
-            "\uDE42\uDE40\u0000\uDDFD\uDDFE\uB7B7\uE26B\uE5F7"+
-            "\uE5F6\uE5F5\uE5F8\uE9E7\uE9E6\uBEFB\uE9E8\u0000"+
-            "\uC0D6\uED4D\u0000\uEFEA\uF25B\uF6E7\u0000\uA4F3"+
-            "\uA5C2\uA5C1\u0000\uAA5D\uC961\uC97E\uA6BB\u0000"+
-            "\uC9F7\uCB49\uCB4A\uAA5E\u0000\uCCED\u0000\uAC74"+
-            "\uCF6B\uCF6C\u0000\uAEF0\uAEF4\uD244\uAEF3\uAEF1"+
-            "\uAEF2\u0000\uD5DF\uB242\uB4E3\u0000\uB4E1\uB4E2"+
-            "\uD9E6\u0000\u0000\uBA72\uA4F4\u0000\uC9A1\u0000"+
-            "\uA5C3\u0000\u0000\uC9A4\u0000\u0000\uA5C6\uC9A3"+
-            "\uA5C5\uA5C4\uA844\uC9A2\u0000\u0000\uC9F8\u0000"+
-            "\u0000\u0000\uC9FC\uC9FE\uCA40\uA6C5\uA6C6\uC9FB"+
-            "\uA6C1\u0000\uC9F9\u0000\uC9FD\uA6C2\u0000\uA6BD"+
-            "\u0000\uA6BE\u0000\uA6C4\uC9FA\uA6BC\uA845\uA6BF"+
-            "\uA6C0\uA6C3\u0000\u0000\u0000\uCB5B\uCB59\uCB4C"+
-            "\uA851\uCB53\uA84C\uCB4D\u0000\uCB55\u0000\uCB52"+
-            "\uA84F\uCB51\uA856\uCB5A\uA858\u0000\uA85A\u0000"+
-            "\uCB4B\u0000\uA84D\uCB5C\u0000\uA854\uA857\u0000"+
-            "\uCD45\uA847\uA85E\uA855\uCB4E\uA84A\uA859\uCB56"+
-            "\uA848\uA849\uCD43\uCB4F\uA850\uA85B\uCB5D\uCB50"+
-            "\uA84E\u0000\uA853\uCCEE\uA85C\uCB57\uA852\u0000"+
-            "\uA85D\uA846\uCB54\uA84B\uCB58\uCD44\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uAA6A\uAA7A\uCCF5\uAA71\u0000"+
-            "\uCD4B\uAA62\u0000\uAA65\uCD42\u0000\uCCF3\uCCF7"+
-            "\uAA6D\uAA6F\uCCFA\uAA76\uAA68\uAA66\uAA67\uAA75"+
-            "\uCD47\uAA70\uCCF9\uCCFB\uAA6E\uAA73\uCCFC\uCD4A"+
-            "\u0000\uAC75\uAA79\u0000\uAA63\uCD49\u0000\uCD4D"+
-            "\uCCF8\uCD4F\uCD40\uAA6C\uCCF4\uAA6B\uAA7D\uAA72"+
-            "\u0000\uCCF2\uCF75\uAA78\uAA7C\uCD41\uCD46\u0000"+
-            "\uAA7E\uAA77\uAA69\uAA5F\u0000\uAA64\u0000\uCCF6"+
-            "\uAA60\uCD4E\u0000\uCCF0\uCCEF\uCCFD\uCCF1\uAA7B"+
-            "\uAEF5\uAA74\uCCFE\uAA61\u0000\uACA6\u0000\u0000"+
-            "\u0000\uCD4C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uCF7C\uCFA1\u0000\uCFA4\uCF77\u0000\u0000\uCFA7"+
-            "\uCFAA\uCFAC\uCF74\uAC76\uAC7B\uD249\uACAD\uCFA5"+
-            "\uCFAD\uCF7B\uCF73\u0000\u0000\u0000\uD264\uAC7E"+
-            "\uCFA2\uCF78\uCF7A\uACA5\u0000\uCF7D\uAC7D\uCF70"+
-            "\uCFA8\u0000\uCFAB\u0000\u0000\uAC7A\u0000\uACA8"+
-            "\uCF6D\uACAA\uAC78\uACAE\uCFA9\uCF6F\uACAB\uD25E"+
-            "\uCD48\uAC7C\uAC77\uCF76\uCF6E\uACAC\uACA4\uCFA3"+
-            "\uACA9\uACA7\uCF79\uACA1\uCF71\uACA2\uACA3\uCF72"+
-            "\uCFA6\uAC79\uCF7E\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uD24C\uAEFD\uAF43\u0000\u0000\u0000\uD255\uD25B"+
-            "\uD257\uD24A\uD24D\uD246\uD247\uAF4A\uAEFA\uD256"+
-            "\uD25F\uAF45\uAEF6\u0000\uAF40\uD24E\uAF42\uD24F"+
-            "\uD259\u0000\u0000\u0000\uAF44\uD268\uD248\uAEFC"+
-            "\uAEFB\uAF48\uD245\uD266\uD25A\uD267\uD261\uD253"+
-            "\uD262\u0000\uD25C\uD265\uD263\uAF49\uD254\uAEF9"+
-            "\uAEF8\uAF41\uAF47\uD260\uAF46\uD251\uB243\u0000"+
-            "\uD269\uD250\uD24B\uAEFE\uAF4B\uAEF7\u0000\uD258"+
-            "\uD25D\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uB265\uD5E1\uD5E5\u0000\uB252\uB250"+
-            "\u0000\u0000\uB247\uD5E3\uD5E2\uB25B\u0000\uD5E8"+
-            "\uB255\u0000\uD5FA\uD647\uB244\uD5F7\uD5F0\uB267"+
-            "\uD5E0\u0000\uD5FC\u0000\uB264\uB258\uB263\uB24E"+
-            "\uD5EC\uD5FE\uD5F6\uB24F\uB249\uD645\u0000\uD5FD"+
-            "\uD640\uB251\uB259\uD642\uD5EA\uD5FB\uD5EF\uD644"+
-            "\uB25E\uB246\uB25C\uD5F4\uD5F2\uD5F3\uB253\uD5EE"+
-            "\uD5ED\uB248\uD5E7\uD646\uB24A\uD5F1\uB268\u0000"+
-            "\uB262\uD5E6\uB25F\uB25D\uB266\uD5F8\uB261\uD252"+
-            "\uD5F9\uB260\uD641\uB245\uD5F5\uB257\uD5E9\uB256"+
-            "\u0000\uB254\uB24C\uB24B\uD9E7\uD643\u0000\u0000"+
-            "\uD5EB\u0000\u0000\uD9FC\u0000\uB24D\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uB541\uB25A\uB4EE\uD9F6\uB4FC\u0000\uD9EA"+
-            "\uB4EB\uB4E7\uDA49\uB4ED\uB4F1\uB4EC\uB4F5\uDA4D"+
-            "\uDA44\u0000\u0000\uD9F1\uB4FA\uB4F4\uD9FD\uB4E4"+
-            "\uDA4A\uDA43\uB4E8\uD9F7\uB4F7\uDA55\uDA56\u0000"+
-            "\uB4E5\uDA48\uB4F9\uD9FB\uD9ED\uD9EE\uB4FD\uD9F2"+
-            "\uD9F9\uD9F3\u0000\uB4FB\uB544\uD9EF\uD9E8\uD9E9"+
-            "\u0000\uD9EB\uB4EA\uD9F8\u0000\uB4F8\uB542\u0000"+
-            "\u0000\uD9FA\uDA53\uDA4B\uB4E6\uDA51\uB4F2\u0000"+
-            "\uB4F0\u0000\uDA57\uB4EF\uDA41\uD9F4\uD9FE\uB547"+
-            "\uDA45\uDA42\uD9F0\uB543\uDA4F\uDA4C\uDA54\uB4E9"+
-            "\uDA40\uB546\u0000\uDA47\u0000\u0000\uB4F3\uB4F6"+
-            "\u0000\uDA46\uB545\uD9F5\uD5E4\u0000\u0000\uDA50"+
-            "\uDA4E\uDA52\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uD9EC\uB540\u0000\u0000\u0000\uDE61\uDE60\uDE46"+
-            "\uB7BD\u0000\uDE5F\uDE49\uDE4A\u0000\uB7C7\uDE68"+
-            "\uB7C2\uDE5E\u0000\uDE43\uB7C8\uB7BE\uDE52\uDE48"+
-            "\uDE4B\uDE63\uB7B8\uDE6A\uDE62\uB7C1\uDE57\uB7CC"+
-            "\u0000\u0000\uB7CB\uB7C5\u0000\u0000\uDE69\uB7B9"+
-            "\uDE55\uDE4C\uDE59\uDE65\uB7CD\u0000\uB7BB\uDE54"+
-            "\u0000\uDE4D\uB7C4\u0000\uB7C3\uDE50\uDE5A\uDE64"+
-            "\uDE47\uDE51\uB7BC\uDE5B\uB7C9\uB7C0\uDE4E\uB7BF"+
-            "\uDE45\uDE53\uDE67\uB4FE\uBAB0\uDE56\uE26C\uDE58"+
-            "\uDE66\uB7C6\uDE4F\uB7BA\uB7CA\uBCF0\uDE44\u0000"+
-            "\uDE5D\u0000\u0000\u0000\uDE5C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uE2AA\uBAAD\uE27D\uE2A4\uBAA2"+
-            "\u0000\uE26E\uBAAF\u0000\uBA77\uE26D\uE2B0\uBAB1"+
-            "\uE271\uE2A3\u0000\uE273\uE2B3\uE2AF\uBA75\uBAA1";
-
-        private final static String innerIndex3=
-            "\uE653\uBAAE\uBA7D\uE26F\u0000\uE2AE\uBAA3\uE2AB"+
-            "\uE2B8\uE275\uE27E\u0000\u0000\uE2B6\uE2AC\uBA7C"+
-            "\u0000\u0000\uE27C\uBA76\uBA74\uBAA8\u0000\u0000"+
-            "\uE27A\uE277\uE278\u0000\uE2B2\u0000\uE2B7\uE2B5"+
-            "\uBA7A\uE2B9\uBA7E\uBAA7\u0000\uE270\uE5FA\uE279"+
-            "\u0000\uBA78\uBAAC\uBAA9\uBA7B\uE2A5\uE274\uBAAA"+
-            "\uE2A7\uBAA4\uBAA6\uBA73\u0000\uE2A9\uE2A1\uE272"+
-            "\uBAA5\uE2B1\uE2B4\uE27B\uE2A8\u0000\uBA79\uBCDF"+
-            "\uE2A6\uE5F9\u0000\uE2AD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uE276\uE644"+
-            "\uE64E\uBCE2\uE64D\uE659\uBCE4\uE64B\u0000\uE64F"+
-            "\uBCEF\u0000\uE646\uBCE7\u0000\uE652\uE9F0\uBCF3"+
-            "\uBCF2\uE654\uE643\uE65E\uBCED\u0000\uBCE3\uE657"+
-            "\u0000\uE65B\uE660\uE655\uE649\uBCE6\uBCE9\uBCF1"+
-            "\uBCEC\u0000\uE64C\uE2A2\u0000\u0000\uE648\uE65F"+
-            "\uBCE8\u0000\uBCEB\uE661\uBCE0\uE656\uE5FB\uE65C"+
-            "\uC0DF\u0000\uE64A\u0000\uBCE1\uE645\uBCE5\uE5FC"+
-            "\uBAAB\uE641\u0000\uE65A\uE642\uE640\uBCEA\u0000"+
-            "\uE658\u0000\uE5FE\uE651\uE650\uE65D\uE647\uBCEE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uE9F3\u0000"+
-            "\uBF49\uBEFE\uEA40\uE9EB\uBF41\uE9F7\uBF48\uBF43"+
-            "\uE9F5\uED4F\uE9FB\uEA42\uE9FA\uE9E9\uE9F8\uEA44"+
-            "\uEA46\uBEFD\uEA45\uBF44\uBF4A\u0000\uBF47\u0000"+
-            "\uE9FE\uBF46\uE9F9\u0000\uE9ED\uE9F2\u0000\uE9FD"+
-            "\uBF45\uBF42\uBEFC\uBF40\uE9F1\u0000\uE5FD\uE9EC"+
-            "\uE9EF\uEA41\uE9F4\uE9EA\uED4E\uEA43\uE9EE\uE9FC"+
-            "\u0000\u0000\u0000\u0000\uED51\uC0E3\u0000\u0000"+
-            "\uC0D7\u0000\u0000\uC0DB\uED53\uED59\uED57\uC0D9"+
-            "\uC0DA\uC0E1\uED5A\uED52\uC0DC\u0000\uED56\uED55"+
-            "\uED5B\uC0E2\u0000\uC0DD\uC0E0\uED54\uC0E4\uC0DE"+
-            "\uC0E5\uC0D8\uED58\u0000\uED50\u0000\u0000\uEFF7"+
-            "\u0000\u0000\uC271\uEFF4\uEFF6\u0000\uC26F\uEFF2"+
-            "\uEFF3\uEFEE\u0000\u0000\uE9F6\uEFEF\uC270\uEFEB"+
-            "\u0000\uC26D\uEFF8\uC26E\uEFEC\uEFED\uEFF1\uC273"+
-            "\u0000\uC272\u0000\u0000\uEFF0\uC378\uF25F\uF265"+
-            "\uC379\uF25C\uC376\uC373\uF267\uC377\u0000\uC374"+
-            "\uF25E\uF261\uF262\uF263\uF266\u0000\uEFF5\uF25D"+
-            "\uC375\uF264\uF268\uF260\u0000\u0000\u0000\uF45D"+
-            "\uC46A\uF460\uC46B\uF468\uF45F\uF45C\u0000\uF45E"+
-            "\uF462\uF465\uF464\uF467\uF45B\u0000\uC469\uF463"+
-            "\uF466\uF469\uF461\uF5D3\uF5D4\uF5D8\uF5D9\u0000"+
-            "\uF5D6\uF5D7\uF5D5\u0000\uC4E9\u0000\u0000\u0000"+
-            "\u0000\uC578\uF6EB\u0000\u0000\uF6E8\uF6E9\uF6EA"+
-            "\uC579\u0000\uF7E5\uF7E4\u0000\uF8AF\uC5F4\uF8AD"+
-            "\uF8B0\uF8AE\uF8F5\uC657\uC665\uF9A3\uF96C\u0000"+
-            "\uF9A2\uF9D0\uF9D1\uA4F5\u0000\u0000\u0000\u0000"+
-            "\uA6C7\uCA41\u0000\u0000\uCB5E\u0000\uA85F\u0000"+
-            "\uA862\u0000\uCB5F\u0000\uA860\uA861\u0000\u0000"+
-            "\u0000\u0000\uCD58\uCD5A\uCD55\uCD52\uCD54\u0000"+
-            "\u0000\u0000\uAAA4\u0000\u0000\u0000\uAAA2\u0000"+
-            "\u0000\uCD56\uAAA3\uCD53\uCD50\uAAA1\uCD57\u0000"+
-            "\uCD51\uAAA5\uCD59\u0000\u0000\u0000\u0000\uCFAF"+
-            "\u0000\uCFB3\u0000\u0000\uACB7\u0000\u0000\u0000"+
-            "\u0000\uCFB6\u0000\uACAF\uACB2\uACB4\uACB6\uACB3"+
-            "\uCFB2\uCFB1\u0000\uACB1\uCFB4\uCFB5\u0000\uCFAE"+
-            "\uACB5\u0000\uACB0\u0000\u0000\u0000\uCFB0\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uD277\uD278\uD279"+
-            "\uAF50\u0000\uAF4C\uD26E\u0000\uD276\uD27B\uAF51"+
-            "\u0000\uD26C\uD272\uD26B\uD275\u0000\u0000\uD271"+
-            "\uAF4D\uAF4F\uD27A\u0000\uD26A\uD26D\uD273\u0000"+
-            "\uD274\uD27C\uD270\u0000\uAF4E\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uB26D"+
-            "\uD64E\u0000\u0000\uD650\uD64C\u0000\uD658\uD64A"+
-            "\uD657\uB269\uD648\uDA5B\uD652\uB26C\u0000\uD653"+
-            "\uD656\u0000\uD65A\u0000\uD64F\u0000\uD654\u0000"+
-            "\u0000\uB26A\uB26B\uD659\uD64D\uD649\uD65B\u0000"+
-            "\uD651\u0000\u0000\uD655\u0000\u0000\u0000\uD64B"+
-            "\u0000\uB548\uB549\uDA65\uB54F\u0000\uDA59\uDA62"+
-            "\uDA58\uB54C\uDA60\uDA5E\u0000\uDA5F\uB54A\u0000"+
-            "\uDA63\u0000\u0000\u0000\u0000\u0000\uDA5C\uDA5A"+
-            "\uB54B\uDA5D\uDA61\u0000\u0000\u0000\uB54D\u0000"+
-            "\u0000\u0000\uDA64\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uDE70\uDE77\uDE79\uDEA1\u0000\uB7DA\uDE6B"+
-            "\u0000\uB7D2\u0000\uDE7A\uB7D7\uDEA2\uB7CE\u0000"+
-            "\uDE7D\u0000\uDE6D\uDE7E\uDE6C\u0000\uB7DC\u0000"+
-            "\uDE78\uB7CF\uDEA3\u0000\uB7D4\uDE71\uB7D9\uDE7C"+
-            "\uDE6F\uDE76\uDE72\uDE6E\uB7D1\uB7D8\uB7D6\uB7D3"+
-            "\uB7DB\uB7D0\uDE75\u0000\uB7D5\u0000\uB54E\u0000"+
-            "\uDE7B\u0000\uDE73\u0000\u0000\u0000\u0000\u0000"+
-            "\uDE74\u0000\u0000\uE2C1\u0000\uBAB4\u0000\u0000"+
-            "\uE2BD\uE2C3\uE2BF\u0000\uBAB6\uE2BE\uE2C2\uE2BA"+
-            "\u0000\uE2BC\uBAB5\u0000\u0000\u0000\u0000\uE2C0"+
-            "\uE2BB\u0000\uBAB7\u0000\uBAB2\u0000\u0000\uE2C4"+
-            "\u0000\uBAB3\uE667\uE664\uE670\uE66A\uE66C\uBCF4"+
-            "\uE666\uE66E\u0000\u0000\uE66D\uE66B\u0000\uE671"+
-            "\uBCF7\uE668\uE66F\u0000\uBCF5\u0000\u0000\uE663"+
-            "\uE665\uBCF6\uE662\uE672\u0000\uE669\u0000\u0000"+
-            "\uEA4A\uBF51\u0000\u0000\uEA55\uEA53\uBF4B\uEA49"+
-            "\uEA4C\uEA4D\uEA48\uBF55\uBF56\uEA47\uEA56\uEA51"+
-            "\uBF4F\uBF4C\uEA50\uEA4E\u0000\u0000\uBF52\uEA52"+
-            "\uBF4D\u0000\uBF4E\u0000\uEA4F\uBF50\uEA4B\u0000"+
-            "\uEA54\uBF53\uEA57\uEA58\uBF54\u0000\u0000\uC0E7"+
-            "\uC0EE\uED5C\uED62\u0000\uED60\uC0EA\uC0E9\uC0E6"+
-            "\uED5E\u0000\u0000\u0000\uC0EC\uC0EB\uC0E8\u0000"+
-            "\uED61\uED5D\uED5F\u0000\uC0ED\u0000\u0000\u0000"+
-            "\uC277\uEFFB\u0000\uC274\uC275\uEFFD\uC276\uEFFA"+
-            "\u0000\uEFF9\uF26C\uEFFC\u0000\uF26D\uC37A\uF26B"+
-            "\u0000\u0000\uF26A\u0000\uF269\uC37B\u0000\u0000"+
-            "\uC46C\u0000\u0000\uF46A\uF46B\u0000\u0000\u0000"+
-            "\u0000\uF5DC\uF5DB\uC4EA\u0000\uF5DA\uF6EC\uF6ED"+
-            "\u0000\u0000\uF7E6\uF8B1\u0000\u0000\uF8F6\uF9BC"+
-            "\uC679\uF9C6\uA4F6\u0000\uAAA6\uAAA7\u0000\u0000"+
-            "\uACB8\u0000\u0000\u0000\u0000\uC0EF\uA4F7\u0000"+
-            "\uAAA8\uAF52\uB7DD\uA4F8\u0000\uB26E\uBAB8\uC962"+
-            "\u0000\uCFB7\uD27D\u0000\uE2C5\u0000\uC0F0\uA4F9"+
-            "\uAAA9\uCFB8\uCFB9\uDA66\uB550\u0000\u0000\uDEA4"+
-            "\u0000\u0000\uB7DE\uE2C6\u0000\u0000\uBCF8\u0000"+
-            "\uC37C\uA4FA\uDA67\uA4FB\u0000\uA6C9\uCA42\uA6C8"+
-            "\uA865\uA864\uA863\uCB60\u0000\u0000\u0000\uAAAA"+
-            "\u0000\uAAAB\uCD5B\u0000\uCFBA\u0000\uCFBD\uACBA"+
-            "\uCFBB\u0000\uACB9\uCFBC\uACBB\u0000\uD2A2\uD2A1"+
-            "\uD27E\uAF53\u0000\uD65D\uD65E\uB26F\uD65C\uD65F"+
-            "\uB552\uB270\u0000\u0000\uB551\uDA6B\uDA6A\u0000"+
-            "\uDA68\uDA69\u0000\uDA6C\uDEA6\uDEA5\uDEA9\u0000"+
-            "\uDEA8\uDEA7\uBAB9\uE2C9\u0000\uE2C8\uBABA\uE2C7"+
-            "\uE673\u0000\uE674\uBCF9\u0000\uEA59\uEA5A\u0000"+
-            "\u0000\uF272\uC37D\uF271\uF270\uF26E\uF26F\uC4EB"+
-            "\uF46C\uF6EE\uF8F7\u0000\uA4FC\u0000\uC9A5\uA5C7"+
-            "\uC9A6\u0000\u0000\u0000\uCA43\uCA44\u0000\u0000"+
-            "\u0000\u0000\uCB66\u0000\u0000\uCB62\u0000\uCB61"+
-            "\uAAAC\uCB65\uA867\uCB63\uA866\uCB67\uCB64\u0000"+
-            "\u0000\uCD5F\uCFBE\uCD5D\uCD64\u0000\uAAAD\u0000"+
-            "\uAAB0\uCD65\uCD61\u0000\uCD62\u0000\uCD5C\uAAAF"+
-            "\uCD5E\uAAAE\uCD63\u0000\uCD60\u0000\u0000\uCFC2"+
-            "\uACBD\uACBE\u0000\uCFC5\uCFBF\u0000\uCFC4\u0000"+
-            "\uCFC0\uACBC\uCFC3\uCFC1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uD2A8\uD2A5\u0000\uD2A7\uAF58"+
-            "\uAF57\uAF55\uD2A4\uD2A9\uAF54\uAF56\uD2A6\uD667"+
-            "\uD2A3\uD2AA\u0000\u0000\u0000\u0000\u0000\uD662"+
-            "\uD666\u0000\uD665\uDA6E\uDA79\u0000\u0000\uD668"+
-            "\u0000\uD663\uDA6D\uB274\u0000\u0000\uB273\uD661"+
-            "\uD664\uB275\u0000\uB272\uB271\uD660\uD669\u0000"+
-            "\u0000\u0000\uDA70\uDA77\u0000\uB554\uDA76\uDA73"+
-            "\u0000\uB556\u0000\u0000\u0000\uDA75\u0000\u0000"+
-            "\uDA6F\uDA71\uDA74\uDA72\uB555\uDA78\uB553\uB7DF"+
-            "\u0000\u0000\uDEAD\uDEAC\uDEAA\u0000\uB7E2\uB7E1"+
-            "\uDEAE\u0000\uDEAB\uE2CA\uBABB\uB7E0\u0000\u0000"+
-            "\u0000\uDEB0\uDEAF\u0000\uE2CD\uE2CB\uBCFA\u0000"+
-            "\uBABC\uE2CC\uE676\u0000\u0000\u0000\u0000\uBCFB"+
-            "\uE675\uE67E\uE67D\uE67B\u0000\uE67A\uE677\uE678"+
-            "\uE679\uE67C\uE6A1\u0000\u0000\uEA5F\uEA5C\uEA5D"+
-            "\uBF57\uEA5B\uEA61\uEA60\uEA5E\u0000\uED64\uED65"+
-            "\uC0F1\u0000\uC0F2\uED63\u0000\uC279\uEFFE\uC278"+
-            "\uC37E\u0000\uC3A1\uC46D\uF46E\uF46D\uF5DD\uF6EF"+
-            "\uC57A\uF7E8\uF7E7\uF7E9\uA5C8\uCFC6\uAF59\uB276"+
-            "\uD66A\uA5C9\uC9A7\uA4FD\u0000\u0000\uCA45\u0000"+
-            "\u0000\u0000\uCB6C\uCB6A\uCB6B\uCB68\uA868\uCB69"+
-            "\u0000\u0000\u0000\u0000\u0000\uCD6D\u0000\uAAB3"+
-            "\uCD6B\uCD67\uCD6A\u0000\uCD66\uAAB5\uCD69\u0000"+
-            "\uAAB2\uAAB1\u0000\uAAB4\uCD6C\uCD68\u0000\u0000"+
-            "\u0000\u0000\uACC2\uACC5\uCFCE\uCFCD\uCFCC\uACBF"+
-            "\uCFD5\uCFCB\u0000\uACC1\uD2AF\u0000\uCFD2\uCFD0"+
-            "\uACC4\u0000\uCFC8\uCFD3\u0000\uCFCA\uCFD4\uCFD1"+
-            "\uCFC9\u0000\uACC0\uCFD6\uCFC7\uACC3\u0000\u0000"+
-            "\u0000\u0000\uD2B4\uD2AB\uD2B6\u0000\uD2AE\uD2B9"+
-            "\uD2BA\uD2AC\uD2B8\uD2B5\uD2B3\uD2B7\uAF5F\u0000"+
-            "\uAF5D\u0000\u0000\uD2B1\u0000\uD2AD\u0000\uD2B0"+
-            "\uD2BB\uD2B2\uAF5E\uCFCF\u0000\uAF5A\uAF5C\u0000"+
-            "\u0000\u0000\u0000\u0000\uD678\uD66D\uD66B\u0000"+
-            "\uD66C\u0000\uD673\u0000\uD674\uD670\uB27B\uD675"+
-            "\uD672\uD66F\u0000\uB279\uD66E\uB277\uB27A\uD671"+
-            "\uD679\uAF5B\uB278\uD677\uD676\uB27C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uDA7E\u0000"+
-            "\u0000\u0000\uDAA1\uB560\u0000\uDAA7\u0000\u0000"+
-            "\uDAA9\uDAA2\uB55A\uDAA6\uDAA5\uB55B\uB561\u0000"+
-            "\uB562\uDAA8\uB558\uDA7D\uDA7B\uDAA3\uDA7A\uB55F"+
-            "\uDA7C\uDAA4\uDAAA\uB559\uB55E\uB55C\uB55D\u0000"+
-            "\u0000\u0000\uB557\u0000\u0000\u0000\u0000\uB7E9"+
-            "\uDEB7\uB7E8\uDEBB\u0000\uDEB1\u0000\uDEBC\u0000"+
-            "\u0000\u0000\uDEB2\uDEB3\u0000\uDEBD\uDEBA\uDEB8"+
-            "\uDEB9\uDEB5\uDEB4\u0000\uDEBE\uB7E5\u0000\uDEB6"+
-            "\u0000\uB7EA\uB7E4\uB7EB\uB7EC\u0000\uB7E7\uB7E6"+
-            "\u0000\u0000\uE2CE\uBABE\uBABD\u0000\u0000\uE2D3"+
-            "\u0000\uBCFC\uBABF\u0000\u0000\uBAC1\uE2D4\uB7E3"+
-            "\uBAC0\uE2D0\uE2D2\uE2CF\u0000\uE2D1\u0000\u0000"+
-            "\u0000\uE6AB\u0000\u0000\uE6AA\uE6A7\uBD40\uEA62"+
-            "\uBD41\uE6A6\u0000\uBCFE\u0000\uE6A8\uE6A5\uE6A2"+
-            "\uE6A9\uE6A3\uE6A4\uBCFD\u0000\u0000\u0000\u0000"+
-            "\uED69\u0000\uEA66\u0000\uEA65\uEA67\u0000\uED66"+
-            "\uBF5A\u0000\uEA63\u0000\uBF58\u0000\uBF5C\uBF5B"+
-            "\uEA64\uEA68\u0000\uBF59\u0000\uED6D\uC0F5\uC27A"+
-            "\uC0F6\uC0F3\uED6A\uED68\u0000\uED6B\u0000\uED6E"+
-            "\uC0F4\uED6C\uED67\u0000\u0000\uF042\uF045\uF275"+
-            "\uF040\u0000\uF46F\uF046\u0000\uC3A2\uF044\uC27B"+
-            "\uF041\uF043\uF047\uF276\u0000\uF274\u0000\u0000"+
-            "\u0000\u0000\uC3A3\uF273\u0000\u0000\u0000\uC46E"+
-            "\u0000\u0000\u0000\u0000\uC4ED\uF6F1\uC4EC\uF6F3"+
-            "\uF6F0\uF6F2\uC5D0\uF8B2\uA5CA\uCD6E\uD2BC\uD2BD"+
-            "\uB27D\uDEBF\uBF5D\uC3A4\uC57B\uF8B3\uA5CB\u0000"+
-            "\uCD6F\uA260\u0000\u0000\uCFD7\u0000\uCFD8\u0000"+
-            "\u0000\u0000\u0000\u0000\uD2BE\uD2BF\uB27E\uB2A1"+
-            "\u0000\u0000\u0000\uDAAB\u0000\uDEC2\uDEC1\uDEC0"+
-            "\uE2D5\u0000\uE2D6\uE2D7\uBAC2\u0000\u0000\uE6AD"+
-            "\uE6AC\u0000\u0000\uEA69\uBF5E\uBF5F\u0000\uED72"+
-            "\uED6F\uED70\uED71\uF049\uF048\uC27C\uF277\uF5DE"+
-            "\uA5CC\u0000\uACC6\u0000\uB2A2\uDEC3\u0000\uA5CD"+
-            "\u0000\uD2C0\uB2A3\u0000\u0000\uB563\uB564\u0000"+
-            "\uA5CE\uA5CF\uCA46\uA86A\uA869\uACC7\uCFD9\uDAAC"+
-            "\uA5D0\uA5D1\uA5D2\uA5D3\u0000\u0000\u0000\uA86B"+
-            "\uA86C\uCB6E\uCB6D\u0000\u0000\uAAB6\uCD72\uCD70"+
-            "\uCD71\u0000\u0000\u0000\u0000\u0000\u0000\uCFDA"+
-            "\uCFDB\u0000\u0000\uACCB\uACC9\u0000\uACCA\uACC8"+
-            "\u0000\u0000\u0000\u0000\uAF60\u0000\u0000\u0000"+
-            "\u0000\uAF64\uAF63\uD2C1\uAF62\uAF61\u0000\uD2C2"+
-            "\u0000\u0000\uB2A6\uD67B\uD67A\uB2A4\uB2A5\u0000"+
-            "\u0000\u0000\uB566\uB565\uDAAE\u0000\u0000\uDAAD"+
-            "\uB2A7\u0000\u0000\u0000\u0000\u0000\uB7ED\uDEC5"+
-            "\uB7EE\uDEC4\u0000\u0000\u0000\uE2D8\uE6AE\uBD42"+
-            "\uEA6A\u0000\u0000\u0000\uED73\u0000\uC3A6\uC3A5"+
-            "\u0000\u0000\uC57C\uA5D4\uCD73\u0000\u0000\uB2A8"+
-            "\uE2D9\uBAC3\u0000\u0000\uCB6F\uCB70\u0000\u0000"+
-            "\uCD74\uAAB8\uAAB9\u0000\u0000\uAAB7\u0000\u0000"+
-            "\u0000\u0000\uACCF\uACD0\uACCD\uACCE\u0000\uCFDC"+
-            "\u0000\u0000\uCFDD\uACCC\u0000\u0000\u0000\u0000"+
-            "\uD2C3\u0000\uAF68\uAF69\u0000\uB2AB\uD2C9\u0000"+
-            "\uAF6E\uAF6C\uD2CA\uD2C5\uAF6B\uAF6A\uAF65\uD2C8"+
-            "\uD2C7\uD2C4\uAF6D\u0000\uD2C6\uAF66\u0000\uAF67"+
-            "\u0000\u0000\uB2AC\uD6A1\uD6A2\uB2AD\uD67C\uD67E"+
-            "\uD6A4\uD6A3\uD67D\u0000\uB2A9\uB2AA\u0000\uDAB6"+
-            "\uB56B\uB56A\uDAB0\uB568\u0000\uDAB3\uB56C\uDAB4"+
-            "\uB56D\uDAB1\uB567\uB569\uDAB5\u0000\uDAB2\uDAAF"+
-            "\u0000\u0000\u0000\u0000\u0000\uDED2\u0000\uDEC7"+
-            "\uB7F0\uB7F3\uB7F2\uB7F7\uB7F6\uDED3\uDED1\uDECA"+
-            "\uDECE\uDECD\uB7F4\uDED0\uDECC\uDED4\uDECB\uB7F5"+
-            "\uB7EF\uB7F1\u0000\uDEC9\u0000\u0000\u0000\u0000"+
-            "\uE2DB\uBAC7\uE2DF\uBAC6\uE2DC\uBAC5\u0000\uDEC8"+
-            "\uDECF\uE2DE\u0000\uBAC8\uE2E0\uE2DD\uE2DA\u0000"+
-            "\u0000\uE6B1\uE6B5\uE6B7\uE6B3\uE6B2\uE6B0\uBD45"+
-            "\uBD43\uBD48\uBD49\uE6B4\uBD46\uE6AF\uBD47\uBAC4"+
-            "\uE6B6\uBD44\u0000\u0000\u0000\uEA6C\u0000\uEA6B"+
-            "\uEA73\uEA6D\uEA72\uEA6F\uBF60\uEA71\u0000\u0000"+
-            "\uBF61\u0000\uBF62\u0000\uEA70\uEA6E\u0000\u0000"+
-            "\u0000\u0000\uC0F8\uED74\u0000\u0000\uC0F7\uED77"+
-            "\uED75\uED76\u0000\u0000\uC0F9\u0000\u0000\u0000"+
-            "\uF04D\u0000\uC2A1\uF04E\u0000\u0000\uC27D\uF04F"+
-            "\uC27E\uF04C\uF050\u0000\uF04A\u0000\u0000\uC3A7"+
-            "\uF278\uC3A8\uC46F\u0000\uF04B\uC470\u0000\u0000"+
-            "\u0000\uC4EE\uF5DF\u0000\uC57E\uF6F4\uC57D\u0000"+
-            "\uF7EA\uC5F5\uC5F6\u0000\u0000\uF9CC\u0000\u0000"+
-            "\uACD1\uCFDE\u0000\uB56E\uB56F\uA5D5\uA6CA\uCA47"+
-            "\u0000\uCB71\uA86D\u0000\uAABA\u0000\uACD2\uACD3"+
-            "\uACD4\uD6A6\uD2CB\uAF6F\u0000\u0000\uB2AE\uD6A5"+
-            "\u0000\u0000\uDAB8\uB571\u0000\uDAB7\uB570\u0000"+
-            "\u0000\uDED5\uBD4A\uE6BB\uE6B8\uE6B9\uE6BA\u0000"+
-            "\u0000\u0000\u0000\u0000\uED78\u0000\uF051\u0000"+
-            "\u0000\u0000\uF471\uF470\u0000\uF6F5\uA5D6\uCD75"+
-            "\uAF70\u0000\u0000\u0000\uB572\uDED6\u0000\u0000"+
-            "\uE2E1\u0000\uBD4B\uEA74\u0000\uF052\uF472\uA5D7"+
-            "\u0000\u0000\uAABB\uACD7\uCFDF\uACD8\uACD6\u0000"+
-            "\uACD5\uD2CC\uAF71\u0000\u0000\uAF72\uAF73\u0000"+
-            "\u0000\u0000\uB2B0\uD6A7\uB2AF\u0000\u0000\u0000"+
-            "\u0000\u0000\uDAB9\uB2B1\uB573\uDED7\uB7F8\uB7F9"+
-            "\u0000\uBAC9\u0000\uBACA\uBD4C\uBF64\uEA75\uBF63"+
-            "\u0000\uED79\uC0FA\u0000\uF053\uF473\uA5D8\uA86E"+
-            "\uCD78\uCD77\uAABC\uCD76\uAABD\uCD79\u0000\uCFE5"+
-            "\uACDB\uACDA\uCFE7\uCFE6\uACDF\u0000\uACDE\u0000"+
-            "\u0000\uACD9\u0000\uCFE1\uCFE2\uCFE3\u0000\uACE0"+
-            "\uCFE0\uACDC\uCFE4\uACDD\u0000\u0000\u0000\u0000"+
-            "\uD2CF\uD2D3\uD2D1\uD2D0\u0000\uD2D4\u0000\u0000"+
-            "\u0000\uD2D5\uD2D6\uD2CE\u0000\uD2CD\u0000\uAF75"+
-            "\uAF76\u0000\uD2D7\uD2D2\u0000\uD6B0\u0000\uD2D8"+
-            "\uAF77\uAF74\u0000\u0000\u0000\uD6AA\u0000\uD6A9"+
-            "\u0000\uD6AB\uD6AC\uD6AE\uD6AD\uD6B2\uB2B5\uB2B2"+
-            "\uB2B6\uD6A8\uB2B7\uD6B1\uB2B4\uD6AF\uB2B3\u0000"+
-            "\u0000\u0000\u0000\u0000\uDABC\uDABE\uDABA\uDABB"+
-            "\u0000\u0000\uDABF\uDAC1\uDAC2\uDABD\uDAC0\uB574"+
-            "\u0000\u0000\uDEDB\u0000\uDEE0\uDED8\uDEDC\u0000"+
-            "\u0000\uDEE1\uDEDD\uB7FA\uB843\u0000\uB7FD\uDED9"+
-            "\uDEDA\uBACE\uB846\uB7FE\u0000\uB844\uB7FC\uDEDF"+
-            "\uB845\uDEDE\uB841\uB7FB\uB842\uDEE2\uE2E6\uE2E8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uB840\u0000\u0000\uE2E3\uBACC\uE2E9\uBACD"+
-            "\uE2E7\uE2E2\uE2E5\uE2EA\uBACB\uE2E4\u0000\uBD4E"+
-            "\uE6BF\uE6BE\u0000\uBD51\uBD4F\uE6BC\uBD4D\uE6BD"+
-            "\u0000\uBD50\u0000\u0000\u0000\uEA7D\u0000\uEAA1"+
-            "\u0000\uEA7E\uEA76\uEA7A\uEA79\uEA77\uBF66\uBF67"+
-            "\uBF65\uEA78\uEA7B\uEA7C\u0000\uBF68\u0000\uC140"+
-            "\uEDA3\u0000\uC0FC\uED7B\uC0FE\uC141\u0000\u0000"+
-            "\uC0FD\uEDA2\uED7C\uC0FB\uEDA1\uED7A\uED7E\uED7D"+
-            "\u0000\u0000\uF055\uC2A4\uC2A5\uC2A2\u0000\uC2A3"+
-            "\u0000\u0000\uF054\u0000\uF27B\u0000\u0000\uC3A9"+
-            "\u0000\uF279\uF27A\u0000\uF474\uF477\uF475\uF476"+
-            "\uF5E0\u0000\u0000\uC4EF\uF7EB\uF8B4\u0000\uC5F7"+
-            "\uF8F8\uF8F9\uC666\uA5D9\uACE1\u0000\uDAC3\u0000"+
-            "\uDEE3\u0000\uA5DA\uA86F\u0000\uAABE\u0000\uCFE8"+
-            "\uCFE9\uAF78\u0000\u0000\uDAC4\uB575\uB847\uC142"+
-            "\uEDA4\uF27C\uF478\uA5DB\u0000\u0000\u0000\uCDA1"+
-            "\uCD7A\uCD7C\uCD7E\uCD7D\uCD7B\uAABF\u0000\u0000"+
-            "\u0000\u0000\uACE2\uCFF2\u0000\uCFED\uCFEA\u0000"+
-            "\u0000\uCFF1\u0000\u0000\uACE4\uACE5\uCFF0\uCFEF"+
-            "\uCFEE\uCFEB\uCFEC\uCFF3\uACE3\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uAF7C\u0000\uAFA4"+
-            "\uAFA3\uD2E1\uD2DB\uD2D9\u0000\uAFA1\uD6B9\uAF7A"+
-            "\uD2DE\uD2E2\uD2E4\uD2E0\uD2DA\uAFA2\uD2DF\uD2DD"+
-            "\uAF79\uD2E5\uAFA5\uD2E3\uAF7D\uD2DC\u0000\uAF7E"+
-            "\uAF7B\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uB2B9\u0000\uD6BA\u0000\u0000"+
-            "\uD6B3\uD6B5\uD6B7\u0000\uD6B8\uD6B6\uB2BA\u0000"+
-            "\uD6BB\u0000\uD6B4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uDAC8\uB576\uDAD0\u0000"+
-            "\uDAC5\u0000\uDAD1\u0000\uDAC6\uDAC7\u0000\u0000"+
-            "\uDACF\uDACE\uDACB\uB2B8\uB577\uDAC9\uDACC\uB578"+
-            "\uDACD\uDACA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uDEEE\u0000\uDEF2\uB84E\u0000\uE2F0\uB851"+
-            "\uDEF0\u0000\u0000\uDEED\uDEE8\uDEEA\uDEEB\uDEE4"+
-            "\u0000\uB84D\u0000\u0000\uB84C\u0000\uB848\uDEE7"+
-            "\u0000\uB84F\u0000\uB850\uDEE6\uDEE9\uDEF1\uB84A"+
-            "\uB84B\uDEEF\uDEE5\u0000\u0000\u0000\uE2F2\uBAD0"+
-            "\uE2F4\uDEEC\uE2F6\uBAD4\uE2F7\uE2F3\u0000\uBAD1"+
-            "\uE2EF\uBAD3\uE2EC\uE2F1\uE2F5\uE2EE\u0000\u0000"+
-            "\uB849\u0000\uE2EB\uBAD2\uE2ED\u0000\u0000\u0000"+
-            "\u0000\u0000\uBD54\uE6C1\uBD58\u0000\uBD56\u0000"+
-            "\u0000\uBACF\u0000\uE6C8\uE6C9\uBD53\u0000\u0000"+
-            "\uE6C7\uE6CA\uBD55\uBD52\uE6C3\uE6C0\uE6C5\uE6C2"+
-            "\uBD59\uE6C4\u0000\u0000\uE6C6\uBD57\u0000\u0000"+
-            "\u0000\u0000\uBF6A\uEAA8\u0000\uEAA2\uEAA6\uEAAC"+
-            "\uEAAD\uEAA9\uEAAA\uEAA7\u0000\uEAA4\u0000\uBF6C"+
-            "\uBF69\uEAA3\uEAA5\u0000\uBF6B\uEAAB\u0000\uC146"+
-            "\u0000\u0000\uEDAA\uEDA5\uC145\u0000\u0000\uC143"+
-            "\u0000\uEDAC\uC144\uEDA8\uEDA9\uEDA6\uEDAD\uF056"+
-            "\u0000\uC147\uEDA7\u0000\uEDAE\uEDAB\u0000\u0000"+
-            "\u0000\uF05A\u0000\u0000\uF057\u0000\uC2A6\u0000"+
-            "\uF05B\uF05D\uF05C\uF058\uF059\u0000\u0000\uF2A3"+
-            "\u0000\uC3AA\u0000\uF27E\uF2A2\uF27D\uF2A4\u0000"+
-            "\u0000\uF2A1\u0000\uF47A\uF47D\uF479\uC471\uF47B"+
-            "\uF47C\uF47E\uC472\uC474\uC473\uF5E1\u0000\uF5E3"+
-            "\u0000\uF5E2\u0000\u0000\u0000\uF6F6\u0000\u0000"+
-            "\uF8B5\uF8FA\uA5DC\u0000\u0000\uCB72\uAAC0\uCDA3"+
-            "\uAAC1\uAAC2\uCDA2\u0000\uCFF8\uCFF7\uACE6\uACE9"+
-            "\uACE8\uACE7\uCFF4\uCFF6\uCFF5\u0000\u0000\uD2E8"+
-            "\uAFA7\uD2EC\uD2EB\uD2EA\uD2E6\uAFA6\uAFAA\uAFAD"+
-            "\u0000\u0000\uAFAE\uD2E7\uD2E9\uAFAC\uAFAB\uAFA9"+
-            "\uAFA8\uD6C2\u0000\uD6C0\uD6BC\uB2BB\u0000\uD6BD"+
-            "\uB2BC\uD6BE\uD6BF\uD6C1\u0000\uB2BD\u0000\u0000"+
-            "\uDAD5\u0000\uDAD4\uDAD3\uDAD2\u0000\u0000\u0000"+
-            "\u0000\uDEF6\uB852\u0000\uDEF3\uDEF5\u0000\uB853"+
-            "\u0000\uB854\uDEF4\u0000\u0000\u0000\u0000\u0000"+
-            "\uE341\u0000\uE2F9\uE2FA\u0000\uBAD7\uBAD5\uBAD6"+
-            "\uE343\u0000\uE342\uE2FE\uE2FD\uE2FC\uE2FB\uE340"+
-            "\uE2F8\u0000\uE6CB\uE6D0\uE6CE\u0000\u0000\u0000"+
-            "\uE6CD\uE6CC\uE6CF\u0000\uEAAE\u0000\uBF6D\uC148"+
-            "\uEDB0\u0000\uC149\uEDAF\uF05F\uF05E\uC2A7\u0000"+
-            "\uF2A5\uC3AB\uF4A1\uC5A1\uF6F7\u0000\uF8B7\uF8B6"+
-            "\uC9A8\uACEA\uACEB\uD6C3\u0000\uB856\uA5DD\uA872"+
-            "\uA871\uA870\u0000\u0000\u0000\uCDA4\u0000\u0000"+
-            "\uAAC4\uAAC3\u0000\uACEE\u0000\uCFFA\uCFFD\uCFFB"+
-            "\u0000\uACEC\uACED\u0000\u0000\uCFF9\uCFFC\u0000"+
-            "\uAFB5\u0000\u0000\u0000\uD2F3\uD2F5\uD2F4\uAFB2"+
-            "\uD2EF\u0000\u0000\uAFB0\uAFAF\u0000\uAFB3\uAFB1"+
-            "\u0000\uAFB4\uD2F2\uD2ED\uD2EE\uD2F1\uD2F0\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uD6C6\uD6C7"+
-            "\uD6C5\u0000\uD6C4\uB2BE\u0000\u0000\u0000\u0000"+
-            "\uB57D\u0000\uDAD6\uDAD8\uDADA\uB57C\u0000\u0000"+
-            "\uB57A\u0000\uDAD7\uB57B\uDAD9\uB579\u0000\u0000"+
-            "\uDF41\uDEF7\uDEFA\uDEFE\uB85A\uDEFC\u0000\uDEFB"+
-            "\uDEF8\uDEF9\uB858\uDF40\uB857\u0000\uB85C\uB85B"+
-            "\uB859\u0000\uDEFD\u0000\u0000\u0000\uE349\u0000"+
-            "\uE348\u0000\u0000\uE344\u0000\u0000\uBAD8\uE347"+
-            "\uE346\uBAD9\u0000\u0000\u0000\u0000\u0000\uBD5E"+
-            "\u0000\uE6D2\u0000\uBD5F\uBD5B\uBD5D\u0000\uBD5A"+
-            "\uBD5C\u0000\u0000\u0000\uEAAF\u0000\uBF70\uEAB1"+
-            "\uEAB0\u0000\uE345\uBF72\uBF71\uBF6E\uBF6F\u0000"+
-            "\u0000\u0000\u0000\u0000\uEDB5\u0000\uEDB3\uC14A"+
-            "\uEDB4\u0000\uEDB6\uEDB2\uEDB1\u0000\u0000\uF060"+
-            "\uC2AA\uC2A8\uC2A9\u0000\u0000\u0000\u0000\uF2A6"+
-            "\uF2A7\uC3AD\u0000\uC3AC\uF4A3\uF4A4\uF4A2\u0000"+
-            "\uF6F8\uF6F9\u0000\u0000\uA5DE\uCA48\uA873\u0000"+
-            "\uCDA5\uAAC6\uAAC5\uCDA6\u0000\u0000\uD040\uACEF"+
-            "\uCFFE\uACF0\u0000\u0000\uAFB6\uD2F8\uD2F6\uD2FC"+
-            "\uAFB7\uD2F7\uD2FB\uD2F9\uD2FA\u0000\u0000\uD6C8"+
-            "\uD6CA\u0000\uB2BF\u0000\uD6C9\uB2C0\uB5A2\uB5A1"+
-            "\uB57E\uDADB\u0000\u0000\u0000\u0000\uDF44\uB85D"+
-            "\uB85E\u0000\uDF43\uDF42\u0000\u0000\u0000\u0000"+
-            "\uE34A\uBADB\uBADA\uE34B\uE34C\u0000\uBD61\uBD60"+
-            "\u0000\uEAB5\uE6D3\uE6D5\uE6D4\uEAB4\uEAB2\uEAB6"+
-            "\uEAB3\u0000\uBF73\u0000\u0000\u0000\uEDB7\uC14B"+
-            "\uEDB8\uEDB9\u0000\u0000\uC2AB\uC2AC\u0000\uC475"+
-            "\u0000\u0000\uC5D1\uA5DF\u0000\u0000\u0000\u0000"+
-            "\u0000\uD041\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uD2FD\uAFB8\u0000\u0000\u0000\u0000\u0000\uB3BA"+
-            "\uB3B9\u0000\u0000\uB5A4\uDADD\uB5A3\uDADC\u0000"+
-            "\u0000\u0000\u0000\uDF45\u0000\uBADC\uE34D\uBADD"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC476\uF4A5"+
-            "\u0000\uA6CB\uAAC7\uCDA7\u0000\uACF2\u0000\uACF1"+
-            "\uD042\uD043\u0000\u0000\uD340\uD342\uAFB9\u0000"+
-            "\uD344\uD347\uD345\u0000\u0000\u0000\uD346\uD343"+
-            "\uD2FE\uAFBA\uD348\uD341\u0000\u0000\u0000\u0000"+
-            "\uD6D3\uB2C6\uD6DC\uB2C3\u0000\uD6D5\uB2C7\u0000"+
-            "\uB2C1\u0000\uD6D0\uD6DD\uD6D1\uD6CE\uB2C5\u0000"+
-            "\uB2C2\u0000\uD6D4\uD6D7\uB2C4\uD6D8\uB2C8\uD6D9"+
-            "\uD6CF\uD6D6\uD6DA\uD6D2\uD6CD\uD6CB\u0000\u0000"+
-            "\uD6DB\u0000\u0000\uDADF\u0000\u0000\u0000\u0000"+
-            "\uDAE4\u0000\u0000\u0000\uDAE0\uDAE6\uB5A7\uD6CC"+
-            "\uDAE1\uB5A5\uDADE\uB5AC\uDAE2\uB5AB\uDAE3\uB5AD"+
-            "\uB5A8\uB5AE\uB5A9\u0000\uB5AA\u0000\uB5A6\u0000"+
-            "\uDAE5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uB861\uDF50\u0000\uDF53\uDF47\uDF4C\uDF46\uB863"+
-            "\u0000\uDF4A\u0000\u0000\u0000\uDF48\uB862\u0000"+
-            "\uDF4F\uDF4E\uDF4B\uDF4D\uDF49\uBAE1\uDF52\uB85F"+
-            "\uDF51\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uE35D\u0000\uBAE8\uE358\u0000\uBAE7"+
-            "\uE34E\u0000\uE350\uBAE0\uE355\uE354\uE357\uBAE5"+
-            "\uE352\uE351\u0000\u0000\uBAE4\uBADF\uE353\uBAE2"+
-            "\uE359\uE35B\u0000\uE356\uE34F\uBAE3\u0000\u0000"+
-            "\uBD69\uBADE\u0000\u0000\uE35C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uE6D9\uBD62\u0000\uE6DB"+
-            "\u0000\uBD63\u0000\u0000\uBD65\uE6DE\u0000\uE6D6"+
-            "\uBAE6\uE6DC\u0000\u0000\u0000\u0000\uE6D8\u0000"+
-            "\uB860\uBD68\u0000\u0000\uBD64\u0000\uBD66\uBD67"+
-            "\u0000\uBF76\uE6DD\uE6D7\uBD6A\u0000\uE6DA\u0000"+
-            "\u0000\u0000\u0000\u0000\uEAC0\uEABB\u0000\u0000"+
-            "\uEAC5\uBF74\uEABD\uBF78\uEAC3\uEABA\uEAB7\uEAC6"+
-            "\uC151\uBF79\uEAC2\uEAB8\uBF77\uEABC\uBF7B\uEAB9"+
-            "\uEABE\uBF7A\uEAC1\uEAC4\u0000\u0000\u0000\u0000"+
-            "\uEDCB\uEDCC\uEDBC\uEDC3\uEDC1\u0000\u0000\uC14F"+
-            "\uEDC8\uEABF\u0000\uEDBF\u0000\uEDC9\uC14E\uEDBE"+
-            "\uEDBD\uEDC7\uEDC4\uEDC6\u0000\uEDBA\uEDCA\uC14C"+
-            "\u0000\uEDC5\uEDCE\uEDC2\uC150\uC14D\uEDC0\uEDBB"+
-            "\uEDCD\uBF75\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uF063\u0000\u0000\uF061\uF067\uC2B0\uF065"+
-            "\uF064\uC2B2\uF06A\uC2B1\u0000\uF06B\uF068\uC2AE"+
-            "\uF069\uF062\uC2AF\uC2AD\uF2AB\uF066\u0000\u0000"+
-            "\uF06C\u0000\u0000\uF2A8\u0000\u0000\u0000\uC3B2"+
-            "\uC3B0\uF2AA\u0000\uF2AC\uF2A9\uC3B1\uC3AE\uC3AF"+
-            "\uC3B3\u0000\u0000\uC478\u0000\uF4AA\u0000\uF4A9"+
-            "\uF4A7\uF4A6\uF4A8\u0000\uC477\uC479\u0000\u0000"+
-            "\uC4F0\u0000\u0000\uF5E5\uF5E4\u0000\u0000\uF6FA"+
-            "\u0000\uF6FC\uF6FE\uF6FD\uF6FB\u0000\u0000\uC5A3"+
-            "\uC5A2\u0000\u0000\uC5D3\uC5D2\uC5D4\uF7ED\uF7EC"+
-            "\u0000\uF8FB\uF8B8\uF8FC\uC658\u0000\uC659\uF96D"+
-            "\u0000\u0000\uC67E\uA6CC\u0000\uCDA8\u0000\u0000"+
-            "\uD045\uD046\uD044\u0000\u0000\uACF3\u0000\uD047"+
-            "\uD048\uD049\u0000\u0000\uD349\uD34F\u0000\u0000"+
-            "\uD34D\uAFBB\uD34B\u0000\uD34C\uD34E\u0000\u0000"+
-            "\u0000\uD34A\uB2C9\u0000\uD6DE\uB2CB\uD6E0\uB2CA"+
-            "\uD6DF\u0000\u0000\u0000\u0000\u0000\uDAE8\uB5AF"+
-            "\u0000\uDAEA\uDAE7\uD6E1\u0000\uB5B0\u0000\u0000"+
-            "\uDAE9\u0000\u0000\u0000\u0000\u0000\u0000\uDF56"+
-            "\u0000\uB864\uDF54\uB865\uDF55\uB866\u0000\u0000"+
-            "\u0000\uBAE9\uE361\uE35E\uE360\uBAEA\uBAEB\uE35F"+
-            "\u0000\u0000\u0000\u0000\u0000\uE6DF\u0000\u0000"+
-            "\uE6E0\u0000\uBD6B\uE6E2\uE6E1\u0000\uA261\u0000"+
-            "\uEACA\uEACB\uEAC7\u0000\uEAC8\uBF7C\uBF7D\uEAC9"+
-            "\u0000\uC157\u0000\u0000\uC153\uC158\uC154\uC156"+
-            "\uC152\u0000\uC155\u0000\u0000\u0000\u0000\uC2B3"+
-            "\uEDCF\u0000\uF2AE\u0000\uF2AD\u0000\uF4AB\uC47A"+
-            "\uC47B\uF741\uF5E6\u0000\uF740\u0000\uF8FD\uF9A4"+
-            "\uA6CD\u0000\u0000\uA874\u0000\uCDA9\uAAC8\u0000"+
-            "\uACF6\uD04C\uACF4\uD04A\uACF9\uACF5\uACFA\uACF8"+
-            "\uD04B\uACF7\uAFBF\uAFBE\uD35A\uAFC7\uD353\uD359"+
-            "\uAFC3\uD352\uD358\uD356\uAFC2\uAFC4\uD355\uAFBD"+
-            "\uD354\uAFC8\uAFC5\uAFC9\uAFC6\uD351\uD350\uD357"+
-            "\uAFC0\uAFBC\uAFC1\u0000\u0000\u0000\u0000\u0000"+
-            "\uD6F0\uD6E9\u0000\uB5B5\uD6E8\u0000\uB2CF\uB2D6"+
-            "\uB2D3\uB2D9\uB2D8\uB2D4\u0000\uD6E2\uD6E5\u0000"+
-            "\uD6E4\uB2D0\uD6E6\uD6EF\uB2D1\uD6E3\uD6EC\uD6ED"+
-            "\uB2D2\uD6EA\uB2D7\uB2CD\uB2D5\uD6E7\uB2CC\uD6EB"+
-            "\u0000\u0000\uD6EE\u0000\u0000\u0000\uDAFB\uDAF2"+
-            "\uB5B2\uDAF9\uDAF6\uDAEE\uDAF7\uB5B4\uDAEF\u0000"+
-            "\uDAEB\u0000\u0000\uB86C\uDAF4\u0000\uB5B1\uDAFA"+
-            "\u0000\uB5B8\uB5BA\uDAED\u0000\u0000\uB5B9\uDAF0"+
-            "\uB5B3\uDAF8\uDAF1\uDAF5\u0000\uDAF3\uB5B6\uDAEC"+
-            "\uB5BB\uB2CE\uB5B7\uB5BC\u0000\u0000\u0000\u0000"+
-            "\u0000\uB868\uDF5D\uDF5F\uDF61\uDF65\u0000\uDF5B"+
-            "\uDF59\uB86A\u0000\uDF60\uDF64\uDF5C\uDF58\u0000"+
-            "\uDF57\u0000\u0000\u0000\uDF62\uDF5A\uDF5E\uB86B"+
-            "\u0000\uB869\uDF66\uB867\uDF63\u0000\uE372\u0000"+
-            "\u0000\u0000\u0000\u0000\uBAEE\uE36A\uBD78\uE374"+
-            "\uBAF1\uE378\uBAF7\uE365\u0000\u0000\uE375\uE362"+
-            "\u0000\uE377\uE366\u0000\uBAFE\uBAFB\uE376\uE370"+
-            "\uBAED\uBAF5\uBAF4\u0000\uBAF3\uBAF9\u0000\uE363"+
-            "\uBAFA\uE371\uBAF6\uBAEC\uE373\uBAEF\uBAF0\uBAF8"+
-            "\uE368\uE367\uE364\u0000\uE36C\uE369\uE36D\uBAFD"+
-            "\u0000\uE379\uBAF2\uE36E\uE36F\u0000\uE36B\u0000"+
-            "\u0000\u0000\uBAFC\u0000\u0000\u0000\u0000\uE6E7"+
-            "\uBD70\uBD79\uBD75\uE6E4\u0000\uBD72\uBD76\uE6F0"+
-            "\uBD6C\uE6E8\u0000\uBD74\u0000\u0000\uE6EB\uE6E6"+
-            "\uBD73\uBD77\uE6E5\u0000\uBD71\u0000\uE6EF\uBD6E"+
-            "\uE6EE\uE6ED\uBD7A\uE572\uBD6D\u0000\uE6EC\uE6E3"+
-            "\u0000\uBD7B\uE6EA\uBD6F\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uE6E9\u0000\u0000\u0000\u0000"+
-            "\uBFA2\uBFA7\uBF7E\uEAD8\uEACF\uEADB\uEAD3\uEAD9"+
-            "\uBFA8\uBFA1\uEACC\uEAD2\uEADC\uEAD5\uEADA\uEACE"+
-            "\u0000\u0000\uEAD6\uBFA3\uEAD4\uBFA6\uBFA5\uEAD0"+
-            "\uEAD1\uEACD\uEAD7\uBFA4\uEADE\uEADD\u0000\u0000"+
-            "\u0000\uEDDA\uEDD6\uC15F\u0000\uEDD0\uC159\uC169"+
-            "\uEDDC\uC161\uC15D\uEDD3\uC164\uC167\uEDDE\uC15C"+
-            "\uEDD5\uC165\uEDE0\uEDDD\uEDD1\uC160\uC15A\uC168"+
-            "\uEDD8\uC163\uEDD2\uC15E\uEDDF\uC162\uC15B\uEDD9"+
-            "\uC166\uEDD7\u0000\u0000\uEDDB\u0000\u0000\u0000"+
-            "\uF06E\uF074\uC2B9\uF077\uC2B4\uC2B5\uF06F\uF076"+
-            "\uF071\uC2BA\uC2B7\u0000\uF06D\u0000\uC2B6\uF073"+
-            "\uF075\uC2B8\uF072\uF070\u0000\u0000\u0000\u0000"+
-            "\uF2B8\uC3B7\uC3B8\uC3B4\u0000\uC3B5\u0000\uF2B4"+
-            "\uF2B2\u0000\uF2B6\uC3BA\uF2B7\uF2B0\uF2AF\uF2B3"+
-            "\uF2B1\uC3B6\uF2B5\uF4AC\uC47E\uC47D\uF4AD\u0000"+
-            "\uF4AF\uF4AE\uC4A1\u0000\u0000\u0000\uF5EB\uF5E8"+
-            "\uF5E9\u0000\uF5E7\uF5EA\uC4F2\uF5EC\u0000\uC4F1"+
-            "\u0000\uF742\u0000\uC5D5\uC5D7\uF7EE\uC5D6\uF8B9"+
-            "\uF940\uF942\uF8FE\uF941\uC66C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
-        private final static String innerIndex4=
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA6CE\u0000"+
-            "\uACFB\uD26F\uAFCA\u0000\u0000\uB2DA\uDAFC\uDAFD"+
-            "\u0000\u0000\u0000\uEADF\uC16A\uEDE1\u0000\u0000"+
-            "\uC2BB\u0000\uF2BA\uF2B9\uC4A2\uF5ED\u0000\uF743"+
-            "\uC5F8\uCA49\u0000\u0000\uAAC9\uA875\u0000\u0000"+
-            "\uD04D\u0000\u0000\uD360\uD35B\uD35F\uD35D\uAFCB"+
-            "\uD35E\uD35C\u0000\uD6F1\u0000\uDAFE\uDB40\uDF69"+
-            "\uDF6A\uB86E\uB86F\uDF68\uDF6B\uDF67\uB86D\u0000"+
-            "\uBB40\u0000\uB870\uE37A\u0000\uBD7C\uE6F1\uBD7D"+
-            "\u0000\uBFA9\uEAE2\uEAE0\uEAE1\uEDE4\uEDE3\uEDE2"+
-            "\u0000\u0000\u0000\uF2BB\u0000\uC3B9\uF2BC\uF744"+
-            "\uC5F9\uF8BA\uA6CF\uAACB\uAACA\uD04F\uACFC\u0000"+
-            "\u0000\uD04E\uD362\u0000\uAFCC\uD6F2\uD361\u0000"+
-            "\u0000\u0000\uB2DC\uD6F5\uD6F3\uD6F4\uB2DB\u0000"+
-            "\uDB42\uDB43\uDB41\u0000\uB873\uDF6D\uDF6C\uDF6E"+
-            "\uB872\uB871\u0000\u0000\uE6F2\uE6F4\u0000\uBD7E"+
-            "\uE6F3\uEAE3\uBFAA\uF079\u0000\uF078\uC3BB\uF2BD"+
-            "\uC3BD\uC3BC\uF4B0\uF5EE\uC4F3\uA6D0\uD050\uACFD"+
-            "\uD365\uAFCE\uD364\uD363\u0000\uAFCD\u0000\uD6FB"+
-            "\u0000\uD6FD\uD6F6\uD6F7\uB2DD\uD6F8\uB2DE\uD6FC"+
-            "\uD6F9\uD6FA\uB2DF\u0000\uB5BE\uB5BF\u0000\uDB44"+
-            "\u0000\u0000\u0000\uDF6F\uDF70\u0000\uE37E\uBB43"+
-            "\uBB41\uBB42\uE37B\uE37C\u0000\uE37D\uE6F9\u0000"+
-            "\uE6FA\uBDA1\uE6F7\uE6F6\uE6F8\uE6F5\uBFAD\uEAE4"+
-            "\uBFAB\uBFAC\uEDE6\uC16B\uEDE5\uEFA8\u0000\uF07A"+
-            "\uF07B\uC2BC\u0000\uC2BD\uC16C\uF2BE\uF2BF\uF4B1"+
-            "\uC4A3\uA6D1\u0000\uA6D2\uACFE\uAACC\uAFCF\uD051"+
-            "\u0000\u0000\u0000\uB5C0\uA6D3\uAD41\uD052\uD053"+
-            "\uAD40\uAD42\uA6D4\u0000\uD054\uAFD1\uD366\uAFD3"+
-            "\uAFD0\uAFD2\u0000\uD741\uB2E0\u0000\uD740\uD6FE"+
-            "\u0000\uDF71\u0000\u0000\uE3A1\u0000\uBDA2\u0000"+
-            "\uBFAE\uEAE6\uEAE5\u0000\uEDE7\u0000\u0000\u0000"+
-            "\uF5EF\u0000\u0000\uA6D5\uCB73\uCDAA\uAD43\uD055"+
-            "\u0000\uD368\u0000\u0000\u0000\uAFD4\uD367\uAFD5"+
-            "\u0000\u0000\u0000\uD743\u0000\u0000\uB2E2\uD742"+
-            "\uD744\u0000\uB2E1\u0000\u0000\u0000\u0000\uDB46"+
-            "\uDB47\uDB45\uB5C1\u0000\u0000\u0000\uB874\u0000"+
-            "\uB875\u0000\uBB45\u0000\uE3A3\uE3A2\uBB44\u0000"+
-            "\u0000\u0000\u0000\u0000\uE6FB\u0000\u0000\uE6FC"+
-            "\u0000\u0000\u0000\u0000\uEAE7\u0000\u0000\uC170"+
-            "\uC16F\uC16D\uC16E\uC171\u0000\uF07C\uC2BF\uC2BE"+
-            "\uF2C0\uF4B2\u0000\u0000\u0000\uC5A5\uC5A4\uA6D6"+
-            "\u0000\u0000\uD1FB\u0000\uB877\uB5C2\uB876\uBB46"+
-            "\u0000\uA6D7\uC9A9\uA6D8\uA6D9\u0000\u0000\uCDAB"+
-            "\uCB76\u0000\uCB77\uA877\u0000\uCB74\uA876\u0000"+
-            "\uA879\uCB75\uA87B\uA87A\uCB78\uA878\u0000\u0000"+
-            "\u0000\uAAD1\uAACF\uCDAD\u0000\uAACE\u0000\u0000"+
-            "\u0000\uAAD3\uAAD5\uAAD2\u0000\uCDB0\uCDAC\uAAD6"+
-            "\u0000\uAAD0\uA87C\u0000\uAAD4\uCDAF\u0000\u0000"+
-            "\uCDAE\u0000\uAACD\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uD05B\uAD47\uAD48\uD05D\u0000\uD057"+
-            "\uD05A\uD063\uD061\u0000\uAD49\uD067\uAD4C\uD064"+
-            "\uD05C\uD059\u0000\u0000\uDB49\uD062\uAD44\uD065"+
-            "\uD056\uD05F\uAD46\uAD4B\uD060\uAD4F\uAD4D\u0000"+
-            "\uD058\uAD4A\u0000\uD05E\uAD4E\uAD45\uD066\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uAFDA\u0000\uAFE3"+
-            "\uAFD8\uAFD6\uD36A\uAFDE\uAFDB\uD36C\u0000\u0000"+
-            "\uAFDD\uD36B\uD369\uD36E\uAFE2\uAFE0\uDB48\u0000"+
-            "\uD36F\uD36D\uAFD7\u0000\u0000\uAFD9\uAFDC\u0000"+
-            "\uAFDF\u0000\uAFE1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uD74E\uB2E4\u0000"+
-            "\uD745\uD747\u0000\uD748\u0000\uD750\uD74C\uD74A"+
-            "\u0000\uD74D\uD751\uB2E5\uB2E9\uD746\u0000\uD74F"+
-            "\u0000\uB2E7\u0000\uB2E6\uD74B\uD749\u0000\uB2E3"+
-            "\uB2E8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uB5C8\uDB51\u0000\u0000\uDB4F\uB5CA\u0000"+
-            "\u0000\u0000\u0000\uDB4A\uDFA1\u0000\uB5C9\uDB4E"+
-            "\u0000\u0000\uDB4B\uB5C5\uB5CB\uDB50\uB5C7\uDB4D"+
-            "\uBB47\uB5C6\uDB4C\uB5CC\uB5C4\uB5C3\u0000\u0000"+
-            "\u0000\u0000\u0000\uDF77\uDF75\u0000\uDF7B\u0000"+
-            "\uDF73\uDFA2\uDF78\u0000\uDF72\uB87B\uB8A3\uDF7D"+
-            "\u0000\uDF76\u0000\uB87E\u0000\u0000\uB87C\uDF7E"+
-            "\uB879\uB878\uDF79\uB87D\uB5CD\u0000\uDF7C\uDF74"+
-            "\uB87A\uB8A1\uB8A2\u0000\u0000\u0000\u0000\uBB4C"+
-            "\uBB48\u0000\uBB4D\uE3A6\u0000\u0000\uE3A5\uE3A7"+
-            "\uBB4A\uE3A4\uBB4B\uE3AA\uE3A9\uE3A8\u0000\uBB49"+
-            "\u0000\u0000\u0000\u0000\u0000\uE741\u0000\uE744"+
-            "\uBDA8\uE743\uBDA7\uBDA3\uBDA4\uBDA5\uE740\uE6FE"+
-            "\uBDA6\u0000\uE742\uE6FD\u0000\u0000\uEAE9\uEAF3"+
-            "\uBFB1\uBFB0\u0000\uEAED\uEAEF\u0000\uEAEA\u0000"+
-            "\uEAEE\uEAE8\uEAF1\uBFAF\uEAF0\uEAEC\u0000\uEAF2"+
-            "\u0000\uEAEB\uC174\uEDE8\uEDEE\uC178\uC17A\uC177"+
-            "\uC176\u0000\uC175\uC173\uEDE9\uEDEC\uC172\uEDED"+
-            "\u0000\uC179\uEDEB\u0000\uEDEA\uC2C0\u0000\uC2C1"+
-            "\uF0A1\uF07D\uF07E\u0000\u0000\uF2C2\u0000\uF2C1"+
-            "\uC3BE\uF4B4\uC4A4\uF4B3\u0000\uF5F0\uF745\uC5A6"+
-            "\uF943\uF944\uC5D8\uA6DA\u0000\uAAD7\uDB52\uBB4E"+
-            "\uC17B\uEDEF\uA6DB\u0000\uAFE5\uAFE4\uDB53\u0000"+
-            "\u0000\u0000\uEAF4\uA6DC\uAD50\u0000\u0000\uDB54"+
-            "\uDB55\uDB56\uBB4F\uBFB2\uA6DD\u0000\uAAD8\uD068"+
-            "\uAFE6\uD370\uB2EA\u0000\uDB57\uB8A4\u0000\uBB50"+
-            "\uBFB3\uC17C\uC2C2\uF4B5\uA6DE\uAAD9\u0000\u0000"+
-            "\uAFE7\uD752\uB5CE\u0000\uBB51\uE3AB\uE745\u0000"+
-            "\u0000\u0000\u0000\uA6DF\uB5CF\uDFA3\uBB52\uA6E0"+
-            "\uCDB1\uD069\uAD51\u0000\u0000\uD372\u0000\u0000"+
-            "\uAFEA\u0000\uAFE8\uAFE9\uAFEB\u0000\u0000\uD371"+
-            "\u0000\u0000\uD757\uD754\uD756\uB2EB\uB2ED\uB2EC"+
-            "\uD753\uB2EE\uD755\u0000\uDB58\uDB59\u0000\uDB5A"+
-            "\uDFA6\u0000\uDFA7\u0000\uDFA5\uDFA8\u0000\uB8A5"+
-            "\u0000\uDFA4\u0000\uBB53\u0000\u0000\uE74A\uE746"+
-            "\uE749\uE74B\uE748\uE747\u0000\uEAF5\uEAF6\uEAF7"+
-            "\uBFB4\uBFB5\uEDF1\uEDF0\uEDF2\u0000\uF0A3\uF0A2"+
-            "\u0000\uF2C4\u0000\uF2C5\uF2C3\u0000\uC4A5\u0000"+
-            "\uF4B6\uF4B7\u0000\uF746\uF7EF\uF8BB\uA6E1\uA87D"+
-            "\u0000\uC17D\uA6E2\u0000\uD758\uDB5B\u0000\uC641"+
-            "\uCA4A\u0000\u0000\u0000\uCA4B\uCA4D\uA6E3\uCA4E"+
-            "\uCA4C\u0000\u0000\uCBA2\uCBA3\uCB7B\u0000\u0000"+
-            "\u0000\u0000\uCBA1\uA8A1\u0000\uA8A2\uCB7C\uCB7A"+
-            "\uCB79\uCB7D\uA87E\uCB7E\uD06A\u0000\u0000\u0000"+
-            "\uCDB6\uAADC\uCDB5\uCDB7\u0000\uAADB\uCDBC\uAADF"+
-            "\uCDB2\uCDC0\uCDC6\uAAE6\uCDC3\uAAE3\u0000\uCDB9"+
-            "\uCDBF\uCDC1\u0000\uCDB4\uAAE2\uAADD\uCDBA\uAAE4"+
-            "\uAAE7\uAAE1\u0000\uAADA\uCDBE\uCDB8\uCDC5\uAAE9"+
-            "\uAAE5\uAAE0\uCDBD\uAFEC\uCDBB\uAADE\uAAE8\u0000"+
-            "\uCDB3\u0000\uCDC2\uCDC4\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uAD62\uAD5C\uAD64\uAD61\uD071\uD074\uAD5D"+
-            "\u0000\uD06B\u0000\uAD56\uAD60\u0000\uAD63\uAD65"+
-            "\uD0A2\uD077\u0000\uAD55\uD0A1\uAD59\uAD57\uAD52"+
-            "\uD06F\u0000\uD07E\uD073\uD076\uD0A5\u0000\uAD66"+
-            "\uD07D\uAD5E\uD078\uD0A4\uD075\uD079\uD07C\u0000"+
-            "\u0000\uD06D\uD0A3\uD07B\u0000\u0000\uD06C\u0000"+
-            "\uD070\uAD5F\uAD5A\uAD53\uAD58\uAD54\uAD67\uD06E"+
-            "\uD3A5\uAD5B\u0000\u0000\uD07A\uCE41\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uD3A8\uAFFA"+
-            "\u0000\uD376\u0000\uD3A3\uD37D\u0000\uD3B2\u0000"+
-            "\uD3AA\u0000\uD37E\u0000\uD3A9\uD378\uD37C\uD3B5"+
-            "\uAFFD\uD3AD\uD3A4\uAFED\uD3B3\uD374\u0000\uD3AC"+
-            "\u0000\uAFFC\uAFF7\uD373\uAFF5\uAFF4\uAFF9\uD3AB"+
-            "\uAFF1\uAFF8\uD072\uDB5C\uD3A6\u0000\u0000\uD37A"+
-            "\uAFFB\uD37B\uD3A1\uAFFE\uD375\uD3AF\u0000\uD3AE"+
-            "\uD3B6\uAFF3\uAFF0\uD3B4\uD3B0\uD3A7\uD3A2\uAFF6"+
-            "\uAFF2\uD377\uAFEE\uD3B1\uAFEF\u0000\uD379\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uD75E\uD760\uD765\uD779\uB2FC"+
-            "\uB2F2\u0000\uD75D\uB2FD\uB2FE\uD768\uD76F\uD775"+
-            "\u0000\uD762\u0000\uD769\u0000\u0000\uB340\uD777"+
-            "\uD772\uB2FA\uB2F8\uD76E\uD76A\uD75C\uB2EF\uD761"+
-            "\uD759\u0000\uB2F7\uB2F9\uD766\uD763\uB2F4\uD773"+
-            "\uB2F1\uD764\uD77A\uD76C\u0000\uD76B\uB2F0\u0000"+
-            "\uB2FB\u0000\uB2F3\uD75A\uD75F\uD770\uD776\uB341"+
-            "\uD75B\uD767\uD76D\uB2F6\u0000\u0000\uD778\uD771"+
-            "\uD774\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uB2F5\u0000\uDB6C"+
-            "\uDB60\uB5D7\uDB7D\uDBA7\uDBAA\uB5D5\uDB68\uDBA3"+
-            "\uDB69\uDB77\uB5E2\uDB73\uB5DF\u0000\uDB74\uDB5D"+
-            "\u0000\uDBA4\u0000\u0000\uB5E8\uDBA1\uDB75\uDBAC"+
-            "\uDB70\uDFC8\u0000\uDBAF\uB5E6\uDB6E\uDB7A\uB5E9"+
-            "\uB5D4\uDB72\uDBAD\uDB6B\uDB64\uDB6F\u0000\uDB63"+
-            "\uDB61\uB5D0\uDBA5\uDB6A\uDBA8\u0000\uDBA9\uB5D8"+
-            "\uB5DD\uB5D9\uB5E1\uDB7E\uB5DA\uDB76\uDB66\u0000"+
-            "\uB5D2\uDB5E\uDBA2\uDBAB\uDB65\uB5E0\uDBB0\uDB71"+
-            "\u0000\uDB6D\u0000\uB5D1\uB5E5\u0000\uDB7C\uB5E7"+
-            "\u0000\uDB78\uB5DC\uB5D6\uB5DE\uB5D3\uB5E4\uDB79"+
-            "\uDB67\uDB7B\uDB62\uDBA6\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uDBAE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uDB5F\u0000\u0000\u0000\u0000"+
-            "\u0000\uDFC7\u0000\uDFDD\uB855\uDFCC\u0000\uDFCA"+
-            "\uDFB5\uB8A9\uDFC5\uDFD9\uDFC1\uB8B1\uDFD8\uDFBF"+
-            "\uB5E3\uDFCF\uDFC0\uDFD6\uB8B0\uB8A8\u0000\uDFAA"+
-            "\uDFB2\u0000\uDFCB\uDFC3\uDFDC\uDFC6\uB8B6\uDFD7"+
-            "\u0000\uB8AD\u0000\uDFC9\uDFD1\uDFB6\uDFD0\u0000"+
-            "\uDFE1\uDFB1\uDFD2\u0000\uDFDF\u0000\uDFAB\uB5DB"+
-            "\u0000\uDFB9\uDFB8\uB8AF\u0000\uDFBC\uDFBE\uDFCD"+
-            "\uDFDE\uB8B2\u0000\uB8B3\u0000\uDFB0\uB8AB\uDFB4"+
-            "\uDFDA\uB8B4\u0000\uB8AC\uB8AE\uB8B5\uDFE0\uDFD3"+
-            "\uDFCE\u0000\u0000\uDFBB\uDFBA\uB8AA\uDFAC\uB8A7"+
-            "\uDFC4\uDFAD\uDFC2\u0000\u0000\uDFB7\uDFDB\u0000"+
-            "\u0000\u0000\uB8A6\u0000\u0000\u0000\uDFB3\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uDFAF\uDFD5\uDFAE"+
-            "\uBB60\uE3D3\u0000\u0000\uE3C2\u0000\u0000\uE3AC"+
-            "\uE3CA\uBB58\uE3BB\uE3C5\uBB5B\uE3BE\uBB59\uE3AF"+
-            "\uE3CD\uE3AE\uE3C1\u0000\uE3AD\u0000\u0000\uE3BF"+
-            "\uE3C8\uE3C6\uE3BA\uE3B5\uE3B3\u0000\uE3B4\uE3C7"+
-            "\uE3D2\uE3BC\uBB5A\u0000\uE3B7\u0000\uE3CB\u0000"+
-            "\uBB5D\uE3B6\uE3B0\uE3C0\uBB61\u0000\u0000\uBB55"+
-            "\uBB5E\uE3B8\uE3B2\u0000\uBB57\uDFD4\uBB56\uE3C3"+
-            "\u0000\uBB54\uBB63\uBB5C\uE3C4\uE3B9\uE3B1\uE3CC"+
-            "\uE3BD\uBB62\uE3D0\uBB5F\uE3CF\u0000\uE3C9\uE3CE"+
-            "\u0000\u0000\u0000\uE3D1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uE773"+
-            "\uE774\uE767\uE766\uE762\uBDB4\u0000\uBDAC\uE776"+
-            "\uE775\uDFA9\uE75F\uE763\uE75D\u0000\uE770\uE761"+
-            "\u0000\uE777\uE75A\uE758\uE764\uE76E\uE769\uBDB6"+
-            "\uE74F\u0000\uE76D\u0000\u0000\u0000\uBDB7\uDFBD"+
-            "\uE75B\uE752\uE755\uE77B\uE75C\uE753\uE751\uE74E"+
-            "\u0000\uBDB0\uE765\uBDAF\uBDB3\uE760\uE768\uBDA9"+
-            "\uE778\uE77C\uBDAB\u0000\uE757\uE76B\uE76F\uE754"+
-            "\uE779\uBDB2\u0000\uBDB1\uE74C\uBDB5\uE772\uE756"+
-            "\uE76A\uE750\uE75E\uE759\uBDAD\uBDAE\uE76C\uE77D"+
-            "\uE77A\uE771\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uE74D\u0000\uBDAA\uEB49\u0000"+
-            "\uEB40\uEB43\u0000\uBFBB\uEB45\uEAF9\uEB41\uEB47"+
-            "\uBFB8\uBFBC\uBFB6\u0000\u0000\uEAFB\uEB4C\u0000"+
-            "\u0000\uEB46\u0000\uEAFC\uEB55\uEB4F\uEAF8\uEE46"+
-            "\uEAFE\uBFB7\u0000\uEB4A\u0000\uEB54\uBFBF\u0000"+
-            "\uEB51\uEAFD\uEB44\uEB48\uEB42\uEB56\uEB53\uEB50"+
-            "\uBFB9\uBFBA\uBFBE\uEAFA\uEB57\uBFBD\uEB4D\u0000"+
-            "\u0000\uEB4B\u0000\u0000\u0000\uEB4E\uEE53\uEE40"+
-            "\uEE45\uEE52\uEE44\uEDFB\uEE41\u0000\uC1A2\u0000"+
-            "\uEDF4\uEE4D\uEE4F\uEDF3\uC1A1\uEE51\uEE49\uC1A8"+
-            "\uEE50\uEE42\uC1AA\uEDF9\uEB52\uEE4A\uEE47\uEDF5"+
-            "\uEE55\uC1A4\u0000\u0000\uC1A5\uEDF7\uEE48\u0000"+
-            "\uEE54\uEE4B\uEDFD\uC1A7\uC1A3\uEE4C\uEDFE\uEE56"+
-            "\uEDF8\uEE43\uEE4E\uEDFA\uEDFC\u0000\uC2CB\uEDF6"+
-            "\uC1A9\uC2C4\uC17E\u0000\u0000\u0000\u0000\uC1A6"+
-            "\uC2C8\uF0B3\u0000\uF0A9\uF0A4\uF0AA\uF0B4\uF0B8"+
-            "\uF0B7\uC2CA\uC2C9\u0000\u0000\uF0AB\uF0B9\uF0AE"+
-            "\uF0A6\u0000\uF0A8\uF0A7\uF0AD\uF0B2\uF0A5\uF0AC"+
-            "\uF0B1\uC2C7\u0000\uF0AF\u0000\uC2C5\uF0B0\uC2C3"+
-            "\uC2C6\uF2D5\uF0B5\u0000\u0000\uC3C2\u0000\uF2CD"+
-            "\uF2D1\uF2C9\uF2CC\u0000\uF2D4\uC3C0\uF2D9\uF2D2"+
-            "\u0000\uF2CA\uF2DA\uF2D3\uC3C3\uC3C4\uF2D7\u0000"+
-            "\uF2CB\uC3BF\uC3C1\uF2C6\uF2CE\uF2C8\u0000\uF2D8"+
-            "\uF2D6\uF2C7\uF2CF\u0000\u0000\u0000\uF4BE\uC3C5"+
-            "\uF2D0\uC4A7\uC4A9\uC4A6\u0000\uF4C3\uF4BB\uF4B9"+
-            "\uF4BD\uF4BA\u0000\u0000\uF4BF\uF4C1\uC4AA\uC4AC"+
-            "\u0000\uF4C0\uC4AD\uC4AB\uF4C2\u0000\u0000\u0000"+
-            "\u0000\uC4A8\u0000\u0000\u0000\u0000\u0000\uC4F4"+
-            "\uF5F1\uF5F7\uC4F6\uF4BC\uF5F6\u0000\uF5FD\uF5F4"+
-            "\uF5FB\uF5FA\uF4B8\uF5F5\uF0B6\uF5FE\uF5F3\uF5F8"+
-            "\u0000\uF5FC\uF5F2\u0000\uF74A\uC4F5\uF5F9\u0000"+
-            "\u0000\uF7F4\uF74B\uF749\uF747\uF748\uF74C\u0000"+
-            "\uC5D9\uF7F2\uF7F0\uF7F5\uF7F3\u0000\uF7F6\uC5DA"+
-            "\uF7F1\u0000\u0000\uF8BC\u0000\u0000\uF945\uF946"+
-            "\uF947\u0000\u0000\uF9C7\uF9BD\uCA4F\uAAEA\u0000"+
-            "\uAD68\u0000\uD3B8\uD3B7\uB040\uB342\uD77C\u0000"+
-            "\u0000\uD77B\u0000\uB5EA\uB8B8\u0000\uB8B7\uB8B9"+
-            "\u0000\uE3D4\uE77E\uEB58\uEB5A\uEB59\u0000\uC1AB"+
-            "\uEE57\uF0BA\uF9A5\uA6E4\u0000\uCDC9\uCDCA\uCDC8"+
-            "\uCDC7\uAAEB\u0000\uD0A9\uD0A7\u0000\u0000\uD0A6"+
-            "\u0000\uAD69\uAD6B\uAD6A\uD0A8\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uD3C4\uD3C1\uD3BF"+
-            "\u0000\u0000\uB041\uD3C2\uB046\uD3BC\uD3CB\u0000"+
-            "\uD3CD\uD3BD\u0000\uB043\uD3CE\uD3C9\uD3BB\uD3C0"+
-            "\uD3CA\uD3C6\uD3C3\u0000\uB048\uD3CC\uD3BE\u0000"+
-            "\u0000\uD3C7\uD3B9\uB047\uB044\uD3C5\u0000\uD3C8"+
-            "\uD3BA\uB045\uB042\u0000\u0000\u0000\u0000\uB34C"+
-            "\uD7A5\uB34B\u0000\uD7A8\uD7AB\uB348\uB346\uD77E"+
-            "\uD7A9\uD7A7\uD7A4\uD7AC\uD7AD\uD7AF\uD7B0\uD77D"+
-            "\uB345\uD7A2\uD7A1\uD7AE\uB347\uD7A3\uB349\uB344"+
-            "\uD7A6\uB34D\u0000\uB34A\uD7AA\u0000\u0000\u0000"+
-            "\uB5F1\uDBBF\u0000\uDBB4\uB5EE\u0000\uDFE7\uDBBD"+
-            "\uDBB1\uB5EC\uDBB6\uB5EF\uDBBA\uDBB8\uB5F2\uB5EB"+
-            "\u0000\u0000\uDBB2\uDBB5\uB5F0\u0000\uDBB3\u0000"+
-            "\uDBBE\uDBBC\uDBB7\uDBB9\uDBBB\uB5ED\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uDFE8\uDFEE\uDFE4"+
-            "\uDFEA\uB8BA\uDFE6\uB8C0\u0000\u0000\uB8BF\u0000"+
-            "\uB8BE\uDFED\uB8C1\uB8C2\uDFE3\uDFF0\uB8C3\uB8BD"+
-            "\uB8BC\uDFEC\uB8C4\uDFE2\uDFE5\uDFEF\uDFEB\u0000"+
-            "\u0000\uE3F4\uE3E9\uB8BB\u0000\u0000\u0000\u0000"+
-            "\uBB6A\uE3DD\uE3F2\uE3DE\uBB65\u0000\uE3DB\u0000"+
-            "\uE3E4\uE3DC\uBB67\uE3D6\uE3F1\uBB68\uE3EE\uE3EF"+
-            "\uE3D7\uBB6D\uE3E6\u0000\uE3E0\uE3E7\uE3DA\u0000"+
-            "\uE3F3\uE3EB\uE3E5\uE3D5\uBB69\uE3EC\u0000\uBB6C"+
-            "\uE3F0\u0000\uE3EA\uBB66\uE3E8\u0000\uE3E2\uBB64"+
-            "\uE3D9\uE3E1\uE3ED\uE3DF\u0000\u0000\uE3E3\u0000"+
-            "\u0000\u0000\u0000\u0000\uBDC1\uDFE9\uE7B2\uE7BB"+
-            "\uE7B1\uE7AD\uE7AA\uBDC2\uE7A8\uBB6B\uE7A1\uBDC0"+
-            "\uE7A7\uBDBF\uE7AC\uE7A9\uE7B9\uE7B4\uE7AE\uE7B3"+
-            "\uBDBB\uE7AB\uE7BE\uE7A2\uE7A3\uE7BA\uBDBC\uE7BF"+
-            "\uBDBE\uE7C0\uE7B0\uE3D8\uE7B6\uE7AF\uE7B8\uE7B5"+
-            "\u0000\u0000\u0000\uE7A6\uBDB9\uE7BD\uBDBA\uE7A4"+
-            "\uBDBD\uEB64\uE7B7\uE7BC\u0000\u0000\u0000\u0000"+
-            "\u0000\uEB61\uBDB8\uBFC0\uEB6B\uEB67\u0000\uEB65"+
-            "\uEB60\uEB6F\u0000\u0000\u0000\uBFC4\u0000\uEB5C"+
-            "\uEB68\uEB69\uEB5F\uEB5E\uEB6C\u0000\uEB62\uEB5D"+
-            "\uEB63\u0000\uEB6E\uEB5B\uEB6D\uEB6A\uBFC2\uBFC1"+
-            "\u0000\u0000\uBFC3\uEB66\uF0CB\u0000\u0000\u0000"+
-            "\u0000\u0000\uEE59\uC1B1\uEE5D\uEE5A\uEE61\uEE67"+
-            "\uEE5C\u0000\uEE70\uC1AE\uEE6A\uEE5F\uEE6B\uEE66"+
-            "\uEE6D\uEE5E\uC1B3\uC1B2\uEE60\uEE6E\uEE58\uEE6C"+
-            "\uC1AC\u0000\uEE64\uEE63\uEE68\uEE5B\uC1B0\u0000"+
-            "\uC1B4\uEE62\uEE69\uC1B5\uEE65\u0000\u0000\u0000"+
-            "\u0000\uC1AD\uC1AF\uF0C7\uF0C5\u0000\u0000\uF0CC"+
-            "\uF0C9\uF0CD\u0000\uF0BE\uF0C6\uF0D1\uEE6F\uF0C2"+
-            "\uC2CF\uE7A5\uF0BD\uF0CA\uF0C4\uF0C1\uF0BC\uF0BB"+
-            "\uF0D0\u0000\uF0C0\uF0BF\uC2CD\uF0C8\u0000\uC2CC"+
-            "\u0000\u0000\uC2CE\uF0C3\uF0CF\u0000\uF2DE\uF2DF"+
-            "\u0000\uC3C9\uF2DC\uC3C6\uF2E4\u0000\uC3CA\uF2E6"+
-            "\uF2DB\uF0CE\uF2E8\uF2DD\u0000\uC3C7\uF2E3\u0000"+
-            "\uF2E5\uF2E0\uF2E7\uF2E2\uF2E1\uC3C8\u0000\u0000"+
-            "\uF4C5\uF4C6\u0000\uF4C8\uC4AE\uC4AF\uF4C9\uF4C7"+
-            "\u0000\uF4C4\u0000\uF642\uF645\uF641\u0000\uC4FA"+
-            "\uF643\uC4F9\uC4F8\uC4F7\uF644\uF751\uF74F\u0000"+
-            "\uF74E\uF640\uF750\uF646\uF74D\u0000\uF7F9\uF7D7"+
-            "\uF7F7\uC5DB\uF7F8\uF7FA\u0000\uF8BF\uC5FA\uF8BE"+
-            "\uF8BD\uC5FB\u0000\uC65A\uF96E\uF9A7\uF9A6\uF9A8"+
-            "\uA6E5\uD0AA\u0000\uD3CF\uD3D0\u0000\u0000\u0000"+
-            "\uDBC0\u0000\uF647\uF8C0\uA6E6\uAD6C\uD0AB\u0000"+
-            "\u0000\u0000\uD7B1\uB34E\u0000\uDBC2\uDBC1\uB5F3"+
-            "\u0000\uB8C5\uE7C1\uBDC3\u0000\uBDC4\u0000\u0000"+
-            "\u0000\uBFC5\uC5FC\uA6E7\u0000\u0000\u0000\uD0AC"+
-            "\uAAED\uD0AE\uD0AD\uAD6D\u0000\uD3D1\u0000\uD3D8"+
-            "\uB049\uD3D6\uD3D4\u0000\uD3DB\uD3D2\uD3D3\uB04A"+
-            "\u0000\uB04E\u0000\u0000\uD3DC\uB04D\uD3DA\uD3D7"+
-            "\uD3D5\uB04B\uB04C\uD3D9\u0000\u0000\u0000\u0000"+
-            "\uB350\uD7B2\u0000\uB355\uD7C2\uB354\uD7C4\u0000"+
-            "\u0000\uD7B8\uB352\uD7C3\u0000\uD7B3\uB353\uD7BF"+
-            "\uD7BB\uD7BD\uD7B7\uD7BE\u0000\u0000\uB34F\uD7BA"+
-            "\u0000\uD7B9\uD7B5\u0000\uD7C0\u0000\u0000\uD7BC"+
-            "\uD7B4\u0000\uD7B6\uB351\uD7C1\u0000\u0000\u0000"+
-            "\u0000\uB5F6\uDBCD\u0000\u0000\u0000\uDBC9\uDBCB"+
-            "\uDBC6\uDBC5\uDBC3\u0000\uDBCA\uDBCC\uDBC8\u0000"+
-            "\uDBC7\uB5F4\uB5F5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uDBCF\uB8CD\uDFF2\uDFF8\uDFF3\uDFF4\u0000"+
-            "\uDFF9\u0000\uB8CF\u0000\uB8C7\uB8CE\uDFF1\uDBC4"+
-            "\uB8CA\uB8C8\uDFF7\uDFF6\uB8C9\uB8CB\uDFF5\uB8C6"+
-            "\u0000\uB8CC\u0000\u0000\u0000\u0000\u0000\uE3F6"+
-            "\uBB74\u0000\u0000\uE442\uE441\u0000\uE3FB\uBB76"+
-            "\uE440\uE3F7\uE3F8\uBB6E\uBB70\u0000\uE3FD\uE3F5"+
-            "\uBB72\uBB71\uE3F9\uE3FE\uE3FC\uBB73\uE3FA\u0000"+
-            "\u0000\uDBCE\uBB6F\u0000\u0000\uE7C2\uE7C9\uBDC6"+
-            "\u0000\uE7CD\uBDCA\uE7C5\uE7C3\u0000\uE7CC\u0000"+
-            "\uBDC5\uE7CB\uBDC7\uBDC8\uE7C4\uBDC9\uE7CA\uE7C6"+
-            "\uE7C7\uE7C8\uBB75\u0000\u0000\u0000\uEB70\uEB7C"+
-            "\u0000\uBFCA\uEB77\uEB79\u0000\uBFC8\uEB71\uEB75"+
-            "\u0000\uEB78\uBFC6\uBFC9\uEB7B\uEB73\uEB74\uEB7A"+
-            "\uEB72\uEB76\uBFC7\uEE72\u0000\uEE71\uC1B7\uEE77"+
-            "\uC1B9\u0000\u0000\uC1B6\uEE73\uC1BA\uEE74\u0000"+
-            "\u0000\uEE75\uEE78\u0000\uC1B8\u0000\uF0D6\u0000"+
-            "\u0000\uF0D9\u0000\uF0D3\uF0D5\u0000\u0000\uF0D4"+
-            "\uF0D7\uF0D8\uEE76\uF0D2\u0000\u0000\uC3CD\uF2EC"+
-            "\uF2EF\uF2F1\uF2EA\uF2EB\uF2EE\uF2F0\uC3CE\uC3CC"+
-            "\uC3CB\uF2ED\uF2E9\uF4CA\uC4B0\u0000\uF4CB\u0000"+
-            "\u0000\uF649\uC4FB\uF64B\uC4FC\uF648\uF64A\uC5A8"+
-            "\u0000\uF752\uC5A7\uF7FD\uF7FC\u0000\uF7FB\u0000"+
-            "\u0000\uF948\uF949\uF94B\uF94A\u0000\uCA50\uA6E8"+
-            "\u0000\uAD6E\uD7C5\uB5F7\u0000\uDFFA\uC2D0\u0000"+
-            "\uF2F2\u0000\u0000\uA8A3\u0000\u0000\u0000\uB357"+
-            "\u0000\u0000\u0000\uB356\u0000\uDBD0\uB5F8\uDBD2"+
-            "\uDBD1\u0000\u0000\uDFFB\uB8D0\uE443\uE446\uE445"+
-            "\u0000\uE444\uE7CE\uE7D0\uE7CF\u0000\uBFCC\u0000"+
-            "\u0000\u0000\uBFCB\u0000\uC1BB\uEE79\uEE7B\uEE7A"+
-            "\u0000\u0000\uC2D1\u0000\u0000\u0000\uF2F4\uF2F3"+
-            "\u0000\uF4CC\uC4B1\u0000\u0000\uC4FD\uF754\uF753"+
-            "\uC65B\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA8A4\uD0AF\uAD6F\uD7C8\uD7C6\u0000"+
-            "\u0000\uD7C7\uDBD4\uDBD5\uE043\uDBD3\u0000\uDFFC"+
-            "\uE041\uE040\uE042\uB8D1\uDFFE\uDFFD\uE044\u0000"+
-            "\uE449\uE447\u0000\uE448\uE7D3\uE7D1\u0000\u0000"+
-            "\uE7D2\uEB7D\uEE7C\uEE7D\uC2D2\u0000\uF2F5\uF4CD"+
-            "\uC4B2\u0000\uF64C\uF755\uC5A9\u0000\uF7FE\uF94C"+
-            "\uA8A5\u0000\uAD71\uAD72\uD0B0\u0000\u0000\uD0B1"+
-            "\uAD70\u0000\uB054\u0000\uB052\u0000\uB051\uB058"+
-            "\uB050\uB059\uD3DD\uB056\u0000\uB053\uB057\uB055"+
-            "\uB04F\u0000\u0000\uB35F\u0000\uB359\uD7CC\uB35E"+
-            "\u0000\u0000\uB360\uB35A\u0000\uB35B\u0000\uD7CA"+
-            "\u0000\u0000\uB358\u0000\uD7CB\uB35D\u0000\u0000"+
-            "\uD7C9\uB35C\u0000\u0000\uB644\u0000\uB646\u0000"+
-            "\u0000\uDBD8\uB645\uB5F9\uB5FD\u0000\uB8E4\uE049"+
-            "\uDBDA\uB5FE\u0000\u0000\uDBDD\uDBDE\uB643\u0000"+
-            "\uDBE0\u0000\uDBE2\u0000\uDBE3\uDBD7\uDBD6\uDBE4"+
-            "\uB642\uDBE1\uDBDF\u0000\uB640\uB5FB\uB647\uDBDB"+
-            "\uDBDC\uDBD9\u0000\uB641\u0000\u0000\uB5FC\u0000"+
-            "\uB5FA\uE048\uB8DF\uB8DA\u0000\u0000\uB8D5\u0000"+
-            "\uB8E5\uB8D6\u0000\uB8D2\uB8E1\uB8DE\uB8E0\u0000"+
-            "\uB8D7\uB8DC\uB8D3\uB8D4\uE050\uE04D\uE045\uE04A"+
-            "\u0000\uB8E2\uE051\uB8E3\uB8D9\u0000\u0000\uE047"+
-            "\u0000\uE04F\uE04B\uE04E\uE04C\uB8DD\uE046\uB8D8"+
-            "\u0000\u0000\u0000\uE44C\uBB78\uBB7B\u0000\uE44E"+
-            "\u0000\uBBA5\uE44D\uBB7D\u0000\uBDCF\uE44F\u0000"+
-            "\uBBA4\uE44B\uBBA6\u0000\u0000\u0000\uBB79\u0000"+
-            "\uB8DB\uBB7C\u0000\uBB7A\uBB7E\uBBA2\uBB77\uBBA7"+
-            "\uBBA3\u0000\uBBA1\uE44A\u0000\u0000\u0000\u0000"+
-            "\uBDD6\u0000\uBDD2\u0000\u0000\u0000\uBDD9\u0000"+
-            "\uE7D6\uBDDA\uE7E2\uE7DB\uBDCB\uE7E3\uE7DD\uBDD5"+
-            "\uE7DE\u0000\uBDD4\uE7E1\uBDCE\uE7DF\uE7D5\uBDCD"+
-            "\uEBAA\uBDD3\u0000\uBDD0\u0000\uBDD8\u0000\uE7D4"+
-            "\u0000\uE7D8\uBDCC\uE7D7\uE7D9\uE7DA\uBDD7\uE7DC"+
-            "\uE7E0\uE7E4\u0000\uBDDB\uBFD2\uEBA5\uEBAB\uEBA8"+
-            "\uEB7E\uEBAC\uEBA1\u0000\uEBA7\u0000\uBFCD\uBFD3"+
-            "\uEBAD\u0000\u0000\uBFCF\u0000\uBFD9\uBFD4\uEBAF"+
-            "\uEBA9\uBFD0\uEBA2\uBFDA\uEBA3\uEBA4\uBFDB\uBFD8"+
-            "\uBDD1\u0000\uBFCE\uEBB0\uBFDC\u0000\uBFD5\uEBAE"+
-            "\uBFD1\uBFD6\uBFD7\u0000\uC1C3\uEEA4\uEEAD\uEEAA"+
-            "\uEEAC\u0000\uC1C0\uEEA5\u0000\uEEAB\uC1BC\uEEA7"+
-            "\uC1C4\uEEA3\uEEA8\uEEAF\uEBA6\uEEA9\uEEA2\uC1BD"+
-            "\uEEA1\uC1BE\uEEB0\uC1BF\uEEAE\uC1C2\uEE7E\u0000"+
-            "\uC1C1\u0000\uEEA6\uF0DC\uF0EA\uF0E5\uF0E7\uF0DB"+
-            "\uC2D3\u0000\uF0DA\uC2D6\uC2D5\u0000\uF0E9\uF0E1"+
-            "\uF0DE\uF0E4\u0000\uF0DD\u0000\uF0DF\uF0E8\uF0E6"+
-            "\u0000\uC2D4\uF0ED\uF0EB\uF0E2\uF0EC\uF0E3\u0000"+
-            "\uF2F9\uC3CF\uF341\u0000\u0000\uF64F\uC3D6\uF0E0"+
-            "\uF2F7\uC3D2\uF2F8\uF2FD\u0000\u0000\uC3D4\uC3D5"+
-            "\uF2F6\uF340\uF342\uF2FA\uF2FC\uF2FE\uF2FB\uF343"+
-            "\uC3D1\uC3D7\uC3D3\u0000\uC3D0\uF4D0\u0000\uC4B7"+
-            "\uF4CE\u0000\u0000\uF4D2\u0000\uF4D3\uC4B5\uF4D4"+
-            "\uF4D1\u0000\uF4CF\uC4B8\uC4B4\uF4D5\u0000\uC4B6"+
-            "\uC4B3\u0000\u0000\u0000\uC4FE\u0000\u0000\uC540"+
-            "\uF64E\uF64D\uF650\uF651\u0000\uC541\uF756\uF75B"+
-            "\uC5AA\u0000\uF758\u0000\uF757\uF75A\uF759\u0000"+
-            "\uF843\u0000\uC5DC\uF842\uF840\u0000\uF841\u0000"+
-            "\u0000\u0000\uC5FE\uC5FD\uF8C1\uF8C2\uC640\u0000"+
-            "\uF94D\uF94E\uC667\u0000\uC66D\u0000\uF9A9\uF9C8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA8A6"+
-            "\u0000\uD7CD\u0000\uD7CE\uE052\uE450\uE7E5\uC1C6"+
-            "\u0000\uC1C5\uF0EE\uF344\u0000\uF844\uA8A7\uD3DE"+
-            "\uB05A\uB361\uE054\uE053\uBDDC\uE7E6\uBDDD\uEEB1"+
-            "\uC2D7\u0000\u0000\u0000\uC676\uA8A8\uCDCB\uD3DF"+
-            "\u0000\u0000\uB362\u0000\uD7CF\uD7D0\u0000\uDBE5"+
-            "\u0000\uB648\uB8E6\u0000\uE056\uE055\uE057\u0000"+
-            "\uE451\uE452\uBBA8\uBFDD\uBDDE\uBFDE\u0000\uEEB5"+
-            "\uEEB2\uEEB4\uEEB3\uC1C7\u0000\uF0EF\uF346\uF345"+
-            "\uCBA4\uB05C\uB05B\uD3E0\u0000\uD7D1\u0000\u0000"+
-            "\uDBE7\uDBE6\uB649\u0000\uE059\uE05A\uE058\u0000"+
-            "\u0000\uB8E8\uB8E7\u0000\uBBAA\uBBA9\u0000\uE7E7"+
-            "\uEBB3\uEBB1\uEBB2\uBFDF\uEEB7\uEEB6\u0000\uF0F2"+
-            "\uF0F1\uF0F0\uF347\u0000\uF9AA\uA8A9\uAD73\u0000"+
-            "\uAD74\uB05D\uB05E\uD3E2\uD3E1\uD7D2\u0000\uB368"+
-            "\uB366\uB363\uB367\uB365\uB364\u0000\u0000\uB64A"+
-            "\uDBEA\u0000\uB8ED\uB64C\uB651\uDBEC\uB653\uB652"+
-            "\uB655\uDBEB\uDBE8\uB64F\uB64B\uB64D\uDBE9\uB654"+
-            "\uB650\uB64E\uB8EF\uB8EE\uB8EC\uB8F0\u0000\uB8EA"+
-            "\uB8EB\u0000\uB8E9\u0000\uE05B\u0000\u0000\uE454"+
-            "\u0000\uBBAC\uBBAD\uBBAB\u0000\uE453\u0000\uE455"+
-            "\u0000\uE7EA\uE7EC\u0000\uBDE7\uE7ED\uBDE0\uE7E9"+
-            "\uBDDF\uBDE9\uBDE5\uBDE6\uBDE2\uE7E8\uBDE1\uE7EE"+
-            "\uE7EB\u0000\uBDE8\u0000\uBDE3\uBDE4\uEBB5\u0000"+
-            "\uEBB7\uEBB6\u0000\uEBB8\uBFE0\uEBB4\u0000\u0000"+
-            "\uC1CB\uEEB8\uC1C8\uC1CC\uC1CA\uC1C9\uF0F3\u0000"+
-            "\uF0F6\u0000\uF0F5\u0000\uF0F4\uC2D8\uF348\uF349"+
-            "\uC3D8\uF34A\uC3D9\u0000\u0000\uC4BA\u0000\uC4B9"+
-            "\uF652\u0000\u0000\uC542\uF653\uF75C\uC5AB\uC5AC"+
-            "\u0000\uF845\u0000\uC642\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA8AA\u0000\uB36A\uB369"+
-            "\uE05C\uE05D\u0000\uBBAE\uEBB9\uBDEA\uEBBA\uEEB9"+
-            "\uA8AB\u0000\uD0B2\uAD76\uAD75\u0000\uD3E3\uB05F"+
-            "\uD3E4\uD7D5\u0000\uD7D4\u0000\uD7D3\u0000\u0000"+
-            "\uDBEE\uB658\u0000\u0000\uDBED\uB657\u0000\u0000"+
-            "\u0000\uDBEF\uB656\u0000\uE05F\uE062\uE060\uE061"+
-            "\uE065\uE05E\uE066\uE063\uE064\uBBB0\uE456\u0000"+
-            "\u0000\uBBAF\u0000\uE7F2\uE7F0\u0000\u0000\uBDEB"+
-            "\uE7EF\uE7F1\u0000\uBDEC\u0000\uEBBB\u0000\uEBBC"+
-            "\uC1CD\u0000\uF34C\uF34E\uF34B\uF34D\uF4D6\uF654"+
-            "\u0000\u0000\uF96F\uA8AC\uAD77\uD3E5\uD3E7\uD3E6"+
-            "\u0000\uD7D8\uB36C\u0000\uD7D6\u0000\uB36B\uD7D9"+
-            "\u0000\uD7DA\uD7D7\u0000\u0000\uDBFB\uB660\uDBF3"+
-            "\uDBF9\u0000\u0000\uB65B\uB65E\uDBF2\uB659\uDBF6"+
-            "\uE06C\uB65D\u0000\uDBF1\u0000\uDBF7\uDBF4\uDBFA"+
-            "\uDBF0\uDBF8\uB65C\uB65F\uDBF5\uB65A\u0000\uB8F2"+
-            "\uE068\uB8F1\uE06F\uE06E\uB8F8\u0000\uB8F9\uE070"+
-            "\uB8F3\uE06D\uB8F7\uE072\uE069\u0000\uE06B\uB8F4"+
-            "\uE067\uE06A\uE071\uB8F5\uE073\u0000\u0000\u0000"+
-            "\u0000\u0000\uB8F6\u0000\uBBB1\uE45B\uE461\uE459"+
-            "\uE462\u0000\uE458\uE45D\uE463\uE460\uE45F\uE45E"+
-            "\u0000\uE457\uE45C\u0000\u0000\uE45A\u0000\uBDF1"+
-            "\uBDEE\uE7FB\uE841\uE843\uE840\uE7F8\uE7FA\uE845"+
-            "\uE842\uE7FC\uE846\uE7F9\uE844\uBDEF\uBDF5\uBDF3"+
-            "\uE7F3\uBDF4\uBDF0\uE7F4\uE7F6\uE7F5\uE7FD\uE7FE"+
-            "\u0000\uBDF2\u0000\uBDED\u0000\u0000\uE7F7\u0000"+
-            "\uEBC6\uBFE2\u0000\uEBBD\uBFE3\uBFE6\uEBC2\u0000"+
-            "\uEBBF\uBFE5\u0000\u0000\uEBC3\uEBC4\uEBBE\uEBC7"+
-            "\uEBC0\uEBC5\uBFE4\u0000\uBFE1\uEBC1\u0000\uEEBF"+
-            "\uC1D0\uC1CE\uC1D1\uC1CF\uEEBE\uEEBB\uEEBA\u0000"+
-            "\uEEBD\u0000\u0000\uEEBC\uF145\uC2DE\uF0FB\uF0FA"+
-            "\u0000\uC2D9\uF141\uF140\uF0F7\uF143\uF0FC\uC2DD"+
-            "\uF0F9\uF142\uF0F8\uC2DA\uC2DC\uF0FD\uC2DB\uF0FE"+
-            "\u0000\uF144\uF352\u0000\uC3DE\uF34F\u0000\uF353"+
-            "\u0000\u0000\uC3DB\uF351\uC3E0\u0000\uC3DD\u0000"+
-            "\uF350\u0000\uC3DF\uF354\uC3DA\u0000\u0000\u0000"+
-            "\u0000\uC4BC\uC4BE\u0000\uF4D9\uC4BD\uF4D7\uC3DC"+
-            "\uF4D8\uC4BB\uC543\uC545\uF656\uC544\uF655\u0000"+
-            "\uF761\uC5AD\uF760\uC5AE\uF75E\uF75D\uF762\uF763"+
-            "\uF846\u0000\uF75F\u0000\u0000\uF8C6\uF8C3\uF8C4"+
-            "\uF8C5\uC65C\u0000\uF951\uF950\uF94F\uF970\u0000"+
-            "\uF9BE\uF9AB\uC66E\uA8AD\uB060\u0000\u0000\u0000"+
-            "\u0000\u0000\uB8FA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uBDF6\u0000\u0000\uEBC8\u0000\u0000"+
-            "\uC2DF\u0000\uF355\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uF9AC\uA8AE\uAAEE\uAD79\uAD78\u0000\uB063"+
-            "\u0000\uD3E8\uB061\uD3E9\uB062\u0000\u0000\uD7DF"+
-            "\uD7DB\u0000\u0000\uB36D\uD7DE\uD7DD\uD7DC\uB36E"+
-            "\uD7E0\uD7E1\u0000\u0000\u0000\uDC43\uDC41\uDC45"+
-            "\uDC46\uDC4C\u0000\uDC48\uDC4A\u0000\uDC42\uDBFC"+
-            "\u0000\uDC49\u0000\u0000\uDC4B\uDC44\uDC47\uDBFD"+
-            "\uB662\uDC40\uDBFE\uB661\uB663\u0000\uB8FD\uE075";
-
-        private final static String innerIndex5=
-            "\uE077\uE076\uE07B\uB8FB\u0000\uE078\uE074\uE079"+
-            "\uE07A\uB8FC\uB8FE\uE07C\u0000\uE467\uE466\u0000"+
-            "\uE464\uE465\uBBB3\uBBB5\uBBB2\uBBB4\uE84D\uE84E"+
-            "\uE849\u0000\uE84A\uBDF8\uBDFD\uBDF7\uBDFE\uBDF9"+
-            "\uE84B\u0000\u0000\uE84C\uE848\uBE40\uBDFB\u0000"+
-            "\u0000\uBDFA\uBDFC\u0000\uE847\u0000\uEBCA\uBFE8"+
-            "\u0000\u0000\uEBCC\uBFEA\uEBCF\uEBCB\uEBC9\uEBCE"+
-            "\uBFE9\uEBCD\u0000\uBFE7\u0000\u0000\uC1D3\uC1D6"+
-            "\uEEC1\u0000\uC1D4\uEEC0\uC1D2\uC1D5\uF146\uF147"+
-            "\uF148\uC2E0\u0000\uF149\u0000\uC2E1\uC3E2\uF358"+
-            "\uF359\uF357\uF356\uF35A\uC3E1\uF4DD\uF4DB\uF4DC"+
-            "\uF4DE\uF4DA\uF4DF\uF658\u0000\uF659\uF657\uC546"+
-            "\uF764\uC5AF\uF765\uF848\uF847\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA8AF\uB664\u0000\u0000\uB940"+
-            "\u0000\u0000\u0000\uBBB6\u0000\u0000\uBFEC\u0000"+
-            "\uBFEB\u0000\u0000\u0000\u0000\uC3E3\uC47C\uC547"+
-            "\uA8B0\uB064\uB941\u0000\uF35B\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uCBA6"+
-            "\u0000\u0000\uA8B1\u0000\uA8B4\uA8B3\uA8B2\u0000"+
-            "\u0000\uCBA5\u0000\uCDCD\u0000\uCDCF\uAAEF\u0000"+
-            "\u0000\uAAF1\uCDCC\uCDCE\uAAF0\uCDD1\uCDD0\uCDD2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uD0B6\uD0B4\uAD7C\uD0B3\uADA3\uAD7E\uAD7B\u0000"+
-            "\uADA4\u0000\uAD7D\uADA2\u0000\uADA1\uD0B5\u0000"+
-            "\uAD7A\u0000\u0000\u0000\uB06A\uD3EB\uD3F1\uB067"+
-            "\uB06E\u0000\uB069\uD3EE\uD3F0\uB06C\uD3EA\uD3ED"+
-            "\uB068\uB065\uD3EC\uB06B\uD3EF\uB06D\uB066\u0000"+
-            "\u0000\u0000\u0000\uD7E3\uD7E6\uB370\u0000\uB37A"+
-            "\uB376\uD7E4\u0000\u0000\uB37E\uB377\uB37C\uB372"+
-            "\u0000\uB36F\uB371\uB37D\uD7E5\uB375\uB378\uB374"+
-            "\uB379\uD7E7\uB37B\uB373\uD7E2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uDC4D\uB665\uDC4F"+
-            "\u0000\uB667\uB669\u0000\uDC4E\uB666\uB66A\u0000"+
-            "\uB668\u0000\u0000\u0000\uB947\uE0A3\uB94F\uE07E"+
-            "\u0000\uB950\uB945\u0000\uE0A1\u0000\u0000\uB94A"+
-            "\u0000\uE0A2\uB943\uB942\u0000\uB94D\uB94C\uB94B"+
-            "\uB949\uB94E\uE07D\uB944\uB946\uB948\u0000\u0000"+
-            "\uBBB8\uBBBB\u0000\uBBBF\uBBB9\uBBBE\uBBBC\u0000"+
-            "\uBBB7\u0000\uBBBD\uBBBA\u0000\u0000\u0000\uE852"+
-            "\uBE43\uBE41\u0000\uE853\u0000\uBE44\uBE42\uE851"+
-            "\uE850\u0000\uBFF0\uE84F\uBFEE\uBFED\uEBD0\uBE45"+
-            "\uBFEF\uEBD1\uBFF2\uEBD2\uBFF1\uC1D8\uEEC3\uC1D7"+
-            "\uC1DC\uC1DA\uC1DB\uC2E3\uC1D9\uEEC2\uEBD3\uC2E2"+
-            "\uC2E4\u0000\uC3E4\uC3E5\u0000\uF4E0\u0000\uC5DE"+
-            "\uC5DD\uA8B6\u0000\u0000\uCA55\uB06F\u0000\uCA52"+
-            "\uCA53\uCA51\u0000\uCA54\u0000\u0000\uCBAA\uCBA7"+
-            "\uCBAC\uCBA8\uA8B7\uA8BA\u0000\uCBA9\uA8B9\uCBAB"+
-            "\u0000\u0000\uA8B8\u0000\u0000\u0000\u0000\uCDD5"+
-            "\uCDD7\uAAF4\uCDD3\uCDD6\uCDD4\uAAF2\uAAF5\u0000"+
-            "\uAAF3\u0000\u0000\u0000\u0000\uD0B8\uD0BC\uD0B9"+
-            "\u0000\uADA7\u0000\uADA8\u0000\uD0BB\u0000\uD0BD"+
-            "\uD0BF\u0000\uADA5\uD0BE\u0000\u0000\uADA6\u0000"+
-            "\u0000\u0000\u0000\u0000\uD7EE\uD0BA\uD3F2\uD3FB"+
-            "\uD3F9\uD3F4\uD3F5\uD3FA\uD3FC\uB071\u0000\uD3F7"+
-            "\uD3F3\uB070\uB072\uD3F6\uD3FD\uD3F8\u0000\u0000"+
-            "\uB3A1\uD7F1\uD7E9\uD7EF\uD7F0\uB3A2\u0000\uD7E8"+
-            "\uD7EA\uD0B7\uD7EC\uD7ED\uD7EB\uB66C\u0000\u0000"+
-            "\u0000\uDC56\uEBD4\uDC57\uDC54\uB3A3\uB66E\uDC53"+
-            "\uDC59\uDC58\uB66B\uDC5C\uDC52\uDC5B\uDC50\uDC5A"+
-            "\uDC55\uB66D\u0000\uE0AA\u0000\uE0A5\uE0AB\uE0A6"+
-            "\uE0A4\uE0A7\uB951\u0000\uE0A9\u0000\uE0A8\uB952"+
-            "\uBBC1\uBBC0\uE46E\uE471\uE469\uE46D\uBBC2\uE46C"+
-            "\uE46A\uE470\uE46B\uE468\uE46F\u0000\uE859\uBE48"+
-            "\uF14A\uE856\uE857\uE855\uDC51\uBE47\uE85A\uE854"+
-            "\uBE46\uBE49\uE858\uEBD5\uBFF3\uEBD6\uEBD7\u0000"+
-            "\uEEC4\uC1DD\uF14B\uF14C\u0000\u0000\uF14D\uF35D"+
-            "\uF35C\uF4E2\u0000\uF4E1\uF65B\uF65C\uF65A\uF766"+
-            "\uC5B0\uA8BB\uADAA\uADA9\uB075\uB074\uD440\uD441"+
-            "\uD3FE\u0000\uB073\uD7F5\u0000\uD7F6\uD7F2\uB3A4"+
-            "\uD7F3\u0000\uD7F4\u0000\u0000\u0000\u0000\uDC5F"+
-            "\uDC61\uDC5D\uDC60\uB66F\uDC5E\uB670\u0000\u0000"+
-            "\uDD73\uB955\uB954\u0000\uB953\u0000\uE0AC\uE0AD"+
-            "\u0000\u0000\uE473\uE475\uBBC6\uBBC3\u0000\uBBC5"+
-            "\uBBC4\uE474\uE472\u0000\u0000\u0000\u0000\u0000"+
-            "\uE861\uE85E\uE85F\uBE4D\uE860\uE85B\uE85C\uBE4A"+
-            "\u0000\uBE4B\uE85D\uBE4C\u0000\uEBDB\u0000\uEBDC"+
-            "\uEBD9\uEBDA\uBFF4\uEBD8\u0000\u0000\u0000\u0000"+
-            "\u0000\uEEC8\uEEC5\uEEC7\uC1E0\uEECB\uC1DF\uEEC9"+
-            "\uEECC\uEECA\uEEC6\uC1DE\u0000\uF14F\u0000\uF150"+
-            "\uF14E\u0000\uF152\uC2E5\uC2E6\uF35F\uC3E7\uF151"+
-            "\uF35E\uC3E6\uF4E5\uF4E6\uC4BF\uF4E4\u0000\uF4E3"+
-            "\u0000\uF65D\uC548\u0000\uF849\uF8C8\uF8C7\u0000"+
-            "\uC643\uC65D\uF8C9\uF971\u0000\uC66F\uA8BC\uAAF6"+
-            "\u0000\uB956\u0000\uC4C0\uA8BD\uADAB\uB3A5\uB671"+
-            "\uC2E7\uAAF7\u0000\uD0C1\uD0C0\uD442\u0000\uB078"+
-            "\uB076\uB07A\uD444\u0000\uB079\uB077\u0000\u0000"+
-            "\u0000\u0000\uD443\uB3A8\uD7FC\u0000\uB3A7\uB3A9"+
-            "\uD842\uB3AB\uD7FE\uD840\uD7F7\uB3AA\uD843\u0000"+
-            "\u0000\uD7F9\u0000\uD7FA\uD7F8\uB3A6\u0000\uD841"+
-            "\uD7FB\uD7FD\u0000\u0000\u0000\uDC6D\u0000\uDC6C"+
-            "\uDC6A\uDC62\uDC71\uDC65\uDC6F\uDC76\uDC6E\uB679"+
-            "\u0000\uB675\uDC63\u0000\uDC69\uB677\u0000\uDC68"+
-            "\uB678\uB67A\uDC6B\u0000\uB672\uB673\uDC77\uDC75"+
-            "\u0000\uDC74\uDC66\u0000\uDC72\u0000\uB676\u0000"+
-            "\u0000\u0000\u0000\uB674\uDC73\uDC64\uDC67\uDC70"+
-            "\u0000\u0000\u0000\u0000\u0000\uE4BA\uE0B7\u0000"+
-            "\uE0B0\uE0C3\uE0CC\uE0B3\uB961\u0000\uE0C0\uB957"+
-            "\uB959\uB965\uE0B1\u0000\u0000\uB95A\uB95C\uB966"+
-            "\uB95B\u0000\u0000\u0000\u0000\uB964\uE0B9\u0000"+
-            "\uE0AE\uB962\uE0B8\uB95E\uE0CA\uB963\uE0C8\uE0BC"+
-            "\uE0C6\uB960\uE0AF\uE0C9\uE0C4\u0000\uE0CB\uB958"+
-            "\u0000\u0000\uB967\uB95D\u0000\u0000\uE0B5\u0000"+
-            "\uE0BD\uE0C1\u0000\uE0C5\uB95F\uE0B4\uE0B2\uE0BE"+
-            "\u0000\u0000\u0000\u0000\uE0BB\uE0BA\u0000\uE0BF"+
-            "\uE0C2\u0000\uE0C7\u0000\u0000\u0000\uE478\u0000"+
-            "\uBBC7\uE4A4\uE47A\uBBCC\uBBD0\uE4AD\uE4B5\uE4A6"+
-            "\uBBC8\u0000\uE4AA\uE0B6\u0000\uBBC9\uE4B1\uE4B6"+
-            "\uE4AE\u0000\uE4B0\uE4B9\uE4B2\uE47E\uE4A9\u0000"+
-            "\u0000\uBBD1\u0000\uBBCD\uE47C\uE4AB\uBBCB\uE4A5"+
-            "\uBBCA\uE4B3\uE4A2\uE479\uBBCE\uE4B8\u0000\u0000"+
-            "\uE47B\uE4AF\uE4AC\uE4A7\uE477\uE476\uE4A1\uE4B4"+
-            "\uBBCF\uE4B7\uE47D\uE4A3\uBE52\u0000\u0000\u0000"+
-            "\u0000\u0000\uBE5A\uBE55\uE8A4\uE8A1\uE867\uBE50"+
-            "\u0000\u0000\u0000\uBE4F\uBE56\u0000\u0000\u0000"+
-            "\uE865\uBE54\uE871\uE863\uE864\uBE4E\uE8A3\uBE58"+
-            "\uE874\uE879\uE873\uEBEE\uE86F\uE877\uE875\uE868"+
-            "\uE862\uE87D\uBE57\uE87E\u0000\uE878\u0000\uE86D"+
-            "\uE86B\uE866\u0000\u0000\u0000\uE86E\uE87B\uE86A"+
-            "\uE87A\uE8A2\u0000\u0000\uBE53\u0000\uE876\uE87C"+
-            "\uE872\uE86C\uBE51\u0000\u0000\u0000\uE4A8\uE870"+
-            "\uBE59\uE869\u0000\u0000\u0000\u0000\u0000\uEBF4"+
-            "\uBFF7\uEBF3\uEBF0\uEC44\uBFFB\u0000\uEC41\uEBF8"+
-            "\uEC43\uEBE9\uEBF6\u0000\uBFFD\u0000\uEBE1\u0000"+
-            "\uEBDF\uEC42\u0000\uEC40\uEBFE\uEBED\uEBEC\uEBE2"+
-            "\uC040\u0000\uEBE8\uEBF2\uEBFD\uC043\uEC45\u0000"+
-            "\uC1E8\uC045\uBFFE\uEBE6\u0000\uEBEF\uEBDE\uEBE0"+
-            "\uBFF5\uC042\uBFFA\uEBE7\uEBF7\uEBF1\uC041\uEBDD"+
-            "\uC1E3\uEBF9\uEBFC\uBFFC\u0000\uEBEB\uC044\uBFF9"+
-            "\u0000\u0000\u0000\uBFF8\uEBF5\uEBFB\uBFF6\u0000"+
-            "\uEBE4\uEBFA\u0000\u0000\uEBE5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uEBEA\uEED2"+
-            "\u0000\uEED7\uC1E5\uC1E7\uEEDD\uC1E1\uEEEC\uEEE3"+
-            "\uEED8\uEED9\uEEE2\u0000\uC1EE\uEEE1\uEED1\uEEE0"+
-            "\uEED4\uEEED\uC1ED\uC1EB\uEED5\u0000\uEEE8\u0000"+
-            "\uEEDA\uEEE7\u0000\uEEE9\uEED0\uC1E6\u0000\uEEEA"+
-            "\u0000\u0000\uEEDE\u0000\uC1EA\uEEDB\u0000\u0000"+
-            "\uC1EC\uEEE4\u0000\u0000\u0000\uC1E4\uEED6\uEEE5"+
-            "\u0000\uEEDF\uEBE3\uEEE6\uEED3\u0000\uC1E9\u0000"+
-            "\uEEEB\u0000\uC1E2\uEECE\u0000\u0000\u0000\u0000"+
-            "\uF160\uF159\uC2E9\u0000\uF154\uF163\uF15B\uEEDC"+
-            "\u0000\uF165\uF155\u0000\uC2E8\uF15F\uC2EA\uC2F2"+
-            "\uC2F0\uF161\uC2F1\uF157\u0000\uF158\uF15D\uF162"+
-            "\u0000\uEECD\uC2EB\uF16A\uF167\uF16B\uF15E\uF15A"+
-            "\uF168\uF36A\uF15C\u0000\uC2EE\u0000\uC2ED\uEECF"+
-            "\uC2EF\uF164\uF166\uC2EC\uF169\uF153\u0000\uF156"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uF373\u0000\uF363\uC3EB\uF371\u0000\u0000\uF361"+
-            "\uC3EC\u0000\uF36C\u0000\uF368\uC3F1\uF372\uF362"+
-            "\uF365\uC3E9\uF374\u0000\uF36D\uF370\uC3EF\uC3F4"+
-            "\uC3F2\uF369\uF364\u0000\uC3ED\uC3EE\uF360\uC3EA"+
-            "\u0000\uC3E8\uC3F0\uF36F\uC3F3\u0000\uF36B\uF375"+
-            "\uC3F5\u0000\u0000\u0000\uF367\u0000\uF36E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uF4F3\uF542\uF4F5"+
-            "\uF4FC\uF366\uF4FA\uF4E9\uF540\uC4C3\uF4ED\uF4FE"+
-            "\uF4F4\u0000\u0000\uC4C2\u0000\u0000\uF544\uF4F6"+
-            "\u0000\uF4FB\uF4FD\uF4E7\uF541\uF4F2\uF4F7\uF4EB"+
-            "\uF4EF\uF543\uF4F9\uF4E8\uF4EC\uF4EE\uF4F8\u0000"+
-            "\uC4C1\uF4F1\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uF4EA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uF4F0\uF661\uF666\uC54F\uF668\u0000\uC549\u0000"+
-            "\uF664\uF66A\uC54E\uC54A\u0000\uC54B\uF660\uF667"+
-            "\uC54D\uF665\uC54C\uF65F\uF663\uF662\u0000\uF65E"+
-            "\uF669\u0000\u0000\u0000\uC5B1\uF76D\uF770\uF76C"+
-            "\uF76E\uF76F\uF769\uF76A\uF767\u0000\u0000\uF76B"+
-            "\uF768\uC5B2\uC5B3\u0000\u0000\uF84B\u0000\uF84D"+
-            "\u0000\u0000\u0000\u0000\u0000\uF84C\uF84E\u0000"+
-            "\uC5E0\u0000\uF84A\uC5DF\uC5E1\u0000\u0000\u0000"+
-            "\uF8CB\uF8CC\uC644\uF8CA\u0000\uF953\uF952\uF954"+
-            "\uC65F\uF955\uC65E\uF956\uF972\uF975\uF974\uC668"+
-            "\uF973\u0000\u0000\u0000\uC672\uC670\uC671\uC677"+
-            "\uF9C0\uF9C1\uF9BF\uF9C9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uAAF8"+
-            "\u0000\u0000\uD844\uDC78\uE8A5\uF376\u0000\u0000"+
-            "\uAAF9\u0000\uADAC\uB07B\u0000\u0000\uD845\u0000"+
-            "\uD846\uB3AC\u0000\uB67D\uDC7A\uDC79\uB6A3\uB67C"+
-            "\uDC7B\uB67E\uB6A2\uB6A1\uB67B\u0000\u0000\u0000"+
-            "\uB968\u0000\u0000\uE0D0\uE0CE\u0000\uE0CF\uE0CD"+
-            "\u0000\uBBD2\u0000\uBBD5\uBBD7\uBBD6\u0000\u0000"+
-            "\uBBD3\uBBD4\u0000\uE8A7\uE8A6\uBE5B\uE8A8\u0000"+
-            "\uE8A9\uBE5C\u0000\u0000\u0000\uEC4D\uEC4B\uEEF3"+
-            "\u0000\uEC49\uEC4A\uC046\uEC46\uEC4E\uEC48\uEC4C"+
-            "\uEEEF\u0000\u0000\uEEF1\u0000\uEEF2\uC1F3\uEEEE"+
-            "\uC1F2\uEEF0\uC1EF\uC1F0\uC1F1\uEC47\u0000\u0000"+
-            "\uC2F5\uF16E\uF16C\uF16D\uC2F3\uC2F6\uC2F4\u0000"+
-            "\u0000\u0000\uF377\uF378\uC3F6\u0000\uF545\uF547"+
-            "\uF546\uC4C4\uC550\uF66D\uF66C\uF66B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uAAFA\u0000\uC9AA\u0000"+
-            "\uCA58\uA6E9\uCA56\uCA59\uCA57\u0000\u0000\u0000"+
-            "\uCBAE\u0000\uA8C1\u0000\uA8C2\uCBB0\uA8BF\uCBAF"+
-            "\uCBAD\uA8C0\uA8BE\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uCDD8\uCDDB\uAAFD\uCDDA\uCDD9\u0000\uAAFC"+
-            "\uAAFB\u0000\uAB40\uCDDC\uAAFE\u0000\u0000\u0000"+
-            "\u0000\u0000\uD0C6\uADAE\uADAF\uADB0\uD0C7\uD0C3"+
-            "\uADAD\uD0C4\u0000\uD0C5\uD0C2\u0000\u0000\u0000"+
-            "\uB0A4\u0000\u0000\uB0A1\uD445\uB0A2\uB0A5\uD446"+
-            "\u0000\uB07E\uB07C\uB07D\uB0A3\u0000\u0000\u0000"+
-            "\u0000\u0000\uB3AD\uD849\uB3B5\uD848\u0000\uD84B"+
-            "\uB3B1\uD84A\uB6AB\uB3AF\uB3B2\uB3AE\uB3B3\uB3B4"+
-            "\uB3B0\u0000\u0000\u0000\uD847\uB6A7\uDC7D\u0000"+
-            "\uDCA3\u0000\u0000\uDCA2\uB6AC\uB6A8\uB6A9\uDC7C"+
-            "\uDC7E\uDCA1\uB6A4\uB6A6\u0000\uB6AA\uB6A5\u0000"+
-            "\u0000\uE0D3\uE0D1\uE0D2\uB96A\uB96B\u0000\uE0D4"+
-            "\uB969\uBBD8\u0000\uBBDA\uBBD9\u0000\uE4BB\u0000"+
-            "\u0000\uE4BC\uE8AB\u0000\uE8AA\u0000\u0000\uC047"+
-            "\uC048\uEC4F\uC049\u0000\uEEF6\u0000\uEEF4\u0000"+
-            "\uEEF5\uC1F4\u0000\uF16F\uC3F7\u0000\u0000\u0000"+
-            "\uC1F5\uAB41\u0000\uB0A6\uD447\u0000\u0000\uD84C"+
-            "\uB3B6\uB6AD\uDCA4\uDCA6\uB6AF\uB6AE\uB6B0\uB6B1"+
-            "\uDCA5\uB96E\uB96F\uB96D\uBBDB\uB96C\uE0D5\u0000"+
-            "\u0000\u0000\uBBDC\uE8AC\uEC50\uC04A\uC1F6\uF170"+
-            "\uF174\uC2F9\uF171\uC2FA\uC2F8\uF175\uC2FB\uF173"+
-            "\u0000\uF379\uC2F7\uC3F8\u0000\uF8CD\u0000\u0000"+
-            "\uAB42\uB3B8\uB3B7\u0000\u0000\u0000\u0000\uB6B2"+
-            "\uDCA8\uDCA7\uB6B3\u0000\u0000\uE0D9\uB973\uB970"+
-            "\uE0D8\uB972\uE0D6\uB971\u0000\uE0D7\u0000\uE4BD"+
-            "\uBBDD\u0000\uE8AF\u0000\uBE5D\uE8AD\uBE5E\uBE5F"+
-            "\uE8AE\uBE60\u0000\uEC51\u0000\uC04E\uC04B\uC050"+
-            "\uEC53\uC04C\uEC52\uC04F\u0000\u0000\uC04D\u0000"+
-            "\uEEF9\uEEFB\u0000\u0000\uC1F7\uEEFA\uC1F8\uEEF8"+
-            "\uEEF7\u0000\uF177\uF176\uC2FC\uF178\uF37E\uC3FA"+
-            "\uF37D\uF37A\uC3F9\uF37B\uF37C\u0000\uF548\uF549"+
-            "\uC4C5\u0000\uC553\u0000\u0000\uF66E\u0000\u0000"+
-            "\uC551\uC552\uF66F\u0000\u0000\uC5B4\uC5B5\uF771"+
-            "\u0000\u0000\uC645\uF8CF\uC647\u0000\uF8CE\uF8D0"+
-            "\uC646\uF957\u0000\uF9AD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uAB43\u0000\u0000\u0000\uB974\u0000"+
-            "\uE4BE\u0000\uE8B0\uC051\uC052\u0000\uAB44\u0000"+
-            "\uBE61\uC3FB\uADB1\u0000\u0000\u0000\uC053\u0000"+
-            "\uC5E2\uADB2\uD84D\u0000\uDCA9\u0000\uDCAB\u0000"+
-            "\uDCAA\u0000\uE0DD\uE0DA\uB975\u0000\uB976\uE0DB"+
-            "\uE0DC\u0000\uE4C0\uE4C5\uBBDE\uE4BF\uE4C1\uE4C8"+
-            "\uE4C3\uE4C7\uE4C4\uE4C2\uE4C6\uBBDF\u0000\u0000"+
-            "\uE8B3\u0000\uE8B1\uBE63\u0000\uBE62\uE8B2\uBE64"+
-            "\u0000\u0000\u0000\u0000\uEC56\u0000\u0000\uEC55"+
-            "\uC054\uEC54\uEEFC\u0000\uEEFE\uEF41\uEF40\u0000"+
-            "\uC1F9\uEEFD\uF1A1\uC2FD\uF17D\uF1A2\uC2FE\u0000"+
-            "\uF17B\u0000\uF17E\uF17C\uF179\uC340\uF17A\u0000"+
-            "\u0000\u0000\u0000\uF3A1\u0000\u0000\uF3A3\uF3A2"+
-            "\u0000\uF54A\u0000\uF54B\u0000\u0000\u0000\uF670"+
-            "\u0000\uC5B7\u0000\uC5B6\uF84F\uF850\uC648\uF8D1"+
-            "\u0000\uC669\u0000\uADB3\uB6B4\uE4CA\uE4C9\uE8B5"+
-            "\uE8B4\u0000\u0000\uC1FA\uEF43\uEF42\uF1A5\uF1A3"+
-            "\uF1A6\uF1A4\u0000\u0000\uC3FC\uF3A4\uF3A5\uF3A6"+
-            "\u0000\uF671\u0000\uF772\u0000\uF8D2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uADB4\u0000\u0000"+
-            "\uEC57\uEF44\u0000\uADB5\u0000\u0000\uBBE0\u0000"+
-            "\uEC58\uC341\uF1A7\uC3FD\u0000\uF54C\uF54D\uC554"+
-            "\uF851\uADB6\uB3BB\uB3BC\uD84E\uB6B5\uB6B6\uDCAC"+
-            "\uB6B7\u0000\uB97A\u0000\uB97C\uE0DF\uE0E0\uE0DE"+
-            "\uB977\uB978\uB97B\uB979\u0000\u0000\uE4CB\uBBE1"+
-            "\uBBE2\u0000\u0000\uE8BC\uBE67\uE8B7\uE8B6\u0000"+
-            "\uE8BB\uBE65\u0000\u0000\uC05B\u0000\uE8B8\uE8BD"+
-            "\uE8BA\uE8B9\u0000\uBE66\u0000\uC059\u0000\uEC5A"+
-            "\uC055\u0000\uEC5B\u0000\u0000\uEC59\u0000\uC058"+
-            "\uC056\uC05A\u0000\uC057\u0000\u0000\u0000\u0000"+
-            "\u0000\uEF45\u0000\uEF4A\uEF46\uEF49\uC1FB\u0000"+
-            "\uEDD4\uEF48\uEF47\u0000\uC344\uC342\uC345\uC343"+
-            "\uF1A8\uF1A9\uF1AA\uC346\u0000\u0000\u0000\uF3AA"+
-            "\uC440\uF3A8\u0000\uC441\uF3A7\uF3A9\uC3FE\uF551"+
-            "\uF54E\u0000\uF54F\uF550\uF672\uC556\u0000\uC555"+
-            "\u0000\uF774\uF773\uC5B8\u0000\u0000\u0000\uC5E3"+
-            "\uC649\uC660\uF958\uF9AE\uF9AF\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uADB7\uDCAD\u0000\u0000\uE0E1\uE4CC\uE4CD\uBBE3"+
-            "\u0000\uBBE4\uE8BE\uBE68\u0000\u0000\uC1FC\u0000"+
-            "\uF1AB\u0000\uC347\uF3AD\uC442\uF3AC\uF3AE\uF3AB"+
-            "\uF675\uF552\uF553\u0000\uC4C6\u0000\uF674\u0000"+
-            "\u0000\uF673\u0000\uF775\uF9B0\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uADB8\u0000\u0000\u0000\uADB9"+
-            "\u0000\u0000\uB0A7\uD448\u0000\uD84F\u0000\uB6B8"+
-            "\u0000\uB6BB\uB6B9\uDCAE\u0000\uB6BD\u0000\uB6BA"+
-            "\u0000\u0000\uB6BC\u0000\uB97E\u0000\uE0E2\u0000"+
-            "\u0000\uE0E3\uE8C0\u0000\uB97D\uB9A1\uB9A2\u0000"+
-            "\uE4CF\u0000\uE4CE\uBBE5\u0000\uBBE6\u0000\uE4D0"+
-            "\uE8BF\uBBE8\uBE69\u0000\uBBE7\u0000\u0000\u0000"+
-            "\uC05C\uE8C1\uBE6B\uBE6A\uE8C2\uE8C5\uE8C3\uE8C4"+
-            "\uBE6C\u0000\uC061\uC05F\u0000\u0000\uC05E\uEC5D"+
-            "\u0000\uC060\u0000\u0000\uEC5C\uEF4B\u0000\uEC5E"+
-            "\uC05D\uEC5F\uEF4E\uEF4C\uEF4D\uEF52\uC34B\uEF51"+
-            "\uEF54\uEF53\uEF50\uEF4F\u0000\uC1FD\u0000\u0000"+
-            "\u0000\u0000\uF1AE\u0000\uF1AD\uC34A\uC348\uC349"+
-            "\u0000\uF1AC\u0000\uF3B1\u0000\uC443\u0000\uF3B0"+
-            "\uF3AF\uC444\u0000\uF558\uF557\u0000\uF555\u0000"+
-            "\uF554\uC4C8\uC4C7\uF559\uF776\uC5B9\uF677\uC557"+
-            "\uF676\uF556\u0000\uF777\uC5E4\u0000\uC661\uF959"+
-            "\u0000\uF9B1\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uADBA\uD850"+
-            "\uEF55\uADBB\u0000\u0000\uE4D2\uE4D1\uEC60\u0000"+
-            "\u0000\uEF57\u0000\uEF56\u0000\uC34C\uF3B2\uF3B3"+
-            "\uC4C9\u0000\u0000\uF9B2\uB0A8\uB6BF\uB6BE\uE0E4"+
-            "\uE0E6\uB9A4\uE0E5\uB9A3\uB9A5\uE0E7\u0000\u0000"+
-            "\u0000\uE4D4\uE4D6\uE4D5\u0000\uE4D8\u0000\u0000"+
-            "\u0000\uBBE9\uE4D7\uE4D3\u0000\u0000\u0000\uE4D9"+
-            "\u0000\uE8CC\u0000\uE8CF\uE8D1\uE8C7\uE8CB\uE8C8"+
-            "\uBE6E\uBE71\uBE73\uE8C9\uE8CA\uBE72\uE8CD\uE8D0"+
-            "\uE8CE\uBE74\u0000\uBE70\uE8C6\uBE6D\u0000\uBE6F"+
-            "\u0000\u0000\uC063\uEC66\uEC64\uEC63\u0000\uEC69"+
-            "\u0000\uEC68\uEC67\u0000\uEC62\uC062\uEC61\u0000"+
-            "\uEC65\uC064\u0000\u0000\uEF5A\u0000\uEF5E\uEF5B"+
-            "\uEF5D\uEF5C\uEF59\uEF5F\uEF62\uEF60\uEF61\uC240"+
-            "\u0000\uC1FE\uEF58\uEF63\uF1B3\uF1B6\uF1B8\uF1B7"+
-            "\u0000\uF1B1\uF1B5\uF1B0\u0000\uF1B2\uC34D\uF1AF"+
-            "\u0000\uF1B4\u0000\u0000\uF3C0\uF3B5\uC445\u0000"+
-            "\u0000\uC446\uF3B4\uF3B9\uF3BF\uF3B7\uF3BE\u0000"+
-            "\uF3BB\u0000\uF3BA\uF3BD\uF3B8\uF3B6\u0000\uF3BC"+
-            "\u0000\uF560\uF55E\uC4CA\uF55D\uF563\uF561\u0000"+
-            "\uC4CB\uF55C\uF55A\u0000\uF55B\uC4CD\uF55F\uC4CC"+
-            "\uF562\uF678\uF67E\u0000\u0000\uF679\uC55B\uF6A1"+
-            "\uC55A\uF67D\uF67C\uC559\uF67B\uC558\uF67A\u0000"+
-            "\uF77D\uF7A1\uF77E\u0000\uF77B\uC5BB\uF778\uF77C"+
-            "\uF7A3\u0000\uF7A2\uF779\uF77A\uC5BA\uF852\uC5E7"+
-            "\u0000\uF853\uC5E5\uC5E6\u0000\u0000\uF8D3\uC64A"+
-            "\uF976\u0000\uC66A\u0000\uF9B3\uC66B\uF9B4\uF9B5"+
-            "\uF9C3\uF9C2\uC67A\uF9CD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uB0A9\u0000\u0000\uE0E9\u0000\uE0E8\u0000\uBBEA"+
-            "\uBBEB\uE4DA\u0000\uE8D2\uEC6C\u0000\u0000\uBE75"+
-            "\uC065\uEC6A\u0000\uEC6D\uC066\u0000\uEF64\uEC6B"+
-            "\uF1B9\uC34E\uF3C1\u0000\u0000\u0000\uF566\uF564"+
-            "\u0000\u0000\uF565\u0000\u0000\uF6A2\u0000\uC55C"+
-            "\uF7A4\uC5EA\uC5BC\uC5E8\uC5E9\uF8D4\uC662\u0000"+
-            "\uB0AA\u0000\u0000\u0000\uF1BA\u0000\u0000\uD449"+
-            "\u0000\uB9A6\u0000\uE4DB\u0000\u0000\uBBEC\uE4DC"+
-            "\u0000\u0000\u0000\uE8D4\uE8D3\uC068\uBE76\uBE77"+
-            "\u0000\uE8D7\uE8D6\uE8D5\u0000\u0000\uEC6E\uEC71"+
-            "\u0000\uEC70\uEC6F\uC067\uEF68\uEF66\uEF65\u0000"+
-            "\u0000\uEF67\u0000\uC34F\uF1BC\uF1BD\uC350\u0000"+
-            "\uF1BB\u0000\uF3C3\uF3C2\uF3C5\uC447\uF3C4\u0000"+
-            "\uF567\uF569\uF568\u0000\u0000\uF6A3\uF6A6\uF6A4"+
-            "\uF6A5\uF7A5\uC5BD\u0000\u0000\u0000\uF854\uF855"+
-            "\uF856\u0000\uC64B\uC663\uF9B6\uB0AB\u0000\uBE78"+
-            "\uC069\uF1BE\u0000\uF7A6\u0000\u0000\uF9C4\uD44A"+
-            "\u0000\uC67B\uB0AC\uEC72\u0000\uF1BF\u0000\uF3C6"+
-            "\u0000\u0000\uF6A7\uF7A7\uB0AD\u0000\uE4DD\uE4DE"+
-            "\u0000\uBBED\uBBEE\uE8D9\uBE7A\uBE79\uE8D8\u0000"+
-            "\uEF69\u0000\uF1C0\uF1C2\uF1C1\uC353\uC352\uC351"+
-            "\u0000\uC55E\uF6A8\u0000\uC55D\uF7A9\uF7A8\u0000"+
-            "\uC64C\uF8D5\uB3BD\uE0EA\u0000\u0000\u0000\uE4E1"+
-            "\uE4DF\uE4E0\u0000\u0000\uE8E2\u0000\uE8DD\uE8DA"+
-            "\uE8E1\u0000\u0000\u0000\uE8E3\u0000\u0000\uBE7C"+
-            "\uE8E0\uE8DC\u0000\u0000\uE8DB\uE8DF\uE8DE\uBE7B"+
-            "\u0000\u0000\uEC7D\uEC78\uEC76\uECA1\uEC77\u0000"+
-            "\uEC73\u0000\uEC79\u0000\u0000\uEC74\uEF72\uEC75"+
-            "\uECA2\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uEC7C\uC06A\uEC7B\uEC7A\u0000\uEC7E\u0000\u0000"+
-            "\u0000\u0000\uEF6A\uEF6D\u0000\u0000\uEF6C\u0000"+
-            "\uEF74\uEF6F\uEF73\u0000\uEF71\uEF70\uEF6E\u0000"+
-            "\uEF6B\u0000\uC243\uC242\u0000\uC244\uC241\uEF75"+
-            "\u0000\u0000\u0000\u0000\u0000\uF1C8\uF1CB\u0000"+
-            "\uF1C9\uF1CD\u0000\u0000\u0000\uF1CE\u0000\uF1C6"+
-            "\uC358\uF1C7\u0000\uF1C5\uF1CC\u0000\uF1C4\uF1C3"+
-            "\uC357\uC355\uC354\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uF1CA\uF3CF\uF3D5\uC44A\uF3D0"+
-            "\u0000\uF3D3\uF3D7\uC44B\uF3D2\u0000\uF3CA\u0000"+
-            "\uF3C9\uF3D6\uF3CD\u0000\uF3CB\uF3D4\uF3CC\uC449"+
-            "\uC448\u0000\uF3C7\uF3C8\uF3D1\u0000\u0000\u0000"+
-            "\uF3CE\u0000\u0000\u0000\u0000\u0000\u0000\uF56C"+
-            "\uF56F\u0000\u0000\u0000\u0000\uC356\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uF56D\uF573\uF571"+
-            "\uF56B\uF576\u0000\uF56A\u0000\uC4CF\uF572\u0000"+
-            "\u0000\u0000\uF56E\uC4CE\uF575\u0000\u0000\uF574"+
-            "\u0000\u0000\u0000\u0000\uF6AB\uF6AA\u0000\u0000"+
-            "\u0000\uF6B1\u0000\uF6AD\uF6B0\uC560\u0000\u0000"+
-            "\uF6AE\uF6AF\u0000\uF6A9\uF6AC\uC55F\u0000\u0000"+
-            "\u0000\uC5BF\uF7B4\uF7AF\uF7B3\u0000\uF7B6\uF7B2"+
-            "\u0000\uF7AE\u0000\uC5C1\uF7B1\uF7B5\uC5C0\uF7AC"+
-            "\uF570\uF7B0\u0000\u0000\uF7AD\u0000\uF7AA\u0000"+
-            "\uF7AB\uC5BE\uF85A\uF85C\uF85F\uF85B\uF860\u0000"+
-            "\uF859\u0000\uF857\u0000\uC5EB\uF85D\uC5ED\uC5EC"+
-            "\uF858\uF85E\u0000\u0000\u0000\u0000\uF8DA\uC64D"+
-            "\uF8DB\u0000\uF8D9\uF8D6\u0000\u0000\uF8D8\uF8D7"+
-            "\uF95A\u0000\u0000\u0000\u0000\uF95C\uF95B\u0000"+
-            "\u0000\uF979\u0000\uF978\uF977\uF97A\u0000\uC673"+
-            "\uC674\uF9CA\uF9CE\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uB3BE\uDCAF\uE0ED"+
-            "\u0000\uB9A7\uE0EB\u0000\u0000\uE0EC\u0000\u0000"+
-            "\u0000\uE4E2\uE4E3\uBBF1\uBBEF\uE4E4\uBBF0\uE8E8"+
-            "\u0000\uE8EB\uE8E5\uE8EC\uE8E4\uE8E6\u0000\uE8E7"+
-            "\uE8EA\u0000\u0000\uBEA1\uE8EF\uE8EE\uBE7D\uE8E9"+
-            "\uE8ED\uBE7E\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uECAC\u0000\uC06F\u0000\uECA7\uC06B\u0000\uECA4"+
-            "\uECAA\uECAD\u0000\uC070\u0000\uECA9\uECA6\uECAE"+
-            "\uECA5\u0000\uECAB\uC06C\u0000\uECA3\uC06D\u0000"+
-            "\uC06E\uECA8\u0000\u0000\u0000\uEFA9\uEF7A\uEF7B"+
-            "\uEF7E\uEF7C\u0000\uEF76\u0000\u0000\uEF79\uEFA5"+
-            "\uEF7D\u0000\u0000\uC245\u0000\uEFA7\uEFA4\uC246"+
-            "\uEFA6\uEF77\uEFA2\uEFA3\u0000\uEFA1\u0000\u0000"+
-            "\u0000\u0000\uF1D2\uF1D4\uF1D7\u0000\u0000\uF1D1"+
-            "\u0000\uC359\uF1D9\uF1D0\uF1DA\u0000\uF1D6\uF1D8"+
-            "\uF1DC\uF1D5\uF1DD\uF1D3\uF1CF\uC35A\u0000\uF1DB"+
-            "\uC35B\uC44D\u0000\u0000\u0000\u0000\u0000\uEF78"+
-            "\uF3F1\uF3E8\uC44F\uF3E4\uC450\u0000\u0000\uF3ED"+
-            "\uF3E7\uF3DD\uC44E\uF3EA\uF3E5\uF3E6\u0000\uF3D8"+
-            "\uF3DF\uF3EE\u0000\uF3EB\u0000\uF3E3\u0000\uF3EF"+
-            "\uF3DE\uF3D9\uF3EC\u0000\uF3DB\uF3E9\uF3E0\uF3F0"+
-            "\uF3DC\uC44C\uF3DA\uF3E1\uF3E2\u0000\u0000\u0000"+
-            "\uF57D\u0000\uF57B\u0000\uF5A2\u0000\uF5AE\uF5A5"+
-            "\uF57C\uF578\uF5A7\uF57E\uF5A3\uF57A\uF5AA\uF577"+
-            "\uF5A1\uF5A6\uF5A8\uF5AB\uF579\u0000\uF5AF\uF5B0"+
-            "\uF5A9\uF5AD\uF5A4\u0000\uF6C1\uF6C4\u0000\uC561"+
-            "\u0000\uF6C3\uF6C8\uF6C6\uC562\uF6BD\uF6B3\uF6B2"+
-            "\uC564\uF6BF\uF6C0\uF6BC\uF6B4\u0000\uF6B9\uF5AC"+
-            "\u0000\uF6B5\uC563\uF6BB\u0000\uF6BA\u0000\uF6B6"+
-            "\uF6C2\u0000\uF6B7\uF7BB\uF6C5\uF6C7\uF6BE\uF6B8"+
-            "\uF7BC\uF7BE\uF7B8\uC5C2\u0000\uF7C5\uF7C3\uC5C3"+
-            "\uF7C2\uF7C1\uF7BA\uF7B7\uF7BD\uF7C6\uF7B9\uF7BF"+
-            "\u0000\uF869\uF86E\uF864\uF867\uC5EE\uF86B\u0000"+
-            "\uF872\uF7C0\u0000\uF865\uF86F\uF873\uF86A\uF863"+
-            "\uF86D\u0000\uF86C\uF871\uF870\uF7C4\uF868\uF862"+
-            "\uF866\uC64E\uC64F\uF861\u0000\uF8E6\uF8DD\uF8E5"+
-            "\uF8E2\uF8E3\uF8DC\uF8DF\uF8E7\uF8E1\uF8E0\uF8DE"+
-            "\u0000\uF8E4\u0000\uF95D\u0000\uF95E\u0000\uF960"+
-            "\uF95F\uF962\uF961\uF97C\uF97B\uF9B7\u0000\uF9B8"+
-            "\u0000\uF9C5\uC678\uC67C\u0000\uF9CF\uC67D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uB3BF\u0000\u0000"+
-            "\u0000\uC4D0\uF6C9\u0000\uC650\uC651\u0000\uB3C0"+
-            "\uE0EE\u0000\uB9A8\uE8F0\u0000\u0000\uECB0\uECB1"+
-            "\uECAF\uEFAB\uEFAA\uC247\uF1DF\uEFAC\uF1DE\u0000"+
-            "\u0000\uF3F3\uC451\uC453\uF3F2\u0000\u0000\uC452"+
-            "\u0000\uF5B1\uF5B3\uF5B2\uF6CA\uC565\u0000\uC5EF"+
-            "\uF8E8\uF963\u0000\u0000\uF9D2\uB3C1\u0000\uE4E5"+
-            "\u0000\uBEA2\u0000\u0000\u0000\uECB3\uECB2\u0000"+
-            "\uEFAD\u0000\u0000\u0000\uC454\uC4D1\uF7C7\uF9CB"+
-            "\u0000\u0000\u0000\uB3C2\uBBF2\u0000\uBEA3\u0000"+
-            "\uF3F4\u0000\uF874\uB6C0\u0000\u0000\u0000\u0000"+
-            "\uEFAE\u0000\u0000\u0000\uC664\uB6C1\uBEA4\uC248"+
-            "\uF875\uB6C2\u0000\uE8F1\uC072\uECB4\uECB5\u0000"+
-            "\uC071\u0000\uEFAF\uC24C\uC24A\uC24B\uC249\uF1E0"+
-            "\uC35C\u0000\u0000\u0000\uF5B5\uF5B4\uF5B7\uF5B6"+
-            "\uC4D2\u0000\u0000\uF6CB\u0000\uF6CD\uF6CC\uC566"+
-            "\uF7C8\u0000\uF876\uF877\uC5F0\uF964\uF97D\uC675"+
-            "\u0000\uDCB0\uECB6\uEFB0\uF3F5\uE0EF\u0000\uEFB1";
-
-        private final static String innerIndex6=
-            "\uF1E2\uF1E1\u0000\u0000\u0000\u0000\uF878\uC652"+
-            "\u0000\uF965\uF97E\u0000\u0000\u0000\uB9A9\uE8F2"+
-            "\uE8F3\u0000\uECB7\uB9AA\u0000\uC35D\uF1E3\u0000"+
-            "\uF6CF\uC567\uF6D0\uF6CE\uF879\u0000\uF8E9\u0000"+
-            "\uB9AB\u0000\uEFB4\uEFB3\uEFB2\uF1E4\u0000\u0000"+
-            "\uF1E8\uF1E7\uF1E6\uF1E5\uC35E\uF3F6\uF5B9\uC4D3"+
-            "\uF5B8\uF6D1\uF7CB\uF7CA\uC5C4\uF7C9\uF87C\uF87B"+
-            "\uF87A\u0000\u0000\uBBF3\u0000\uECB8\uC24D\u0000"+
-            "\uF3F7\uF3F8\uF7CC\uF87D\u0000\u0000\uF8EA\uF966"+
-            "\uF9B9\uF9D4\uBBF4\uC24E\uF1E9\uF3F9\uF6D2\uF87E"+
-            "\u0000\u0000\uBEA6\u0000\uEFB5\uF1EA\uF3FA\uF3FB"+
-            "\uF3FC\uF5BE\u0000\uF5BA\uC568\uF5BD\uF5BC\uC4D4"+
-            "\uF5BB\uC4D6\u0000\uC4D5\uF6D4\uF6D3\uC569\uC56A"+
-            "\u0000\u0000\uC5C6\uF7CD\uC5C5\u0000\uF8A3\uF8A4"+
-            "\uF8A2\uF8A1\uC654\u0000\uF8EB\uF8EC\uF8ED\uC653"+
-            "\uF967\uF96A\uF969\uF968\u0000\u0000\uF9D3\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC073\u0000\u0000"+
-            "\uC365\uF5BF\uF6D5\u0000\uC5C7\uF7CE\u0000\u0000"+
-            "\uF9D5\u0000\u0000\u0000\uC074\u0000\u0000\u0000"+
-            "\uEFB6\u0000\uF7CF\u0000\uF9A1\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uC94A\uDDFC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA14A\uA157\u0000\uA159\uA15B\uA15F\uA160\uA163"+
-            "\uA164\uA167\uA168\uA16B\uA16C\uA16F\uA170\uA173"+
-            "\uA174\uA177\uA178\uA17B\uA17C\u0000\u0000\u0000"+
-            "\u0000\uA1C6\uA1C7\uA1CA\uA1CB\uA1C8\uA1C9\uA15C"+
-            "\uA14D\u0000\uA14F\u0000\uA151\uA152\uA153\uA154"+
-            "\u0000\uA17D\uA17E\uA1A1\uA1A2\uA1A3\uA1A4\uA1CC"+
-            "\uA1CD\uA1CE\uA1DE\uA1DF\uA1E0\uA1E1\uA1E2\u0000"+
-            "\u0000\uA24C\uA24D\uA24E\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA149\u0000\uA1AD\uA243\uA248\uA1AE\u0000"+
-            "\uA15D\uA15E\uA1AF\uA1CF\uA141\uA1D0\uA144\uA241"+
-            "\uA2AF\uA2B0\uA2B1\uA2B2\uA2B3\uA2B4\uA2B5\uA2B6"+
-            "\uA2B7\uA2B8\uA147\uA146\uA1D5\uA1D7\uA1D6\uA148"+
-            "\uA249\uA2CF\uA2D0\uA2D1\uA2D2\uA2D3\uA2D4\uA2D5"+
-            "\uA2D6\uA2D7\uA2D8\uA2D9\uA2DA\uA2DB\uA2DC\uA2DD"+
-            "\uA2DE\uA2DF\uA2E0\uA2E1\uA2E2\uA2E3\uA2E4\uA2E5"+
-            "\uA2E6\uA2E7\uA2E8\u0000\uA242\u0000\u0000\uA1C4"+
-            "\u0000\uA2E9\uA2EA\uA2EB\uA2EC\uA2ED\uA2EE\uA2EF"+
-            "\uA2F0\uA2F1\uA2F2\uA2F3\uA2F4\uA2F5\uA2F6\uA2F7"+
-            "\uA2F8\uA2F9\uA2FA\uA2FB\uA2FC\uA2FD\uA2FE\uA340"+
-            "\uA341\uA342\uA343\uA161\uA155\uA162\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA14E\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
-        private final static short index1[] = {
-            1, 0, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            5, 6, 7, 0, 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            11, 12, 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16,
-            17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
-            33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
-            49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
-            65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
-            81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 98, 99
-        };
-
-        static String index2[] = {
-            innerIndex0,
-            innerIndex1,
-            innerIndex2,
-            innerIndex3,
-            innerIndex4,
-            innerIndex5,
-            innerIndex6
-        };
-        public Encoder(Charset cs) {
-            super(cs,
-                  index1,
-                  index2);
-        }
-    }
-}
--- a/jdk/src/share/classes/sun/nio/cs/ext/Big5_HKSCS.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/nio/cs/ext/Big5_HKSCS.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,15 +23,13 @@
  * have any questions.
  */
 
-/*
- */
-
 package sun.nio.cs.ext;
 
 import java.nio.charset.Charset;
 import java.nio.charset.CharsetDecoder;
 import java.nio.charset.CharsetEncoder;
 import sun.nio.cs.HistoricallyNamedCharset;
+import static sun.nio.cs.CharsetMapping.*;
 
 public class Big5_HKSCS extends Charset implements HistoricallyNamedCharset
 {
@@ -57,33 +55,35 @@
         return new Encoder(this);
     }
 
-    private static class Decoder extends HKSCS_2001.Decoder {
-
-        Big5.Decoder big5Dec;
+    static class Decoder extends HKSCS.Decoder {
+        private static DoubleByte.Decoder big5 =
+            (DoubleByte.Decoder)new Big5().newDecoder();
 
-        protected char decodeDouble(int byte1, int byte2) {
-            char c = super.decodeDouble(byte1, byte2);
-            return (c != REPLACE_CHAR) ? c : big5Dec.decodeDouble(byte1, byte2);
+        private static char[][] b2cBmp = new char[0x100][];
+        private static char[][] b2cSupp = new char[0x100][];
+        static {
+            initb2c(b2cBmp, HKSCSMapping.b2cBmpStr);
+            initb2c(b2cSupp, HKSCSMapping.b2cSuppStr);
         }
 
         private Decoder(Charset cs) {
-            super(cs);
-            big5Dec = new Big5.Decoder(cs);
+            super(cs, big5, b2cBmp, b2cSupp);
         }
     }
 
-    private static class Encoder extends HKSCS_2001.Encoder {
-
-        private Big5.Encoder big5Enc;
+    static class Encoder extends HKSCS.Encoder {
+        private static DoubleByte.Encoder big5 =
+            (DoubleByte.Encoder)new Big5().newEncoder();
 
-        protected int encodeDouble(char ch) {
-            int r = super.encodeDouble(ch);
-            return (r != 0) ? r : big5Enc.encodeDouble(ch);
+        static char[][] c2bBmp = new char[0x100][];
+        static char[][] c2bSupp = new char[0x100][];
+        static {
+            initc2b(c2bBmp, HKSCSMapping.b2cBmpStr, HKSCSMapping.pua);
+            initc2b(c2bSupp, HKSCSMapping.b2cSuppStr, null);
         }
 
         private Encoder(Charset cs) {
-            super(cs);
-            big5Enc = new Big5.Encoder(cs);
+            super(cs, big5, c2bBmp, c2bSupp);
         }
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/nio/cs/ext/Big5_HKSCS_2001.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2002-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.nio.cs.ext;
+
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CharsetEncoder;
+import sun.nio.cs.HistoricallyNamedCharset;
+
+public class Big5_HKSCS_2001 extends Charset
+{
+    public Big5_HKSCS_2001() {
+        super("x-Big5-HKSCS-2001", ExtendedCharsets.aliasesFor("x-Big5-HKSCS-2001"));
+    }
+
+    public boolean contains(Charset cs) {
+        return ((cs.name().equals("US-ASCII"))
+                || (cs instanceof Big5)
+                || (cs instanceof Big5_HKSCS_2001));
+    }
+
+    public CharsetDecoder newDecoder() {
+        return new Decoder(this);
+    }
+
+    public CharsetEncoder newEncoder() {
+        return new Encoder(this);
+    }
+
+    private static class Decoder extends HKSCS.Decoder {
+        private static DoubleByte.Decoder big5 =
+            (DoubleByte.Decoder)new Big5().newDecoder();
+
+        private static char[][] b2cBmp = new char[0x100][];
+        private static char[][] b2cSupp = new char[0x100][];
+        static {
+            initb2c(b2cBmp, HKSCS2001Mapping.b2cBmpStr);
+            initb2c(b2cSupp, HKSCS2001Mapping.b2cSuppStr);
+        }
+
+        private Decoder(Charset cs) {
+            super(cs, big5, b2cBmp, b2cSupp);
+        }
+    }
+
+    private static class Encoder extends HKSCS.Encoder {
+        private static DoubleByte.Encoder big5 =
+            (DoubleByte.Encoder)new Big5().newEncoder();
+
+        static char[][] c2bBmp = new char[0x100][];
+        static char[][] c2bSupp = new char[0x100][];
+        static {
+            initc2b(c2bBmp, HKSCS2001Mapping.b2cBmpStr,
+                    HKSCS2001Mapping.pua);
+            initc2b(c2bSupp, HKSCS2001Mapping.b2cSuppStr, null);
+        }
+
+        private Encoder(Charset cs) {
+            super(cs, big5, c2bBmp, c2bSupp);
+        }
+    }
+}
--- a/jdk/src/share/classes/sun/nio/cs/ext/Big5_Solaris.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/nio/cs/ext/Big5_Solaris.java	Wed Jul 05 17:09:51 2017 +0200
@@ -23,15 +23,14 @@
  * have any questions.
  */
 
-/*
- */
-
 package sun.nio.cs.ext;
 
 import java.nio.charset.Charset;
 import java.nio.charset.CharsetDecoder;
 import java.nio.charset.CharsetEncoder;
 import sun.nio.cs.HistoricallyNamedCharset;
+import java.util.Arrays;
+import static sun.nio.cs.CharsetMapping.*;
 
 public class Big5_Solaris extends Charset implements HistoricallyNamedCharset
 {
@@ -50,90 +49,78 @@
     }
 
     public CharsetDecoder newDecoder() {
-        return new Decoder(this);
+        initb2c();
+        return new  DoubleByte.Decoder(this, b2c, b2cSB, 0x40, 0xfe);
     }
 
     public CharsetEncoder newEncoder() {
-        return new Encoder(this);
+        initc2b();
+        return new DoubleByte.Encoder(this, c2b, c2bIndex);
     }
 
-    private static class Decoder extends Big5.Decoder {
-
-        protected char decodeDouble(int byte1, int byte2) {
-            char c = super.decodeDouble(byte1, byte2);
-
-            // Big5 Solaris implementation has 7 additional mappings
+    static char[][] b2c;
+    static char[] b2cSB;
+    private static volatile boolean b2cInitialized = false;
 
-            if (c == REPLACE_CHAR) {
-                if (byte1 == 0xf9) {
-                    switch (byte2) {
-                        case 0xD6:
-                            c = (char)0x7881;
-                            break;
-                        case 0xD7:
-                            c = (char)0x92B9;
-                            break;
-                        case 0xD8:
-                            c = (char)0x88CF;
-                            break;
-                        case 0xD9:
-                            c = (char)0x58BB;
-                            break;
-                        case 0xDA:
-                            c = (char)0x6052;
-                            break;
-                        case 0xDB:
-                            c = (char)0x7CA7;
-                            break;
-                        case 0xDC:
-                            c = (char)0x5AFA;
-                            break;
-                    }
-                }
+    static void initb2c() {
+        if (b2cInitialized)
+            return;
+        synchronized (Big5_Solaris.class) {
+            if (b2cInitialized)
+                return;
+            Big5.initb2c();
+            b2c = Big5.b2c.clone();
+            // Big5 Solaris implementation has 7 additional mappings
+            int[] sol = new int[] {
+                0xF9D6, 0x7881,
+                0xF9D7, 0x92B9,
+                0xF9D8, 0x88CF,
+                0xF9D9, 0x58BB,
+                0xF9DA, 0x6052,
+                0xF9DB, 0x7CA7,
+                0xF9DC, 0x5AFA };
+            if (b2c[0xf9] == DoubleByte.B2C_UNMAPPABLE) {
+                b2c[0xf9] = new char[0xfe - 0x40 + 1];
+                Arrays.fill(b2c[0xf9], UNMAPPABLE_DECODING);
             }
-            return c;
-        }
 
-        private Decoder(Charset cs) {
-            super(cs);
+            for (int i = 0; i < sol.length;) {
+                b2c[0xf9][sol[i++] & 0xff - 0x40] = (char)sol[i++];
+            }
+            b2cSB = Big5.b2cSB;
+            b2cInitialized = true;
         }
     }
 
-    private static class Encoder extends Big5.Encoder {
-
-        protected int encodeDouble(char ch) {
-            int r = super.encodeDouble(ch);
+    static char[] c2b;
+    static char[] c2bIndex;
+    private static volatile boolean c2bInitialized = false;
 
-            if (r == 0) {
-                switch (ch) {
-                    case 0x7881:
-                        r = 0xF9D6;
-                        break;
-                    case 0x92B9:
-                        r = 0xF9D7;
-                        break;
-                    case 0x88CF:
-                        r = 0xF9D8;
-                        break;
-                    case 0x58BB:
-                        r = 0xF9D9;
-                        break;
-                    case 0x6052:
-                        r = 0xF9DA;
-                        break;
-                    case 0x7CA7:
-                        r = 0xF9DB;
-                        break;
-                    case 0x5AFA:
-                        r = 0xF9DC;
-                        break;
-                    }
-                }
-             return r;
-        }
+    static void initc2b() {
+        if (c2bInitialized)
+            return;
+        synchronized (Big5_Solaris.class) {
+            if (c2bInitialized)
+                return;
+            Big5.initc2b();
+            c2b = Big5.c2b.clone();
+            c2bIndex = Big5.c2bIndex.clone();
+            int[] sol = new int[] {
+                0x7881, 0xF9D6,
+                0x92B9, 0xF9D7,
+                0x88CF, 0xF9D8,
+                0x58BB, 0xF9D9,
+                0x6052, 0xF9DA,
+                0x7CA7, 0xF9DB,
+                0x5AFA, 0xF9DC };
 
-        private Encoder(Charset cs) {
-            super(cs);
+            for (int i = 0; i < sol.length;) {
+                int c = sol[i++];
+                // no need to check c2bIndex[c >>8], we know it points
+                // to the appropriate place.
+                c2b[c2bIndex[c >> 8] + (c & 0xff)] = (char)sol[i++];
+            }
+            c2bInitialized = true;
         }
     }
 }
--- a/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java	Wed Jul 05 17:09:51 2017 +0200
@@ -55,10 +55,15 @@
                     "csBig5"
                 });
 
+        charset("x-MS950-HKSCS-XP", "MS950_HKSCS_XP",
+                new String[] {
+                    "MS950_HKSCS_XP"  // JDK historical;
+                });
+
         charset("x-MS950-HKSCS", "MS950_HKSCS",
                 new String[] {
                     // IANA aliases
-                    "MS950_HKSCS"  // JDK historical;
+                    "MS950_HKSCS"     // JDK historical;
                 });
 
         charset("x-windows-950", "MS950",
@@ -86,8 +91,16 @@
                     "Big5_HKSCS", // JDK historical
                     "big5hk",
                     "big5-hkscs",
+                    "big5hkscs"   // Linux alias
+                });
+
+        charset("x-Big5-HKSCS-2001", "Big5_HKSCS_2001",
+                new String[] {
+                    "Big5_HKSCS_2001",
+                    "big5hk-2001",
+                    "big5-hkscs-2001",
                     "big5-hkscs:unicode3.0",
-                    "big5hkscs" // Linux alias
+                    "big5hkscs-2001",
                 });
 
         charset("x-Big5-Solaris", "Big5_Solaris",
--- a/jdk/src/share/classes/sun/nio/cs/ext/HKSCS.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/nio/cs/ext/HKSCS.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,6 +1,5 @@
-
 /*
- * Copyright 2002-2003 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,5573 +23,343 @@
  * have any questions.
  */
 
-/*
- */
-
 package sun.nio.cs.ext;
 
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
 import java.nio.charset.Charset;
 import java.nio.charset.CharsetDecoder;
 import java.nio.charset.CharsetEncoder;
+import java.nio.charset.CoderResult;
+import java.util.Arrays;
+import sun.nio.cs.Surrogate;
+import static sun.nio.cs.CharsetMapping.*;
 
-public abstract class HKSCS
-    extends Charset
-{
+public class HKSCS {
+
+    public static class Decoder extends DoubleByte.Decoder {
+        static int b2Min = 0x40;
+        static int b2Max = 0xfe;
+
+        private char[][] b2cBmp;
+        private char[][] b2cSupp;
+        private static DoubleByte.Decoder big5Dec;
 
-    public HKSCS() {
-        super("HKSCS", ExtendedCharsets.aliasesFor("HKSCS"));
-    }
+        protected Decoder(Charset cs,
+                          DoubleByte.Decoder big5Dec,
+                          char[][] b2cBmp, char[][] b2cSupp)
+        {
+            // super(cs, 0.5f, 1.0f);
+            // need to extends DoubleByte.Decoder so the
+            // sun.io can use it. this implementation
+            super(cs, 0.5f, 1.0f, null, null, 0, 0);
+            this.big5Dec = big5Dec;
+            this.b2cBmp = b2cBmp;
+            this.b2cSupp = b2cSupp;
+        }
 
-    public CharsetDecoder newDecoder() {
-        return new Decoder(this);
-    }
+        public char decodeSingle(int b) {
+            return big5Dec.decodeSingle(b);
+        }
+
+        public char decodeBig5(int b1, int b2) {
+            return big5Dec.decodeDouble(b1, b2);
+        }
+
+        public char decodeDouble(int b1, int b2) {
+            return b2cBmp[b1][b2 - b2Min];
+        }
 
-    public CharsetEncoder newEncoder() {
-        return new Encoder(this);
-    }
+        public char decodeDoubleEx(int b1, int b2) {
+            /* if the b2cSupp is null, the subclass need
+               to override the methold
+            if (b2cSupp == null)
+                return UNMAPPABLE_DECODING;
+             */
+            return b2cSupp[b1][b2 - b2Min];
+        }
 
+        protected CoderResult decodeArrayLoop(ByteBuffer src, CharBuffer dst) {
+            byte[] sa = src.array();
+            int sp = src.arrayOffset() + src.position();
+            int sl = src.arrayOffset() + src.limit();
+
+            char[] da = dst.array();
+            int dp = dst.arrayOffset() + dst.position();
+            int dl = dst.arrayOffset() + dst.limit();
 
-    /**
-     * These accessors are temporarily supplied while sun.io
-     * converters co-exist with the sun.nio.cs.{ext} charset coders
-     * These facilitate sharing of conversion tables between the
-     * two co-existing implementations. When sun.io converters
-     * are made extinct these will be unncessary and should be removed
-     */
-
-    public static short[] getDecoderIndex1() {
-        return Decoder.index1;
-    }
+            try {
+                while (sp < sl) {
+                    int b1 = sa[sp] & 0xff;
+                    char c = decodeSingle(b1);
+                    int inSize = 1, outSize = 1;
+                    char[] cc = null;
+                    if (c == UNMAPPABLE_DECODING) {
+                        if (sl - sp < 2)
+                            return CoderResult.UNDERFLOW;
+                        int b2 = sa[sp + 1] & 0xff;
+                        inSize++;
+                        if (b2 < b2Min || b2 > b2Max)
+                            return CoderResult.unmappableForLength(2);
+                        c = decodeDouble(b1, b2);           //bmp
+                        if (c == UNMAPPABLE_DECODING) {
+                            c = decodeDoubleEx(b1, b2);     //supp
+                            if (c == UNMAPPABLE_DECODING) {
+                                c = decodeBig5(b1, b2);     //big5
+                                if (c == UNMAPPABLE_DECODING)
+                                    return CoderResult.unmappableForLength(2);
+                            } else {
+                                // supplementary character in u+2xxxx area
+                                outSize = 2;
+                            }
+                        }
+                    }
+                    if (dl - dp < outSize)
+                        return CoderResult.OVERFLOW;
+                    if (outSize == 2) {
+                        // supplementary characters
+                        da[dp++] = Surrogate.high(0x20000 + c);
+                        da[dp++] = Surrogate.low(0x20000 + c);
+                    } else {
+                        da[dp++] = c;
+                    }
+                    sp += inSize;
+                }
+                return CoderResult.UNDERFLOW;
+            } finally {
+                src.position(sp - src.arrayOffset());
+                dst.position(dp - dst.arrayOffset());
+            }
+        }
 
-    public static String[] getDecoderIndex2() {
-        return Decoder.index2;
-
-    }
+        protected CoderResult decodeBufferLoop(ByteBuffer src, CharBuffer dst) {
+            int mark = src.position();
+            try {
+                while (src.hasRemaining()) {
+                    char[] cc = null;
+                    int b1 = src.get() & 0xff;
+                    int inSize = 1, outSize = 1;
+                    char c = decodeSingle(b1);
+                    if (c == UNMAPPABLE_DECODING) {
+                        if (src.remaining() < 1)
+                            return CoderResult.UNDERFLOW;
+                        int b2 = src.get() & 0xff;
+                        inSize++;
+                        if (b2 < b2Min || b2 > b2Max)
+                            return CoderResult.unmappableForLength(2);
+                        c = decodeDouble(b1, b2);           //bmp
+                        if (c == UNMAPPABLE_DECODING) {
+                            c = decodeDoubleEx(b1, b2);     //supp
+                            if (c == UNMAPPABLE_DECODING) {
+                                c = decodeBig5(b1, b2);     //big5
+                                if (c == UNMAPPABLE_DECODING)
+                                    return CoderResult.unmappableForLength(2);
+                            } else {
+                                outSize = 2;
+                            }
+                        }
+                    }
+                    if (dst.remaining() < outSize)
+                        return CoderResult.OVERFLOW;
+                    if (outSize == 2) {
+                        dst.put(Surrogate.high(0x20000 + c));
+                        dst.put(Surrogate.low(0x20000 + c));
+                    } else {
+                        dst.put(c);
+                    }
+                    mark += inSize;
+                }
+                return CoderResult.UNDERFLOW;
+            } finally {
+                src.position(mark);
+            }
+        }
 
-    public static short[] getEncoderIndex1() {
-        return Encoder.index1;
+        public CoderResult decodeLoop(ByteBuffer src, CharBuffer dst) {
+            if (src.hasArray() && dst.hasArray())
+                return decodeArrayLoop(src, dst);
+            else
+                return decodeBufferLoop(src, dst);
+        }
 
-    }
-    public static String[] getEncoderIndex2() {
-        return Encoder.index2;
+        static void initb2c(char[][]b2c, String[] b2cStr)
+        {
+            for (int i = 0; i < b2cStr.length; i++) {
+                if (b2cStr[i] == null)
+                    b2c[i] = DoubleByte.B2C_UNMAPPABLE;
+                else
+                    b2c[i] = b2cStr[i].toCharArray();
+            }
+        }
 
     }
 
-    protected static class Decoder extends DoubleByteDecoder {
+    public static class Encoder extends DoubleByte.Encoder {
+        private DoubleByte.Encoder big5Enc;
+        private char[][] c2bBmp;
+        private char[][] c2bSupp;
 
-        private final static String innerIndex0=
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uF303"+
-        "\uF304\uF305\uF306\uF307\uF308\uF309\uF30A\uF30B"+
-        "\uF30C\uF30D\uF30E\uF30F\uF310\uF311\uF312\uF313"+
-        "\uF314\uF315\uF316\uF317\uF318\u0100\u00C1\u01CD"+
-        "\u00C0\u0112\u00C9\u011A\u00C8\u014C\u00D3\u01D1"+
-        "\u00D2\uF325\u1EBE\uF327\u1EC0\u00CA\u0101\u00E1"+
-        "\u01CE\u00E0\u0251\u0113\u00E9\u011B\u00E8\u012B"+
-        "\u00ED\u01D0\u00EC\u014D\u00F3\u01D2\u00F2\u016B"+
-        "\u00FA\u01D4\u00F9\u01D6\u01D8\u01DA\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\u01DC\u00FC\uF344\u1EBF\uF346\u1EC1\u00EA\u0261"+
-        "\uF34A\uF34B\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uF3A0\uF3A1"+
-        "\uFFFD\u650A\uFFFD\uFFFD\u4E3D\u6EDD\u9D4E\u91DF"+
-        "\uFFFD\uFFFD\uF3AC\u6491\u4F1A\u4F28\u4FA8\u5156"+
-        "\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1"+
-        "\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66"+
-        "\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804"+
-        "\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7"+
-        "\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6"+
-        "\u8BBE\u8BE2\u8F66\u8F67\u8F6E\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u7411"+
-        "\u7CFC\u7DCD\u6946\u7AC9\u5227\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\u918C\u78B8\u915E\u80BC\uFFFD\u8D0B\u80F6"+
-        "\uF3F0\uFFFD\uFFFD\u809F\u9EC7\u4CCD\u9DC9\u9E0C"+
-        "\u4C3E\uF3F9\uF3FA\u9E0A\uF3FC\u35C1\uFFFD\u6E9A"+
-        "\u823E\u7519\uFFFD\u4911\u9A6C\u9A8F\u9F99\u7987"+
-        "\uF408\uF409\uF40A\uF40B\u4E24\u4E81\u4E80\u4E87"+
-        "\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088"+
-        "\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205"+
-        "\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0"+
-        "\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3"+
-        "\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598"+
-        "\u553F\u35A5\u35BF\u55D7\u35C5\uF43D\u5525\uFFFD"+
-        "\uF440\uF441\uF442\u5590\uF444\u39EC\uF446\u8E46"+
-        "\uF448\uF449\u4053\uF44B\u777A\uF44D\u3A34\u47D5"+
-        "\uF450\uF451\uF452\u64DD\uF454\uF455\uF456\uF457"+
-        "\u648D\u8E7E\uF45A\uF45B\uF45C\uF45D\uF45E\uF45F"+
-        "\uFFFD\uF461\uF462\uF463\u47F4\uF465\uF466\u9AB2"+
-        "\u3A67\uF469\u3FED\u3506\uF46C\uF46D\uF46E\uF46F"+
-        "\u9D6E\u9815\uFFFD\u43D9\uF474\u64B4\u54E3\uF477"+
-        "\uF478\uF479\u39FB\uF47B\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uF47C\uF47D"+
-        "\uF47E\u64EA\uF480\uF481\u8E68\uF483\uF484\uF485"+
-        "\uFFFD\u480B\uF488\u3FFA\u5873\uF48B\uFFFD\uF48D"+
-        "\uF48E\uF48F\uF490\uF491\u5579\u40BB\u43BA\uFFFD"+
-        "\u4AB4\uF497\uF498\u81AA\u98F5\uF49B\u6379\u39FE"+
-        "\uF49E\u8DC0\u56A1\u647C\u3E43\uFFFD\uF4A4\uF4A5"+
-        "\uF4A6\uF4A7\uFFFD\uF4A9\uF4AA\u3992\u3A06\uF4AD"+
-        "\u3578\uF4AF\uF4B0\u5652\uF4B2\uF4B3\uF4B4\u34BC"+
-        "\u6C3D\uF4B7\uFFFD\uFFFD\uF4BA\uF4BB\uF4BC\uF4BD"+
-        "\uF4BE\uF4BF\uF4C0\uF4C1\u7F93\uF4C3\uF4C4\uF4C5"+
-        "\u35FB\uF4C7\uF4C8\uF4C9\uF4CA\u3F93\uF4CC\uF4CD"+
-        "\uF4CE\uF4CF\uFFFD\uF4D1\uF4D2\uF4D3\uF4D4\uF4D5"+
-        "\u3FF9\uF4D7\u6432\uF4D9\uF4DA\uF4DB\uF4DC\uF4DD"+
-        "\uF4DE\uF4DF\uF4E0\u3A18\uF4E2\uF4E3\uF4E4\uF4E5"+
-        "\uF4E6\uF4E7\uF4E8\uF4E9\u95AA\u54CC\u82C4\u55B9"+
-        "\uFFFD\uF4EF\u9C26\u9AB6\uF4F2\uF4F3\u7140\u816D"+
-        "\u80EC\u5C1C\uF4F8\u8134\u3797\u535F\uF4FC\u91B6"+
-        "\uF4FE\uF4FF\uF500\uF501\u35DD\uF503\u3609\uF505"+
-        "\u56AF\uF507\uF508\uF509\uF50A\uF50B\uF50C\uF50D"+
-        "\uF50E\uF50F\uF510\uF511\u5A54\uF513\uF514\uF515"+
-        "\uF516\u579C\uF518\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uF519\uF51A\uF51B"+
-        "\uF51C\uF51D\u3703\uF51F\uF520\uF521\uF522\uF523"+
-        "\uF524\uF525\uF526\u5899\u5268\u361A\uF52A\u7BB2"+
-        "\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\uF533"+
-        "\uF534\u55FB\u35F2\u5689\u4E28\u5902\uF53A\uF53B"+
-        "\u9751\uF53D\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4"+
-        "\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B"+
-        "\u4E2C\u72AD\uF54E\u7F52\u793B\u7CF9\u7F53\uF553"+
-        "\u34C1\uFFFD\uF556\u8002\u8080\uF559\uF55A\u535D"+
-        "\u8864\u89C1\uF55E\u8BA0\u8D1D\u9485\u9578\u957F"+
-        "\u95E8\uF565\u97E6\u9875\u98CE\u98DE\u9963\uF56B"+
-        "\u9C7C\u9E1F\u9EC4\u6B6F\u9F9C\u4E37\uF572\u961D"+
-        "\u6237\u94A2\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\u5D3E\u5D48\u5D56\u3DFC\u380F"+
-        "\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83"+
-        "\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989"+
-        "\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318"+
-        "\u39F8\u56B1\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\u3A03\u63E2\u63FB\u6407"+
-        "\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586"+
-        "\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42"+
-        "\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B"+
-        "\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6"+
-        "\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2"+
-        "\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75"+
-        "\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4"+
-        "\u6DB1\u6E15\u6E18\u6E29\u6E86\uF694\u6EBB\u6EE2"+
-        "\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\uF69E"+
-        "\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C"+
-        "\u3D91\u7050\u7054\u706F\u707F\u7089\uF6AD\u43C1"+
-        "\u35F1\uF6B0\uE311\u57BE\uE313\u713E\uE315\u364E"+
-        "\u69A2\uE318\u5B74\u7A49\uE31B\uE31C\u7A65\u7A7D"+
-        "\uE31F\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\uE325\u41CA"+
-        "\u7ADA\u7ADD\u7AEA\u41EF\u54B2\uE32C\u7B0B\u7B55"+
-        "\u7B29\uE330\uE331\u7BA2\u7B6F\u839C\uE335\uE336"+
-        "\u7BD0\u8421\u7B92\uFFFD\uE33B\u3DAD\uE33D\u8492"+
-        "\u7BFA\uFFFD\u7C35\uE342\u7C44\u7C83\uE345\u7CA6"+
-        "\u667D\uE348\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\u7E67\u451D\uE352\u7D5D\uE354"+
-        "\u748D\u7D89\u7DAB\u7135\u7DB3\uFFFD\uE35B\uE35C"+
-        "\u7DE4\u3D13\u7DF5\uE360\u7DE5\uE362\uFFFD\uE364"+
-        "\uE365\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41"+
-        "\u7F47\u7936\uE36F\u99E1\u7F97\uE372\u7FA3\uE374"+
-        "\uE375\u455C\uE377\u4503\uE379\u7FFA\uE37B\uFFFD"+
-        "\u8008\u801D\uFFFD\u802F\uE381\uE382\u803B\u803C"+
-        "\u8061\uE386\u4989\uE388\uE389\uE38A\u6725\u80A7"+
-        "\uE38D\u8107\u811A\u58B0\uE391\u6C7F\uE393\uE394"+
-        "\u64E7\uE396\u8218\uE398\u6A53\uE39A\uE39B\u447A"+
-        "\u8229\uE39E\uE39F\uE3A0\u4FF9\uE3A2\u84E2\u8362"+
-        "\uE3A5\uE3A6\uE3A7\uE3A8\uE3A9\u82AA\u691B\uE3AC"+
-        "\u41DB\u854B\u82D0\u831A\uE3B1\uE3B2\u36C1\uE3B4"+
-        "\uE3B5\u827B\u82E2\u8318\uE3B9\uE3BA\uE3BB\uE3BC"+
-        "\uE3BD\u3DBF\u831D\u55EC\u8385\u450B\uE3C3\u83AC"+
-        "\uFFFD\u83D3\u347E\uE3C8\u6A57\u855A\u3496\uE3CC"+
-        "\uE3CD\u8458\uE3CF\u8471\u3DD3\u44E4\u6AA7\u844A"+
-        "\uE3D5\u7958\uFFFD\uE3D8\uE3D9\uE3DA\u84DE\uFFFD"+
-        "\u8391\u44A0\u8493\u84E4\uE3E1\u4240\uE3E3\u4543"+
-        "\u8534\u5AF2\uE3E7\u4527\u8573\u4516\u67BF\u8616"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uE3ED\uE3EE\u85C1\uE3F0\u8602\uE3F2"+
-        "\uE3F3\uE3F4\u456A\u8628\u3648\uE3F8\u53F7\uE3FA"+
-        "\u867E\u8771\uE3FD\u87EE\uE3FF\u87B1\u87DA\u880F"+
-        "\u5661\u866C\u6856\u460F\u8845\u8846\uE409\uE40A"+
-        "\uE40B\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5"+
-        "\u7777\uE414\u8987\u898A\uFFFD\uFFFD\u89A7\u89BC"+
-        "\uE41B\u89E7\uE41D\uE41E\u8A9C\u7793\u91FE\u8A90"+
-        "\uE423\u7AE9\uE425\uE426\u4713\uE428\u717C\u8B0C"+
-        "\u8B1F\uE42C\uE42D\u8B3F\u8B4C\u8B4D\u8AA9\uE432"+
-        "\u8B90\u8B9B\u8AAF\uE436\u4615\u884F\u8C9B\uE43A"+
-        "\uE43B\uE43C\u3725\uE43E\u8CD6\uE440\uE441\u8D12"+
-        "\u8D03\uE444\u8CDB\u705C\u8D11\uE448\u3ED0\uFFFD"+
-        "\u8DA9\uE44C\uE44D\uE44E\u3B7C\uE450\uE451\u7AE7"+
-        "\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\uE459\uE45A"+
-        "\u8FA5\u9303\uE45D\uE45E\u8FB3\u492A\uE461\uE462"+
-        "\uE463\u5EF8\uE465\u8FF9\uE467\uE468\uE469\uE46A"+
-        "\u3980\uE46C\u9037\uE46E\uE46F\u9061\uE471\uE472"+
-        "\u90A8\uE474\u90C4\uE476\u90AE\uFFFD\u9167\u3AF0"+
-        "\u91A9\u91C4\u7CAC\uE47E\uE47F\u920E\u6C9F\u9241"+
-        "\u9262\uE484\uFFFD\uE486\uE487\uE488\uE489\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uE48A\u932C\u936B\uE48D\uE48E\u708F\u5AC3"+
-        "\uE491\uE492\u4965\u9244\uE495\uE496\uE497\u9373"+
-        "\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9"+
-        "\uE4A1\uE4A2\uE4A3\uE4A4\u49DF\u6C1C\u967B\u9696"+
-        "\u416C\u96A3\uE4AB\u61DA\u96B6\u78F5\uE4AF\u96BD"+
-        "\u53CC\u49A1\uE4B3\uE4B4\uE4B5\uE4B6\uE4B7\uE4B8"+
-        "\uE4B9\uE4BA\u9731\u8642\u9736\u4A0F\u453D\u4585"+
-        "\uE4C1\u7075\u5B41\u971B\uFFFD\uE4C6\u9757\u5B4A"+
-        "\uE4C9\u975F\u9425\u50D0\uE4CD\uE4CE\u9789\u979F"+
-        "\u97B1\u97BE\u97C0\u97D2\u97E0\uE4D6\u97EE\u741C"+
-        "\uE4D9\uFFFD\u97F5\uE4DC\uE4DD\u4AD1\u9834\u9833"+
-        "\u984B\u9866\u3B0E\uE4E4\u3D51\uE4E6\uE4E7\uE4E8"+
-        "\u98CA\u98B7\u98C8\u98C7\u4AFF\uE4EE\uE4EF\u55B0"+
-        "\u98E1\u98E6\u98EC\u9378\u9939\uE4F6\u4B72\uE4F8"+
-        "\uE4F9\u99F5\u9A0C\u9A3B\u9A10\u9A58\uE4FF\u36C4"+
-        "\uE501\uE502\u9AE0\u9AE2\uE505\u9AF4\u4C0E\u9B14"+
-        "\u9B2D\uE50A\u5034\u9B34\uE50D\u38C3\uE50F\u9B50"+
-        "\u9B40\uE512\u5A45\uE514\u9B8E\uE516\u9C02\u9BFF"+
-        "\u9C0C\uE51A\u9DD4\uE51C\uE51D\uE51E\uE51F\uE520"+
-        "\uE521\u9D7E\u9D83\uE524\u9E0E\u6888\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\u9DC4\uE528\uE529\uE52A\uE52B\uE52C\u9D39\uE52E"+
-        "\uE52F\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF"+
-        "\uE537\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\uE53E"+
-        "\u9F02\u9F08\u4B96\u9424\uE543\u9F17\uFFFD\u9F39"+
-        "\u569F\u568A\u9F45\u99B8\uE54B\u97F2\u847F\u9F62"+
-        "\u9F69\u7ADC\u9F8E\u7216\u4BBE\uE554\uE555\u7177"+
-        "\uE557\uE558\uE559\u739E\uE55B\uE55C\u799F\uE55E"+
-        "\uE55F\u9369\u93F3\uE562\u92EC\u9381\u93CB\uE566"+
-        "\uE567\u7217\u3EEB\u7772\u7A43\u70D0\uE56D\uE56E"+
-        "\u717E\uE570\u70A3\uE572\uE573\u3EC7\uE575\uE576"+
-        "\uE577\u3722\uE579\uE57A\u36E1\uE57C\uE57D\uE57E"+
-        "\u3723\uE580\u575B\uE582\uE583\uE584\uE585\uE586"+
-        "\u8503\uE588\uFFFD\u8455\uE58B\uE58C\uE58D\uE58E"+
-        "\uE58F\uE590\u44F4\uE592\uE593\uE594\u67F9\u3733"+
-        "\u3C15\u3DE7\u586C\uE59A\u6810\u4057\uE59D\uE59E"+
-        "\uE59F\uE5A0\uE5A1\u54CB\u569E\uE5A4\u5692\uE5A6"+
-        "\uE5A7\uE5A8\u93C6\uE5AA\u939C\u4EF8\u512B\u3819"+
-        "\uE5AF\u4EBC\uE5B1\uE5B2\u4F4B\u4F8A\uE5B5\u5A68"+
-        "\uE5B7\uE5B8\u3999\uE5BA\uE5BB\u3435\u4F29\uE5BE"+
-        "\uE5BF\uE5C0\u8ADA\uE5C2\u4E98\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u50CD"+
-        "\u510D\u4FA2\u4F03\uE5C8\uE5C9\u4F42\u502E\u506C"+
-        "\u5081\u4FCC\u4FE5\u5058\u50FC\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\u6E76\uE5D7\uE5D8\uE5D9\u6D72\uE5DB\uE5DC"+
-        "\u51A8\u51C3\uE5DF\u44DD\uE5E1\uE5E2\uE5E3\u8D7A"+
-        "\uE5E5\uE5E6\u5259\u52A4\uE5E9\u52E1\uFFFD\u467A"+
-        "\u718C\uE5EE\uE5EF\uE5F0\uE5F1\u69D1\uE5F3\uFFFD"+
-        "\u3EDE\u7499\u7414\u7456\u7398\u4B8E\uE5FB\uE5FC"+
-        "\u53D0\u3584\u720F\uE600\u55B4\uE602\u54CD\uE604"+
-        "\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E"+
-        "\u58CB\u5A99\uE60F\uE610\uE611\uE612\u5A2C\u59B8"+
-        "\u928F\u5A7E\u5ACF\u5A12\uE619\uE61A\uE61B\uE61C"+
-        "\u36F5\u6D05\u7443\u5A21\uE621\u5A81\uE623\uE624"+
-        "\u93E0\u748C\uE627\u7105\u4972\u9408\uE62B\u93BD"+
-        "\u37A0\u5C1E\u5C9E\u5E5E\u5E48\uE632\uE633\uE634"+
-        "\u5ECD\u5B4F\uE637\uE638\u3701\uE63A\u36DD\uE63C"+
-        "\u36D3\u812A\uE63F\uE640\uE641\uE642\u5F0C\u5F0E"+
-        "\uE645\uE646\u5A6B\uE648\u5B44\u8614\uE64B\u8860"+
-        "\u607E\uE64E\uE64F\u5FDB\u3EB8\uE652\uE653\uE654"+
-        "\uE655\u61C0\uE657\uE658\uE659\u6199\u6198\u6075"+
-        "\uE65D\uE65E\uE65F\uE660\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6471\uE662"+
-        "\uE663\u3A29\uE665\uE666\uE667\uE668\u6337\uE66A"+
-        "\u64B6\u6331\u63D1\uE66E\uE66F\u62A4\uE671\u643B"+
-        "\u656B\u6972\u3BF4\uE676\uE677\uE678\uE679\u550D"+
-        "\uE67B\uE67C\uE67D\u66CE\uE67F\uE680\u3AE0\u4190"+
-        "\uE683\uE684\uE685\uE686\uE687\uE688\u78EE\uE68A"+
-        "\uE68B\uE68C\u3464\uE68E\uE68F\uE690\u668E\uE692"+
-        "\u666B\u4B93\u6630\uE696\uE697\u6663\uE699\uE69A"+
-        "\u661E\uE69C\u38D1\uE69E\uE69F\u3B99\uE6A1\uE6A2"+
-        "\u74D0\u3B96\u678F\uE6A6\u68B6\u681E\u3BC4\u6ABE"+
-        "\u3863\uE6AC\uE6AD\u6A33\u6A52\u6AC9\u6B05\uE6B2"+
-        "\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\uE6B9\uE6BA"+
-        "\u93A0\u92F2\uE6BD\uE6BE\u9289\uE6C0\uE6C1\u9467"+
-        "\u6DA5\u6F0B\uE6C5\uFFFD\uE6C7\u3D8F\u6E04\uE6CA"+
-        "\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\uE6D1\uE6D2"+
-        "\u70F1\u7250\u7287\u7294\uE6D7\uE6D8\u5179\uE6DA"+
-        "\uE6DB\u747A\uE6DD\uE6DE\uE6DF\uE6E0\uE6E1\u3F06"+
-        "\u3EB1\uE6E4\uE6E5\uE6E6\u60A7\u3EF3\u74CC\u743C"+
-        "\u9387\u7437\u449F\uE6EE\u4551\u7583\u3F63\uE6F2"+
-        "\uE6F3\u3F58\u7555\u7673\uE6F7\u3B19\u7468\uE6FA"+
-        "\uE6FB\uE6FC\u3AFB\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u3DCD\uE6FF\u3EFF"+
-        "\uE701\uE702\u91FA\u5732\u9342\uE706\uE707\u50DF"+
-        "\uE709\uE70A\u7778\uE70C\u770E\u770F\u777B\uE710"+
-        "\uE711\u3A5E\uE713\u7438\u749B\u3EBF\uE717\uE718"+
-        "\u40C8\uE71A\uE71B\u9307\uE71D\u781E\u788D\u7888"+
-        "\u78D2\u73D0\u7959\uE724\uE725\u410E\uFFFD\u8496"+
-        "\u79A5\u6A2D\uE72B\u7A3A\u79F4\u416E\uE72F\u4132"+
-        "\u9235\u79F1\uE733\uE734\uE735\uE736\uE737\u3597"+
-        "\u556B\u3570\u36AA\uE73C\uE73D\u7AE2\u5A59\uE740"+
-        "\uE741\uE742\u5A0D\uE744\u78F0\u5A2A\uE747\u7AFE"+
-        "\u41F9\u7C5D\u7C6D\u4211\uE74D\uE74E\uE74F\u7CCD"+
-        "\uE751\uE752\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07"+
-        "\u7DD3\u7F4E\uE75B\uE75C\uE75D\u7D97\uE75F\u426A"+
-        "\uE761\uE762\u67D6\uE764\uE765\u57C4\uE767\uE768"+
-        "\uE769\u7FDD\u7B27\uE76C\uE76D\uE76E\u7B0C\uE770"+
-        "\u99E6\u8645\u9A63\u6A1C\uE775\u39E2\uE777\uE778"+
-        "\u9A1F\uE77A\u8480\uE77C\uE77D\u44EA\u8137\u4402"+
-        "\u80C6\u8109\u8142\uE784\u98C3\uE786\u8262\u8265"+
-        "\uE789\u8453\uE78B\u8610\uE78D\u5A86\u417F\uE790"+
-        "\u5B2B\uE792\u5AE4\uE794\u86A0\uE796\uE797\u882D"+
-        "\uE799\u5A02\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\u886E\u4F45\u8887\u88BF"+
-        "\u88E6\u8965\u894D\uE7A2\u8954\uE7A4\uE7A5\uE7A6"+
-        "\uE7A7\uE7A8\uE7A9\u3EAD\u84A3\u46F5\u46CF\u37F2"+
-        "\u8A3D\u8A1C\uE7B1\u5F4D\u922B\uE7B4\u65D4\u7129"+
-        "\u70C4\uE7B8\u9D6D\u8C9F\u8CE9\uE7BC\u599A\u77C3"+
-        "\u59F0\u436E\u36D4\u8E2A\u8EA7\uE7C4\u8F30\u8F4A"+
-        "\u42F4\u6C58\u6FBB\uE7CA\u489B\u6F79\u6E8B\uE7CE"+
-        "\u9BE9\u36B5\uE7D1\u90BB\uFFFD\u5571\u4906\u91BB"+
-        "\u9404\uE7D8\u4062\uE7DA\u9427\uE7DC\uE7DD\u84E5"+
-        "\u8A2B\u9599\u95A7\u9597\u9596\uE7E4\u7445\u3EC2"+
-        "\uE7E7\uE7E8\uE7E9\u3EE7\uE7EB\u968F\uE7ED\uE7EE"+
-        "\uE7EF\u3ECC\uE7F1\uE7F2\uE7F3\u7412\u746B\u3EFC"+
-        "\u9741\uE7F8\u6847\u4A1D\uE7FB\uE7FC\uFFFD\u9368"+
-        "\uE7FF\uE800\uE801\uE802\u92BA\u5B11\u8B69\u493C"+
-        "\u73F9\uE808\u979B\u9771\u9938\uE80C\u5DC1\uE80E"+
-        "\uE80F\u981F\uE811\u92F6\uE813\u91E5\u44C0\uE816"+
-        "\uE817\uE818\u98DC\uE81A\u3F00\u922A\u4925\u8414"+
-        "\u993B\u994D\uE821\u3DFD\u999B\u4B6F\u99AA\u9A5C"+
-        "\uE827\uE828\u6A8F\u9A21\u5AFE\u9A2F\uE82D\u4B90"+
-        "\uE82F\u99BC\u4BBD\u4B97\u937D\u5872\uE835\u5822"+
-        "\uE837\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uE838\u7844\uE83A\uE83B\u68C5"+
-        "\u3D7D\u9458\u3927\u6150\uE841\uE842\u6107\u9C4F"+
-        "\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\uE84B\u9B9F"+
-        "\uE84D\uE84E\u9D21\u4CAE\uE851\u9E18\u4CB0\u9D0C"+
-        "\uE855\uE856\uE857\uE858\u9DA5\u84BD\uE85B\uE85C"+
-        "\uE85D\u85FC\u4533\uE860\uE861\uE862\u8420\u85EE"+
-        "\uE865\uE866\uE867\u79E2\uE869\uE86A\u492D\uE86C"+
-        "\u3D62\u93DB\u92BE\u9348\uE871\u78B9\u9277\u944D"+
-        "\u4FE4\u3440\u9064\uE878\u783D\u7854\u78B6\u784B"+
-        "\uE87D\uE87E\uE87F\u369A\u4F72\u6FDA\u6FD9\uFFFD"+
-        "\u701E\u5414\uE887\u57BB\u58F3\u578A\u9D16\u57D7"+
-        "\u7134\u34AF\uE88F\u71EB\uE891\uE892\uFFFD\uE894"+
-        "\uE895\u610C\u5ACE\u5A0B\u42BC\uE89A\u372C\u4B7B"+
-        "\uE89D\u93BB\u93B8\uE8A0\uE8A1\u8472\uE8A3\uE8A4"+
-        "\uE8A5\uE8A6\uE8A7\u5994\uE8A9\uE8AA\u7DA8\uE8AC"+
-        "\uE8AD\uE8AE\uE8AF\uE8B0\u92E5\u73E2\u3EE9\u74B4"+
-        "\uE8B5\uE8B6\u3EE1\uE8B8\u6AD8\u73F3\u73FB\u3ED6"+
-        "\uE8BD\uE8BE\uE8BF\uE8C0\uE8C1\uE8C2\uE8C3\u7448"+
-        "\uE8C5\u70A5\uE8C7\u9284\u73E6\u935F\uE8CB\u9331"+
-        "\uE8CD\uE8CE\u9386\uE8D0\uE8D1\u4935\uE8D3\u716B"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uE8D5\uE8D6\u56A4\uE8D8\uE8D9\uE8DA"+
-        "\u5502\u79C4\uE8DD\u7DFE\uE8DF\uE8E0\uE8E1\u452E"+
-        "\u9401\u370A\uE8E5\uE8E6\u59B0\uE8E8\uE8E9\uE8EA"+
-        "\u5AA1\u36E2\uE8ED\u36B0\u925F\u5A79\uE8F1\uE8F2"+
-        "\u9374\u3CCD\uE8F5\u4A96\u398A\u50F4\u3D69\u3D4C"+
-        "\uE8FB\u7175\u42FB\uE8FE\u6E0F\uE900\u44EB\u6D57"+
-        "\uE903\u7067\u6CAF\u3CD6\uE907\uE908\u6E02\u6F0C"+
-        "\u3D6F\uE90C\u7551\u36BC\u34C8\u4680\u3EDA\u4871"+
-        "\u59C4\u926E\u493E\u8F41\uE917\uE918\u5812\u57C8"+
-        "\u36D6\uE91C\u70FE\uE91E\uE91F\uE920\uE921\uE922"+
-        "\u68B9\u6967\uE925\uE926\uE927\uE928\uE929\uE92A"+
-        "\uE92B\uE92C\u6A1A\uE92E\uE92F\u843E\u44DF\u44CE";
+        protected Encoder(Charset cs,
+                          DoubleByte.Encoder big5Enc,
+                          char[][] c2bBmp,
+                          char[][] c2bSupp)
+        {
+            super(cs, null, null);
+            this.big5Enc = big5Enc;
+            this.c2bBmp = c2bBmp;
+            this.c2bSupp = c2bSupp;
+        }
 
-        private final static String innerIndex1=
-        "\uE933\uE934\uE935\uE936\u6F17\uE938\u833D\uE93A"+
-        "\u83ED\uE93C\uE93D\uE93E\u5989\u5A82\uE941\u5A61"+
-        "\u5A71\uE944\uE945\u372D\u59EF\uE948\u36C7\u718E"+
-        "\u9390\u669A\uE94D\u5A6E\u5A2B\uE950\u6A2B\uE952"+
-        "\uE953\uE954\uE955\u711D\uE957\uE958\u4FB0\uE95A"+
-        "\u5CC2\uE95C\uE95D\uE95E\u6A0C\uE960\uE961\u70A6"+
-        "\u7133\uE964\u3DA5\u6CDF\uE967\uE968\u7E65\u59EB"+
-        "\u5D2F\u3DF3\u5F5C\uE96E\uE96F\u7DA4\u8426\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\u5485\uE973\uE974\uE975\u577E\uE977\uE978"+
-        "\u3FE5\uE97A\uE97B\u7003\uE97D\u5D70\u738F\u7CD3"+
-        "\uE981\uE982\u4FC8\u7FE7\u72CD\u7310\uE987\u7338"+
-        "\u7339\uE98A\u7341\u7348\u3EA9\uE98E\u906C\u71F5"+
-        "\uE991\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD"+
-        "\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3"+
-        "\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8"+
-        "\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\uE9B0"+
-        "\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761"+
-        "\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB"+
-        "\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851"+
-        "\u7866\u8448\uE9CB\u7933\u6803\u7932\u4103\u4109"+
-        "\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2"+
-        "\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62"+
-        "\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C"+
-        "\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\uE9EF\u7DCF"+
-        "\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020"+
-        "\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0"+
-        "\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560"+
-        "\u8114\u4401\u3B39\u8156\u8159\u815A\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5"+
-        "\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA"+
-        "\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5"+
-        "\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510"+
-        "\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672"+
-        "\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE"+
-        "\u88FF\u8924\u8947\u8991\uEA43\u8A29\u8A38\u8A94"+
-        "\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3"+
-        "\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0"+
-        "\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1"+
-        "\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E"+
-        "\u9228\u9258\u926B\u92B1\u92AE\u92BF\u92E3\u92EB"+
-        "\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951"+
-        "\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454"+
-        "\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0"+
-        "\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8"+
-        "\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C"+
-        "\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C"+
-        "\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D"+
-        "\u9C20\u376F\uEAA9\u9D49\u9C3A\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u9EFE"+
-        "\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B"+
-        "\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8"+
-        "\u7AC8\u9F44\uEABF\uEAC0\uEAC1\u691A\u94C3\u59AC"+
-        "\uEAC5\u5840\u94C1\u37B9\uEAC9\uEACA\uEACB\uEACC"+
-        "\u5757\u7173\uEACF\uEAD0\uEAD1\u546A\uEAD3\uEAD4"+
-        "\u549E\uEAD6\uEAD7\uEAD8\uEAD9\uEADA\u60E7\uEADC"+
-        "\u567A\uEADE\uEADF\uEAE0\uEAE1\uEAE2\uEAE3\u6955"+
-        "\u9C2F\u87A5\uEAE7\uEAE8\uEAE9\uEAEA\uEAEB\uEAEC"+
-        "\u5C20\uEAEE\u5E0B\uEAF0\uEAF1\uEAF2\u671E\uEAF4"+
-        "\uEAF5\uEAF6\u3647\uEAF8\uEAF9\uEAFA\uEAFB\u5364"+
-        "\u84AD\uEAFE\uEAFF\uEB00\u8B81\uEB02\uEB03\uEB04"+
-        "\uEB05\u4E78\u70BB\uEB08\uEB09\uEB0A\uEB0B\uEB0C"+
-        "\uEB0D\uEB0E\uEB0F\u62C3\uEB11\uEB12\u7198\u6855"+
-        "\uEB15\u69E9\u36C8\uEB18\uEB19\uEB1A\uEB1B\uEB1C"+
-        "\uEB1D\u82FD\uEB1F\uEB20\uEB21\u89A5\uEB23\u8FA0"+
-        "\uEB25\u97B8\uEB27\u9847\u9ABD\uEB2A\uFFFD\uEB2C"+
-        "\uEB2D\uEB2E\uEB2F\uEB30\uEB31\uEB32\uEB33\uEB34"+
-        "\uEB35\uEB36\uEB37\uEB38\uEB39\u5FB1\u6648\u66BF"+
-        "\uEB3D\uEB3E\uEB3F\uFFFD\uEB41\uFFFD\uEB43\uEB44"+
-        "\uFFFD\uEB46\u58B5\u670E\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6918\uEB4A"+
-        "\uEB4B\uEB4C\uEB4D\uEB4E\uEB4F\uEB50\u48D0\u4AB8"+
-        "\uEB53\uEB54\uEB55\uEB56\uEB57\uEB58\uEB59\uEB5A"+
-        "\uEB5B\u51D2\uEB5D\u599F\uEB5F\u3BBE\uEB61\uEB62"+
-        "\uEB63\u5788\uEB65\u399B\uEB67\uEB68\uEB69\u3762"+
-        "\uEB6B\u8B5E\uEB6D\uFFFD\uEB6F\uEB70\uEB71\u7209"+
-        "\uEB73\uEB74\u5965\uEB76\uEB77\uEB78\u8EDA\uEB7A"+
-        "\u528F\u573F\u7171\uEB7E\uEB7F\uEB80\uEB81\u55BC"+
-        "\uEB83\uEB84\uEB85\uFFFD\u3473\uEB88\uEB89\uEB8A"+
-        "\u4718\uEB8C\uEB8D\uEB8E\uEB8F\uEB90\u5066\u34FB"+
-        "\uEB93\uFFFD\uEB95\u477C\uEB97\uEB98\uEB99\uEB9A"+
-        "\uEB9B\u57A1\u7151\uFFFD\uEB9F\uEBA0\u9056\uEBA2"+
-        "\uEBA3\u8B62\uEBA5\uEBA6\u5D5B\uEBA8\uFFFD\uEBAA"+
-        "\uEBAB\u8AEA\uEBAD\uEBAE\uEBAF\uEBB0\u4BC0\uEBB2"+
-        "\uEBB3\uEBB4\u9465\uEBB6\u6195\u5A27\uEBB9\uFFFD"+
-        "\u56B9\uEBBC\uEBBD\u4E6A\uEBBF\u9656\u6D8F\uEBC2"+
-        "\u3618\u8977\uEBC5\uEBC6\uEBC7\uEBC8\uFFFD\uEBCA"+
-        "\u7B42\uEBCC\uEBCD\uEBCE\uFFFD\uEBD0\u7A45\uFFFD"+
-        "\uEBD3\u9A26\uEBD5\u365F\uEBD7\uEBD8\u7983\uEBDA"+
-        "\uEBDB\u5D2C\uEBDD\uFFFD\uEBDF\u46D0\uEBE1\u753B"+
-        "\u8865\uEBE4\u58B6\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u371C\uEBE7\uEBE8"+
-        "\uEBE9\u3C54\uEBEB\uEBEC\u9281\uEBEE\uEBEF\u9330"+
-        "\uEBF1\uEBF2\u6C39\u949F\uEBF5\uEBF6\u8827\u88F5"+
-        "\uEBF9\uEBFA\uEBFB\u6EB8\uEBFD\uEBFE\u39A4\u36B9"+
-        "\uFFFD\uFFFD\u453F\u66B6\uEC05\uEC06\u8943\uEC08"+
-        "\uEC09\u56D6\u40DF\uEC0C\u39A1\uEC0E\uEC0F\uEC10"+
-        "\u71AD\u8366\uEC13\uEC14\uFFFD\u4CB7\uEC17\uEC18"+
-        "\uEC19\uEC1A\uEC1B\uEC1C\uEC1D\u7B43\u797E\uEC20"+
-        "\u6FB5\uEC22\u6A03\uEC24\u53A2\uEC26\u93BF\u6836"+
-        "\u975D\uEC2A\uEC2B\uEC2C\uEC2D\uEC2E\uEC2F\u5D85"+
-        "\uEC31\uEC32\u5715\u9823\uEC35\u5DAB\uEC37\u65BE"+
-        "\u69D5\u53D2\uEC3B\uEC3C\u3C11\u6736\uEC3F\uEC40"+
-        "\uEC41\uEC42\uEC43\uEC44\uEC45\uEC46\uEC47\uEC48"+
-        "\uEC49\u35CA\uEC4B\uEC4C\u48FA\u63E6\uEC4F\u7808"+
-        "\u9255\uEC52\u43F2\uEC54\u43DF\uEC56\uEC57\uEC58"+
-        "\u59F8\uEC5A\uFFFD\uEC5C\uEC5D\uFFFD\uEC5F\uEC60"+
-        "\u3DF7\uEC62\uEC63\u8FD0\u728F\u568B\uEC67\uEC68"+
-        "\uEC69\uEC6A\uEC6B\uEC6C\uEC6D\uEC6E\uEC6F\uEC70"+
-        "\uEC71\uEC72\uEC73\u7E9F\uEC75\uEC76\u4CA4\u9547"+
-        "\uEC79\u71A2\uEC7B\u4D91\u9012\uEC7E\u4D9C\uEC80"+
-        "\u8FBE\u55C1\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\u8FBA\uEC84\u8FB9\uEC86"+
-        "\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\uEC8D\uEC8E"+
-        "\u373A\u8E80\uEC91\uEC92\uEC93\uEC94\uEC95\uEC96"+
-        "\u3DEB\uEC98\uEC99\uEC9A\uEC9B\u4E9A\uEC9D\uEC9E"+
-        "\u56BF\uECA0\u8E0E\u5B6D\uECA3\uECA4\u63DE\uFFFD"+
-        "\uECA7\uECA8\u6530\u562D\uECAB\u541A\uECAD\u3DC6"+
-        "\uECAF\u4C7D\u5622\u561E\u7F49\uECB4\u5975\uECB6"+
-        "\u8770\u4E1C\uECB9\uECBA\uECBB\u8117\u9D5E\u8D18"+
-        "\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7"+
-        "\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416"+
-        "\uECCF\u35CE\u5605\u55F1\u66F1\uECD4\u362D\u7534"+
-        "\u55F0\u55BA\u5497\u5572\uECDB\uECDC\u5ED0\uECDE"+
-        "\uECDF\uECE0\uECE1\u9EAB\u7D5A\u55DE\uECE5\u629D"+
-        "\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE"+
-        "\u5569\uECF0\u9C72\uECF2\u519A\u34DF\uECF5\u51A7"+
-        "\u544D\u551E\u5513\u7666\u8E2D\uECFC\u75B1\u80B6"+
-        "\u8804\u8786\u88C7\u81B6\u841C\uED04\u44EC\u7304"+
-        "\uED07\u5B90\u830B\uED0A\u567B\uED0C\uED0D\uED0E"+
-        "\uED0F\uED10\uED11\u9170\uED13\u9208\uED15\uED16"+
-        "\uED17\uED18\u7266\uED1A\u474E\uED1C\uED1D\uED1E"+
-        "\u40FA\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\u9C5D\u651F\uED22\u48F3\uED24"+
-        "\uED25\uED26\uED27\uFFFD\uED29\uED2A\uFFFD\uED2C"+
-        "\uED2D\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D"+
-        "\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\uED3B\u589A"+
-        "\uED3D\u822D\u544B\u57AA\uED41\uED42\uFFFD\u3A52"+
-        "\uED45\u7374\uED47\u4D09\u9BED\uED4A\uED4B\u4C5B"+
-        "\uED4D\uED4E\uED4F\u845C\uED51\uED52\uED53\uED54"+
-        "\u632E\u7D25\uED57\uED58\u3A2A\u9008\u52CC\u3E74"+
-        "\u367A\u45E9\uED5F\u7640\u5AF0\uED62\u787A\u47B6"+
-        "\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\uED6B\u9E85"+
-        "\u4CE1\uFFFD\u37FB\u6119\uED71\uED72\uFFFD\u565D"+
-        "\uED75\u57A7\uED77\uED78\u5234\uED7A\u35AD\uFFFD"+
-        "\u9D7C\u7C56\u9B39\u57DE\uED81\u5C53\u64D3\uED84"+
-        "\uED85\uED86\u86AD\uED88\uED89\uED8A\uED8B\uFFFD"+
-        "\u51FE\uED8E\u5D8E\u9703\uED91\u9E81\u904C\u7B1F"+
-        "\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A"+
-        "\u7C7E\uFFFD\u7C42\u7C86\u9C15\u7BFC\u9B09\uFFFD"+
-        "\u9C1B\uEDA6\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2"+
-        "\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8"+
-        "\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641"+
-        "\u6980\u50A6\u7546\uEDC6\u99DA\u5273\uFFFD\u9159"+
-        "\u9681\u915C\uFFFD\u9151\uEDCF\u637F\uEDD1\u6ACA"+
-        "\u5611\u918E\u757A\u6285\uEDD7\u734F\u7C70\uEDDA"+
-        "\uEDDB\uFFFD\uEDDD\u76D6\u9B9D\u4E2A\uEDE1\u83BE"+
-        "\u8842\uFFFD\u5C4A\u69C0\uFFFD\u577A\u521F\u5DF5"+
-        "\u4ECE\u6C31\uEDED\u4F39\u549C\u54DA\u529A\u8D82"+
-        "\u35FE\uFFFD\u35F3\uFFFD\u6B52\u917C\u9FA5\u9B97"+
-        "\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14\uFFFD"+
-        "\u6BFA\u8818\u7F78\uFFFD\u5620\uEE08\u8E77\u9F53"+
-        "\uFFFD\u8DD4\u8E4F\u9E1C\u8E01\u6282\uEE11\u8E28"+
-        "\u8E75\u7AD3\uEE15\u7A3E\u78D8\u6CEA\u8A67\u7607"+
-        "\uEE1B\u9F26\u6CCE\u87D6\u75C3\uEE20\u7853\uEE22"+
-        "\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\uEE2A"+
-        "\u862F\u5FBA\u88A0\u44B7\uFFFD\uEE30\uEE31\uFFFD"+
-        "\u8A7E\uEE34\uFFFD\u60FD\u7667\u9AD7\u9D44\u936E"+
-        "\u9B8F\u87F5\uFFFD\uFFFD\u8CF7\u732C\u9721\u9BB0"+
-        "\u35D6\u72B2\u4C07\u7C51\u994A\uEE48\u6159\u4C04"+
-        "\u9E96\u617D\uFFFD\u575F\u616F\u62A6\u6239\uFFFD"+
-        "\u3A5C\u61E2\u53AA\uEE56\u6364\u6802\u35D2\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\u5D57\uEE5B\u8FDA\uEE5D\uFFFD\u50D9\uEE60"+
-        "\u7906\u5332\u9638\uEE64\u4065\uFFFD\u77FE\uFFFD"+
-        "\u7CC2\uEE6A\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505"+
-        "\u74F2\u8994\u821A\u670C\u8062\uEE76\u805B\u74F0"+
-        "\u8103\u7724\u8989\uEE7C\u7553\uEE7E\u87A9\u87CE"+
-        "\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA"+
-        "\u3635\u69B2\u8DA6\uFFFD\u89A9\uFFFD\u6DB9\u87C1"+
-        "\uEE91\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\uFFFD"+
-        "\u6077\uFFFD\u7F71\uEE9C\uFFFD\u60E9\u4B7E\u5220"+
-        "\uEEA1\uEEA2\uEEA3\uEEA4\uEEA5\uEEA6\uEEA7\uEEA8"+
-        "\uEEA9\uEEAA\u5CC1\uEEAC\uEEAD\uEEAE\uEEAF\uEEB0"+
-        "\uEEB1\u4562\u5B1F\uEEB4\u9F50\u9EA6\uEEB7\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\u2460\u2461\u2462\u2463\u2464\u2465\u2466\u2467"+
-        "\u2468\u2469\u2474\u2475\u2476\u2477\u2478\u2479"+
-        "\u247A\u247B\u247C\u247D\u2170\u2171\u2172\u2173"+
-        "\u2174\u2175\u2176\u2177\u2178\u2179\u4E36\u4E3F"+
-        "\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369"+
-        "\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\uFFFD\u5F50"+
-        "\u5F61\u6534\uFFFD\u7592\uFFFD\u8FB5\uFFFD\u00A8"+
-        "\u02C6\u30FD\u30FE\u309D\u309E\uFFFD\uFFFD\u3005"+
-        "\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041\u3042"+
-        "\u3043\u3044\u3045\u3046\u3047\u3048\u3049\u304A"+
-        "\u304B\u304C\u304D\u304E\u304F\u3050\u3051\u3052"+
-        "\u3053\u3054\u3055\u3056\u3057\u3058\u3059\u305A"+
-        "\u305B\u305C\u305D\u305E\u305F\u3060\u3061\u3062"+
-        "\u3063\u3064\u3065\u3066\u3067\u3068\u3069\u306A"+
-        "\u306B\u306C\u306D\u306E\u306F\u3070\u3071\u3072"+
-        "\u3073\u3074\u3075\u3076\u3077\u3078\u3079\u307A"+
-        "\u307B\u307C\u307D\u307E\u307F\u3080\u3081\u3082"+
-        "\u3083\u3084\u3085\u3086\u3087\u3088\u3089\u308A"+
-        "\u308B\u308C\u308D\u308E\u308F\u3090\u3091\u3092"+
-        "\u3093\u30A1\u30A2\u30A3\u30A4\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u30A5"+
-        "\u30A6\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC\u30AD"+
-        "\u30AE\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4\u30B5"+
-        "\u30B6\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC\u30BD"+
-        "\u30BE\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4\u30C5"+
-        "\u30C6\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC\u30CD"+
-        "\u30CE\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4\u30D5"+
-        "\u30D6\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC\u30DD"+
-        "\u30DE\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4\u30E5"+
-        "\u30E6\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC\u30ED"+
-        "\u30EE\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4\u30F5"+
-        "\u30F6\u0410\u0411\u0412\u0413\u0414\u0415\u0401"+
-        "\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D"+
-        "\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425"+
-        "\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D"+
-        "\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435"+
-        "\u0451\u0436\u0437\u0438\u0439\u043A\u043B\u043C"+
-        "\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444"+
-        "\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C"+
-        "\u044D\u044E\u044F\u21E7\u21B8\u21B9\uF7E5\uF7E6"+
-        "\u4E5A\uF7E8\u5202\uF7EA\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uF7EB\u5188"+
-        "\uF7ED\uF7EE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116"+
-        "\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88"+
-        "\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7"+
-        "\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA"+
-        "\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3\uFFFD"+
-        "\uFFFD\uFFFD\u0283\u0250\u025B\u0254\u0275\u0153"+
-        "\u00F8\u014B\u028A\u026A\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\u7881\u92B9\u88CF\u58BB\u6052\u7CA7"+
-        "\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A"+
-        "\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561"+
-        "\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B"+
-        "\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E"+
-        "\u2570\u256F\uFFED\uE000\u92DB\uE002\uE003\u854C"+
-        "\u42B5\u73EF\u51B5\u3649\uE009\uE00A\u9344\uE00C"+
-        "\u82EE\uE00E\u783C\u6744\u62DF\uE012\uE013\uE014"+
-        "\uE015\uE016\u4FAB\uE018\u5008\uE01A\uE01B\uE01C"+
-        "\uE01D\uE01E\uFFFD\uE020\u5FA4\uE022\uE023\u6EDB"+
-        "\uE025\uFFFD\u5101\u347A\u510E\u986C\u3743\u8416"+
-        "\uE02D\uE02E\u5160\uE030\u516A\uE032\uE033\uE034"+
-        "\uE035\uE036\uE037\uE038\u5B82\u877D\uE03B\uE03C"+
-        "\u51B2\u51B8\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\u9D34\u51C9\u51CF\u51D1"+
-        "\u3CDC\u51D3\uE045\u51B3\u51E2\u5342\u51ED\u83CD"+
-        "\u693E\uE04C\u5F7B\u520B\u5226\u523C\u52B5\u5257"+
-        "\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\uE05A"+
-        "\uFFFD\uE05C\u5549\u6ED9\uE05F\uE060\uE061\u5333"+
-        "\uFFFD\uE064\u6CCB\uE066\u681B\u73D5\u604A\u3EAA"+
-        "\u38CC\uE06C\u71DD\u44A2\u536D\u5374\uE071\u537E"+
-        "\uFFFD\uE074\uE075\u77E6\u5393\uE078\u53A0\u53AB"+
-        "\u53AE\u73A7\uE07D\u3F59\u739C\u53C1\u53C5\u6C49"+
-        "\u4E49\u57FE\u53D9\u3AAB\uE087\u53E0\uE089\uE08A"+
-        "\u53F6\uE08C\u5413\u7079\u552B\u6657\u6D5B\u546D"+
-        "\uE093\uE094\u555D\u548F\u54A4\u47A6\uE099\uE09A"+
-        "\u3DB4\uE09C\uE09D\uE09E\u5547\u4CED\u542F\u7417"+
-        "\u5586\u55A9\uFFFD\uE0A6\uE0A7\u4552\uE0A9\u66B3"+
-        "\uE0AB\u5637\u66CD\uE0AE\u66A4\u66AD\u564D\u564F"+
-        "\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\uE0BA"+
-        "\u3623\uE0BC\u5746\uE0BE\u6C6E\u708B\u5742\u36B1"+
-        "\uE0C3\u57E6\uE0C5\u5803\uE0C7\uE0C8\u5826\uE0CA"+
-        "\u585C\u58AA\u3561\u58E0\u58DC\uE0D0\u58FB\u5BFF"+
-        "\u5743\uE0D4\uE0D5\u93D3\u35A1\u591F\u68A6\u36C3"+
-        "\u6E59\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uE0DC\u5A24\u5553\uE0DF\u8505"+
-        "\u59C9\uE0E2\uE0E3\uE0E4\uE0E5\u59D9\uE0E7\uE0E8"+
-        "\uE0E9\u6D71\uE0EB\uE0EC\u59F9\uE0EE\u5AAB\u5A63"+
-        "\u36E6\uE0F2\uFFFD\u3708\u5A96\u7465\u5AD3\uE0F8"+
-        "\uE0F9\u3D85\uE0FB\u3732\uE0FD\u5E83\u52D0\u5B76"+
-        "\u6588\u5B7C\uE103\u4004\u485D\uE106\u5BD5\u6160"+
-        "\uE109\uE10A\uE10B\u5BF3\u5B9D\u4D10\u5C05\uE110"+
-        "\u5C13\u73CE\u5C14\uE114\uE115\u5C49\u48DD\u5C85"+
-        "\u5CE9\u5CEF\u5D8B\uE11C\uE11D\u5D10\u5D18\u5D46"+
-        "\uE121\u5CBA\u5DD7\u82FC\u382D\uE126\uE127\uE128"+
-        "\u8287\u3836\u3BC2\u5E2E\u6A8A\uFFFD\u5E7A\uE130"+
-        "\uE131\u53A6\u4EB7\uFFFD\u53A8\uE136\u5E09\u5EF4"+
-        "\uE139\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D"+
-        "\uE141\uE142\u3ADE\u48AE\uE145\u5F3A\uE147\uE148"+
-        "\uFFFD\uE14A\u5F63\u97BD\uE14D\u5F72\u9340\uE150"+
-        "\u5FA7\u5DB6\u3D5F\uE154\uE155\uE156\uE157\u91D6"+
-        "\uE159\uE15A\u6031\u6685\uE15D\u3963\u3DC7\u3639"+
-        "\u5790\uE162\u7971\u3E40\u609E\uFFFD\u60B3\uE168"+
-        "\uE169\uE16A\u74A4\u50E1\u5AA0\u6164\u8424\u6142"+
-        "\uE171\uE172\u6181\u51F4\uE175\u6187\u5BAA\uE178"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uE179\u61D3\uE17B\uE17C\u61D0\u3932"+
-        "\uE17F\uE180\u6023\u615C\u651E\u638B\uE185\u62C5"+
-        "\uE187\u62D5\uE189\u636C\uE18B\u3A17\u6438\u63F8"+
-        "\uE18F\uE190\uFFFD\u6F8A\uE193\u9814\uE195\uE196"+
-        "\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16"+
-        "\uE19F\uE1A0\u6585\u656D\u655F\uE1A4\u65B5\uE1A6"+
-        "\u4B37\u65D1\u40D8\uE1AA\u65E0\u65E3\u5FDF\uE1AE"+
-        "\u6618\uE1B0\uE1B1\u6644\uE1B3\uE1B4\u664B\uE1B6"+
-        "\u6667\uE1B8\u6673\uFFFD\uE1BB\uE1BC\uE1BD\uE1BE"+
-        "\uE1BF\u77C5\uE1C1\u99A4\u6702\uE1C4\uE1C5\u3B2B"+
-        "\u69FA\uE1C8\uFFFD\u6767\u6762\uE1CC\uE1CD\u67D7"+
-        "\u44E9\u6822\u6E50\u923C\u6801\uE1D4\uE1D5\u685D";
+        public int encodeBig5(char ch) {
+            return big5Enc.encodeChar(ch);
+        }
 
-        private final static String innerIndex2=
-        "\uE1D7\u69E1\u6A0B\uE1DA\u6973\u68C3\uE1DD\u6901"+
-        "\u6900\u3D32\u3A01\uE1E2\u3B80\u67AC\u6961\uE1E6"+
-        "\u42FC\u6936\u6998\u3BA1\uE1EB\u8363\u5090\u69F9"+
-        "\uE1EF\uE1F0\u6A45\uE1F2\u6A9D\u3BF3\u67B1\u6AC8"+
-        "\uE1F7\u3C0D\u6B1D\uE1FA\u60DE\u6B35\u6B74\uE1FE"+
-        "\u6EB5\uE200\uE201\uE202\u3740\u5421\uE205\u6BE1"+
-        "\uE207\u6BDC\u6C37\uE20A\uE20B\uE20C\u6C5A\u8226"+
-        "\u6C79\uE210\u44C5\uE212\uE213\uE214\uE215\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uE216\u36E5\u3CEB\uE219\u9B83\uE21B\uE21C"+
-        "\u7F8F\u6837\uE21F\uE220\uE221\u6D96\u6D5C\u6E7C"+
-        "\u6F04\uE226\uE227\uE228\u8533\uE22A\u51C7\uFFFD"+
-        "\uFFFD\u842E\uE22F\uFFFD\uE231\u7453\uE233\u79CC"+
-        "\u6E4F\u5A91\uE237\u6FF8\u370D\u6F9D\uE23B\u6EFA"+
-        "\uE23D\uE23E\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74"+
-        "\uE245\u3D3B\u6F9F\uE248\u6FD3\uE24A\uE24B\uE24C"+
-        "\uE24D\uE24E\uE24F\u51DF\uE251\uE252\uE253\uE254"+
-        "\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF"+
-        "\u4104\u3DE8\u71B4\u7196\uE261\u712B\u7145\u5A88"+
-        "\u714A\uFFFD\u5C9C\uE268\u714F\u9362\uE26B\u712C"+
-        "\uE26D\uE26E\uE26F\u71BA\uE271\u70BD\u720E\u9442"+
-        "\u7215\u5911\u9443\u7224\u9341\uE27A\u722E\u7240"+
-        "\uE27D\u68BD\u7255\u7257\u3E55\uE282\u680D\u6F3D"+
-        "\u7282\uFFFD\u732B\uE288\uE289\u48ED\uE28B\u7328"+
-        "\u732E\u73CF\u73AA\uE290\uE291\u73C9\u7449\uE294"+
-        "\uE295\uE296\u6623\u36C5\uE299\uE29A\uE29B\u73F7"+
-        "\u7415\u6903\uE29F\u7439\uE2A1\u3ED7\uFFFD\uE2A4"+
-        "\u7460\uE2A6\u7447\u73E4\u7476\u83B9\u746C\u3730"+
-        "\u7474\u93F1\u6A2C\u7482\u4953\uE2B2\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-        "\uE2B3\uE2B4\uE2B5\u5B46\uE2B7\uE2B8\u74C8\uE2BA"+
-        "\u750E\uFFFD\u751E\uE2BE\uE2BF\u5BD7\uE2C1\u9385"+
-        "\u754D\u754A\u7567\u756E\uE2C7\u3F04\uE2C9\u758E"+
-        "\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F"+
-        "\u7676\uE2D4\u7690\u81EF\u37F8\uE2D8\uE2D9\u76A1"+
-        "\u76A5\u76B7\u76CC\uE2DE\u8462\uE2E0\uE2E1\uE2E2"+
-        "\u771E\u7726\u7740\u64AF\uE2E7\u7758\uE2E9\u77AF"+
-        "\uE2EB\uE2EC\uE2ED\u77F4\uFFFD\uE2F0\uE2F1\u68CA"+
-        "\u78AF\u78C7\u78D3\u96A5\u792E\uE2F8\u78D7\u7934"+
-        "\u78B1\uE2FC\u8FB8\u8884\uE2FF\uE300\uE301\u7986"+
-        "\u8900\u6902\u7980\uE306\u799D\uE308\u793C\u79A9"+
-        "\u6E2A\uE30C\u3EA8\u79C6\uE30F\u79D4";
+        public int encodeChar(char ch) {
+            int bb = c2bBmp[ch >> 8][ch & 0xff];
+            if (bb == UNMAPPABLE_ENCODING)
+                return encodeBig5(ch);
+            return bb;
+        }
 
-        private final static short index1[] = {
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 5, 6, 7,
-        8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
-        24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 29, 30, 31, 32, 33, 0
-        };
+        public int encodeSupp(int cp) {
+            if ((cp & 0xf0000) != 0x20000)
+                return UNMAPPABLE_ENCODING;
+            return c2bSupp[(cp >> 8) & 0xff][cp & 0xff];
+        }
 
-        static String index2[] = {
-        innerIndex0,
-        innerIndex1,
-        innerIndex2
-        };
-        public Decoder(Charset cs) {
-            super(cs,
-                  index1,
-                  index2,
-                  0x40,
-                  0xFE);
+        public boolean canEncode(char c) {
+            return encodeChar(c) != UNMAPPABLE_ENCODING;
         }
-    }
 
-    protected static class Encoder extends DoubleByteEncoder {
-        private final static String innerIndex0=
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC6D8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8859\u8857\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u885D\u885B\u8866\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8861\u885F\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u886A\u8868\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u886F\u886D\u88A7\u0000\u8873\u8871\u0000\u0000"+
-            "\u0000\u0000\u8877\u8875\u0000\u0000\u0000\u0000"+
-            "\uC8FB\u887B\u8879\u0000\u88A2\u0000\u0000\u0000"+
-            "\u8856\u8867\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u885A\u886C\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u885C\u886E\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8870\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uC8FC\u885E\u8874\u0000\u0000"+
-            "\u0000\u0000\u0000\uC8FA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8878\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8858\u8869\u0000"+
-            "\u8872\u8860\u8876\u0000\u887A\u0000\u887C\u0000"+
-            "\u887D\u0000\u887E\u0000\u88A1\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC8F6\u886B\u0000\u0000\uC8F8\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uC8F7\u0000\u0000\u0000\u0000"+
-            "\u0000\u88A8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uC8FE\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC8F9\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uC8F5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uC8FD\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC6D9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uC7F9\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC7F3\uC7F4\uC7F5\uC7F6\uC7F7\uC7F8\uC7FA\uC7FB"+
-            "\uC7FC\uC7FD\uC7FE\uC840\uC841\uC842\uC843\uC844"+
-            "\uC845\uC846\uC847\uC848\uC849\uC84A\uC84B\uC84C"+
-            "\uC84D\uC84E\uC84F\uC850\uC851\uC852\uC853\uC854"+
-            "\uC855\uC856\uC857\uC858\uC859\uC85A\uC85C\uC85D"+
-            "\uC85E\uC85F\uC860\uC861\uC862\uC863\uC864\uC865"+
-            "\uC866\uC867\uC868\uC869\uC86A\uC86B\uC86C\uC86D"+
-            "\uC86E\uC86F\uC870\uC871\uC872\uC873\uC874\uC875"+
-            "\u0000\uC85B\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8863\u88A4"+
-            "\u8865\u88A6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC8D2\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uC8D3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC6B5\uC6B6\uC6B7\uC6B8\uC6B9\uC6BA\uC6BB\uC6BC"+
-            "\uC6BD\uC6BE\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC877\uC878\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uC876"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC6A1\uC6A2\uC6A3\uC6A4\uC6A5\uC6A6\uC6A7\uC6A8"+
-            "\uC6A9\uC6AA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uC6AB\uC6AC\uC6AD\uC6AE"+
-            "\uC6AF\uC6B0\uC6B1\uC6B2\uC6B3\uC6B4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uF9F9\uF9F8\uF9E6\uF9EF\uF9DD\uF9E8\uF9F1\uF9DF"+
-            "\uF9EC\uF9F5\uF9E3\uF9EE\uF9F7\uF9E5\uF9E9\uF9F2"+
-            "\uF9E0\uF9EB\uF9F4\uF9E2\uF9E7\uF9F0\uF9DE\uF9ED"+
-            "\uF9F6\uF9E4\uF9EA\uF9F3\uF9E1\uF9FA\uF9FB\uF9FD"+
-            "\uF9FC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC6E6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC8D6\u0000\u0000\u0000\uC8D7\u0000\uC8D8\uC8D9"+
-            "\uC8DA\u0000\uC8DB\u0000\uC8DC\uC8DD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC8DE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uC8DF\uC8E0\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC8E1\u0000\uC8E2"+
-            "\u0000\u0000\uC8E3\u0000\uC8E4\u0000\uC8E5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC8E6\u0000"+
-            "\u0000\u0000\u0000\u0000\uC8E7\u0000\uC8E8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC8E9\u0000"+
-            "\u0000\u0000\uC8EA\u0000\uC8EB\uC8EC\u0000\uC8ED"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC8EE\uC8EF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC8F0\u0000"+
-            "\u0000\u0000\u0000\uC8F1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uC6CD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC6E0\uC6E1\uC6E2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uC6E7\uC6E8\uC6E9\uC6EA\uC6EB\uC6EC\uC6ED"+
-            "\uC6EE\uC6EF\uC6F0\uC6F1\uC6F2\uC6F3\uC6F4\uC6F5"+
-            "\uC6F6\uC6F7\uC6F8\uC6F9\uC6FA\uC6FB\uC6FC\uC6FD"+
-            "\uC6FE\uC740\uC741\uC742\uC743\uC744\uC745\uC746"+
-            "\uC747\uC748\uC749\uC74A\uC74B\uC74C\uC74D\uC74E"+
-            "\uC74F\uC750\uC751\uC752\uC753\uC754\uC755\uC756"+
-            "\uC757\uC758\uC759\uC75A\uC75B\uC75C\uC75D\uC75E"+
-            "\uC75F\uC760\uC761\uC762\uC763\uC764\uC765\uC766"+
-            "\uC767\uC768\uC769\uC76A\uC76B\uC76C\uC76D\uC76E"+
-            "\uC76F\uC770\uC771\uC772\uC773\uC774\uC775\uC776"+
-            "\uC777\uC778\uC779\uC77A\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uC8D4\uC8D5\uC6DC\uC6DD\u0000"+
-            "\u0000\uC77B\uC77C\uC77D\uC77E\uC7A1\uC7A2\uC7A3"+
-            "\uC7A4\uC7A5\uC7A6\uC7A7\uC7A8\uC7A9\uC7AA\uC7AB"+
-            "\uC7AC\uC7AD\uC7AE\uC7AF\uC7B0\uC7B1\uC7B2\uC7B3"+
-            "\uC7B4\uC7B5\uC7B6\uC7B7\uC7B8\uC7B9\uC7BA\uC7BB"+
-            "\uC7BC\uC7BD\uC7BE\uC7BF\uC7C0\uC7C1\uC7C2\uC7C3"+
-            "\uC7C4\uC7C5\uC7C6\uC7C7\uC7C8\uC7C9\uC7CA\uC7CB"+
-            "\uC7CC\uC7CD\uC7CE\uC7CF\uC7D0\uC7D1\uC7D2\uC7D3"+
-            "\uC7D4\uC7D5\uC7D6\uC7D7\uC7D8\uC7D9\uC7DA\uC7DB"+
-            "\uC7DC\uC7DD\uC7DE\uC7DF\uC7E0\uC7E1\uC7E2\uC7E3"+
-            "\uC7E4\uC7E5\uC7E6\uC7E7\uC7E8\uC7E9\uC7EA\uC7EB"+
-            "\uC7EC\uC7ED\uC7EE\uC7EF\uC7F0\uC7F1\uC7F2\u0000"+
-            "\u0000\u0000\u0000\u0000\uC6E3\uC6DA\uC6DB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uC8D1\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9277\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u96DF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u89D5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u93CD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9BDF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFA68\u0000\u0000\u89DA\u8F59\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u89DB\u0000\u0000\u8F5D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u89DC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96F7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8ADA\u0000\u0000\u0000"+
-            "\u0000\u8BDC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u97DB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9E53"+
-            "\u0000\u0000\u0000\u0000\u9DAA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9BEA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8A6E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8BC8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u89E8\u0000\u89EA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFB70\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u89ED\u0000\u0000"+
-            "\u94DD\u0000\u89EE\u0000\u0000\u0000\u0000\u9EB4"+
-            "\u8AD3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u92DB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u94DB"+
-            "\u89F9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFB7A\u0000\u0000\u0000\u89FB\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9EFC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89FC"+
-            "\u0000\u89BF\u0000\u0000\u0000\u89FE\u0000\u89E6"+
-            "\u0000\u0000\u9D46\u0000\u0000\u0000\u9DEE\u0000"+
-            "\u0000\u0000\uA07E\u0000\u0000\u0000\uA068\u0000"+
-            "\u0000\u0000\u0000\u98E9\u0000\u8B68\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DFD\u8BBE\u9FD9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8AEB\u0000\u0000\u9FD7\u0000";
+        protected CoderResult encodeArrayLoop(CharBuffer src, ByteBuffer dst) {
+            char[] sa = src.array();
+            int sp = src.arrayOffset() + src.position();
+            int sl = src.arrayOffset() + src.limit();
+
+            byte[] da = dst.array();
+            int dp = dst.arrayOffset() + dst.position();
+            int dl = dst.arrayOffset() + dst.limit();
 
-        private final static String innerIndex1=
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8B6A\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9C5C\u0000\u8BB1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFB5E\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9DF3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA0D0\u0000\u0000"+
-            "\u0000\uFC66\u0000\u0000\u0000\u0000\u92E9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9AEC"+
-            "\u8FAB\uFA48\u0000\u0000\u0000\u0000\u8E45\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9C6F"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9EDE\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u89EF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u96E9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9EBB\u0000\u0000"+
-            "\u0000\u0000\u94DE\u0000\u9EB8\u0000\u0000\u0000"+
-            "\u97BA\uFB65\u0000\u0000\u0000\u95D6\u0000\u0000"+
-            "\u0000\u9CBB\u0000\u0000\u97DA\u0000\u0000\u0000"+
-            "\u0000\u8F45\u0000\uFB7D\u9158\uFE64\u0000\u9856"+
-            "\u9B4D\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u935B\u95C7\u0000\u97E7\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9359\u0000\u0000"+
-            "\u0000\u91F5\u97B8\u0000\u0000\uFDA2\uFBB6\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u92FA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9357\u0000\u8BA6\u0000\u0000\u0000\u0000"+
-            "\uFBB9\u0000\u97B0\u0000\u0000\uFDC4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9CA1\u0000\u0000\u0000"+
-            "\u0000\u0000\u91F2\u91F9\u0000\u8FF1\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9745\u9853\u0000\u0000"+
-            "\uFE78\u0000\uFBC1\u9251\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9DAD\u0000\u0000\u0000\u0000\u0000"+
-            "\uFD6C\u0000\u0000\uFA6B\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9BC2\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9A7B"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8B60"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u934B\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9ABD\u0000\u0000\u0000\u0000\u91B7\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u95B4\u0000\u0000\u0000\u0000\u0000"+
-            "\uFEC5\u0000\u0000\u9EF0\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D64"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9269\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8D67\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBEA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFBEF\u0000"+
-            "\u8D68\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u93EB\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFC42\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9166\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFACD\u0000\u0000\u0000"+
-            "\u0000\u93DD\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8BCC\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8D6D\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8D6E\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96A8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFCA6\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D6F"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8D70\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFC64\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9060\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8D74\u97C3\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8AD0\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9274\u0000\u9BBE\u0000\u0000\u0000\u0000"+
-            "\u0000\u9CC8\u0000\u0000\u9CBA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8D78\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9EB9\u0000\u0000\u0000"+
-            "\u0000\u0000\u955A\u0000\u0000\u91B4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8A48\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8D7D\u0000\u0000\u8A7D\u0000\u0000\u8AC2\u0000"+
-            "\u0000\uFD4A\u0000\u8DA1\u0000\u0000\u8AD1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFCB4"+
-            "\u8B47\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u93A4\u9EDA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8A51\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8DA6\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9EC5\u0000\u0000\u0000\u0000\uFCC4"+
-            "\u0000\u0000\u0000\u0000\uA078\u0000\u94B5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFCC2\u8A6B"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DAB"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAE8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DAD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFC49\u0000"+
-            "\u93C1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u906F\u0000\u8DB0\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u947E\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90FA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9479\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8DB2\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFCEE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u997B\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8DB4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8DB7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u91B3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DBB\u8DBA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8DBC\u9044\u0000\u0000\u0000"+
-            "\uFD4C\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u93E4\u0000"+
-            "\u0000\u93E0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFD53\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DC3\u0000\u9BB8\u0000"+
-            "\u0000\u0000\uFBF0\u0000\u93E9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u93F6"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DC5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DCA\u0000\u0000\u0000"+
-            "\u0000\u0000\u8DCC\uFD5D\u93B5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFD61\u0000\u0000"+
-            "\u0000\u9CF8\u0000\u0000\u0000\u9252\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9CA5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8DD6\u0000\u97C0\u0000\u0000"+
-            "\u0000\uA0DE\u0000\u0000\u0000\u0000\u97D2\u0000"+
-            "\u0000\u0000\u0000\u0000\uFAA5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFDA3\u0000\u0000\u0000\u8DDB"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8EAF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u91B5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFD49\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFDD1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8DEB\u0000"+
-            "\u0000\u0000\u0000\u0000\u97C6\u0000\uFDCE\u0000"+
-            "\u0000\u90FC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFC59"+
-            "\u0000\u0000\u96D6\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u97C5\u8DEF\u0000\u0000\u0000\u0000\u97D7"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DF0\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u96A6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBBF\u0000\u0000"+
-            "\u0000\u0000\u8DF3\u0000\u0000\u0000\u0000\u9449"+
-            "\u0000\u8DF5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9872\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8E6B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFAFD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F50"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9DCC\uFC65"+
-            "\u0000\u0000\u0000\u0000\u996E\u94A1\u0000\u0000"+
-            "\u0000\u0000\u0000\u8F63\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA0DA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9253"+
-            "\uFDE9\u0000\u0000\u9DB5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9879\u0000\u0000\u0000\u9D5D"+
-            "\u0000\u0000\u0000\u0000\u8D63\u9669\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9F70\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFC6A\u0000\u0000\u8AC7\u0000\u0000\u0000\u0000"+
-            "\u89D7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFE4D\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9EDD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFEFB\u98BC\uFACC\u0000\u0000\u95B0\u0000\u0000"+
-            "\u0000\u9464\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u936F\u0000\u0000\u0000\u0000\u0000\u0000\u94B9"+
-            "\u0000\u0000\u95EC\u0000\u0000\u0000\u0000\u91EE"+
-            "\u0000\u0000\u98C3\u0000\u95F6\u0000\u0000\u0000"+
-            "\u8FFD\u98C5\u0000\u0000\u0000\u0000\u9766\uFE6E"+
-            "\u0000\u0000\u97DD\u0000\u0000\u0000\u92D2\u0000"+
-            "\u0000\u9761\u98CB\u0000\u0000\u0000\u0000\u95F0"+
-            "\u0000\u975D\u0000\u91E3\u0000\u0000\u0000\u0000"+
-            "\u98CC\u0000\u0000\u9469\u98CD\u0000\u0000\u0000"+
-            "\u0000\u0000\u98CE\u0000\u95FC\u0000\u0000\u94A3"+
-            "\u9662\u0000\u0000\u0000\uFEB6\u0000\u9463\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u98D0\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u98D1\u0000\u0000\u0000\u0000"+
-            "\u9475\uFAE0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9472\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u98D6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8AF0\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u98DB"+
-            "\u0000\u0000\u0000\u0000\u98DD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98A8\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8A6D\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8AFB\u8AAE\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFBC9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98E4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u98E6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98E8\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8A4D\u0000\u0000\u0000\u9257"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u95DF\u0000\u0000\uA0AC\u0000\u0000"+
-            "\u0000\u0000\u98EB\u0000\u0000\u0000\u0000\u98EC"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98F4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8AB8\u0000\u0000\u0000\u9EE7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u94BC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFCD1\u0000\u0000\u0000\u0000\u0000\u0000\u9CC6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9E7E\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u98FE\uFDE8\u0000\u0000\u0000"+
-            "\u0000\u9940\u0000\u0000\u0000\u0000\u94C9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u94D3\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9946"+
-            "\u0000\u0000\u0000\u0000\u90C0\u0000\u94D1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9573"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u93C2\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9948\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u994B\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E55\u0000\u0000\u0000\u0000\u994E"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8EFE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8E59"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u94EC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u94EF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8F74\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9955\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9544\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9956\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9959\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u995B\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFA45\u0000\u0000"+
-            "\u0000\u90B7\u0000\u0000\u9743\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u95CD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u97C9\uFD50\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8EB9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u95C6\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9967"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8AB9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DFC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8A76\u0000\u0000\u0000\u0000\u0000\u9D51"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9973\u0000\u0000"+
-            "\u0000\u0000\u9D4F\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u997A\u9564\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u99A1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u99A5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u99A7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8EED\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99AD"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u946E"+
-            "\u8F70\u0000\uFAD0\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99B3\u0000\u0000\u0000\u0000\u0000\u0000\uA053"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u965C\u0000\u0000\u0000\u0000\uFD7A\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u97FE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u92BD\u0000\u97FD"+
-            "\u0000\u0000\u0000\u0000\u8F64\u0000\u0000\u0000"+
-            "\u0000\uFCF7\u9562\u97CD\u9E64\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u924C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8EC9\u99BC\u0000\u0000\u0000"+
-            "\u0000\u9DA5\u0000\u8F54\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8F7C\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8EA2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F7A"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u97AE\u0000"+
-            "\u0000\u0000\u0000\u96C8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u99C3\u0000\u90D6\u0000\u9CBE"+
-            "\u0000\u0000\u0000\u8F76\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9470\uFB4B\u0000\u0000\uFDCA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8EC7\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0F9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8FA9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99C7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u90D7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9EDF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
-        private final static String innerIndex2=
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u99CE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FBA"+
-            "\u0000\u0000\u0000\u0000\u0000\u8FEB\u0000\u99CF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8FC2\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u92C9\u0000\u0000\u0000\u0000\u0000"+
-            "\u97DC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95B3"+
-            "\u9C79\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u95B2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8FDB\u0000\u0000\u0000\u0000"+
-            "\u9BE3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9E7A\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9BEE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99DE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFAFA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9EE5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8A52\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u99E1\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8A67\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8BB5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8AAC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99E9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBCA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u97DE\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u95D1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u99F5\uFC4A\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9BA9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBDC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFE56\u0000\u0000"+
-            "\u0000\u0000\u0000\u9EA4\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9D49\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u95DB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u89C5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u99F8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9664\u0000\u0000"+
-            "\u0000\u0000\u9055\u0000\u0000\u96D4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u977C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u964D\u0000\u97E1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A48\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9A49\u0000\uFE7D\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u90AA\u0000\u0000"+
-            "\u0000\u0000\u9A50\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9347\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8ED8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u90C9\u0000\u0000\u0000\u0000\u0000\u9A55"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u90BC"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A58\u0000\u8BB8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u90D5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9641\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9A5A\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A5C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u97C2\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8ABB\u0000\u0000\u0000"+
-            "\u9BAA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u90F5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9A60\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9145"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9A63\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8BB6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFCCF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u966B"+
-            "\u9A6E\u0000\u914F\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9746\u0000\u0000\uA0E6\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u92D7\u0000"+
-            "\u9675\u0000\u0000\u93D4\u0000\u0000\u91BB\u9679"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A70\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9678\u91CD\u0000"+
-            "\u9C4A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA06F\u0000\u0000\uA06A"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u915F\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9FA5\u0000\u0000\u89BA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9ECD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A79\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9DCE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9D73\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u96B9\u0000"+
-            "\u96BC\u0000\u0000\u0000\u0000\u0000\u0000\u9CD1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u89B7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9EEE\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFB43\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9EC9\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFBD3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u91AE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9D78\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9D7B\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9EB3\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9EB2\u0000\u9DD6\u0000\u0000\u0000"+
-            "\u0000\u994F\u0000\u0000\u89CE\u0000\u0000\u0000"+
-            "\u8BC0\u0000\u9FC4\u0000\u8BD4\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC6BF\u8BF9"+
-            "\u0000\u0000\u0000\u0000\u0000\u8946\u0000\uC6C0"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFAE5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uC87B\u8BC6\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9C57\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9AFB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u89D0\u89CF\u0000\u0000\u0000\uC6C1\u0000\u89D1"+
-            "\u0000\u89E2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u927E\u0000\u9DBA\u0000\u0000\u0000\u0000\u0000"+
-            "\uC6C2\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFBF8"+
-            "\u0000\u0000\u0000\u8BC7\u926B\u0000\u0000\u89D2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9FCF\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9DA9\u89D3\u0000\u0000\u99E2\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9267\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u92A4\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u894E\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u894F\u9278\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u91B6\u0000\u0000\u0000\u0000\u89D4"+
-            "\u0000\u9FD2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u92A7\u0000\u0000\u95A2\u0000\u0000"+
-            "\u0000\u0000\u0000\u926E\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u96EA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u926F\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u92A3\u0000\u0000\u0000\u0000\u0000"+
-            "\u8950\u0000\u0000\uFA57\u0000\u0000\u0000\u0000"+
-            "\u9866\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u89D6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98B2\u0000\u0000\u0000\u92AB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u96DE\u92AC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9F6E\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8EF2\u0000\u0000\u0000\u9F6C\u0000\u0000"+
-            "\u0000\u0000\u0000\u89D8\u0000\u0000\u0000\u0000"+
-            "\uFA59\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u92A8\u0000"+
-            "\u0000\u0000\u0000\u0000\u9163\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9F73\u0000"+
-            "\u92AD\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9BE9\u0000"+
-            "\u0000\u0000\u0000\u0000\u92A9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u92AA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u89D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFD56\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9FA8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u92A1\u0000\u0000"+
-            "\u90E3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0A6\u0000\u0000\u0000\u0000\u0000\u94AB"+
-            "\u0000\uFC72\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u97C4\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u92AE\u0000\u0000\u0000"+
-            "\u0000\uFA67\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u92A2\uFA69\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9268\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8951\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFA6F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFA71\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8952\u0000\u0000\u0000"+
-            "\u0000\u945A\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uC6C3\u0000\u0000\u0000\u89DD\u0000"+
-            "\uC8A2\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC6C4\u0000"+
-            "\u0000\u0000\u9E52\u0000\u8953\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9E55"+
-            "\u92BA\u0000\u0000\uC6C5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFA7D\uFAA8\u9A68\uFA47\u0000\u0000"+
-            "\uFA7E\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u92BB\u0000\u0000\u0000\uFDB6"+
-            "\u0000\uFAA2\u0000\u0000\u0000\u0000\u0000\uFAA3"+
-            "\u0000\uFAA4\u9BB4\uFAA6\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u89DF\u0000\u0000\u0000\uFDDB"+
-            "\u0000\u0000\uFAA9\u0000\u8954\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFAAB\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFC7A\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u89E0\u0000\u9F4F\u0000"+
-            "\u0000\u0000\uC87D\u0000\u0000\u89E1\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAB0\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FCD"+
-            "\uA0E7\u0000\u0000\u0000\u0000\u0000\uFAB1\u89A6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9EFA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFAB2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFAB4"+
-            "\u0000\u92C4\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9F6F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8BB0\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9FAC\u0000\u0000\u0000\u0000"+
-            "\u0000\u89E3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9BD3"+
-            "\u89E4\u0000\u0000\u0000\uFAB5\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FD5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8955\u0000\u0000\u92C5\u0000\u0000\u0000"+
-            "\u8956\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFAB3\u0000\u0000"+
-            "\u0000\uFAB6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFAB7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9EDC\u0000\u0000\u0000"+
-            "\uFBC4\u9F71\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFABA\u92C7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uC6C6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9A4C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89E5"+
-            "\u0000\u0000\u0000\u0000\u9F7D\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0A9\uFAC4\u0000\u0000\u0000\u0000"+
-            "\uC6C7\u0000\u0000\u8957\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFAAA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8958\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8BE3\u0000\u8B61"+
-            "\u0000\u0000\u0000\u0000\u9AF1\u0000\u0000\u9EB7"+
-            "\u0000\uC6C8\u0000\u0000\u0000\uFAD1\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFAD2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9EBA\uFAD4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAD9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFADB\u0000\u9CE0\u0000\u0000\u0000\uFBF7\u0000"+
-            "\uFBFA\u89E7\uA07A\uFADC\u0000\u0000\uFADD\u0000"+
-            "\u89E9\u0000\u0000\u0000\u0000\u0000\uC6C9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFAE2\u89EB\u0000\u0000\uFAE3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u90C8\u0000\u0000\u0000"+
-            "\u92DA\u8959\u9CF5\u0000\u0000\u0000\u0000\u0000"+
-            "\u895A\uFAE7\u9FA2\u0000\u0000\u0000\u0000\u0000"+
-            "\uFAEA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFAED\u8FAD"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFB59\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAEF\u96EF\u0000\u9DEC\u0000"+
-            "\u0000\u0000\u9DCA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFD6D\u0000\u89EC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB44"+
-            "\u0000\u0000\u9DE2\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9EC0\u0000\u9E56\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9F79\u9AC7\u0000\u0000\uFAF4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98A1\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFAF8"+
-            "\u0000\u0000\u0000\u89F0\u9E47\u0000\u0000\u9DF7"+
-            "\u0000\u0000\u0000\u0000\u9FD3\u0000\u9ACA\u0000"+
-            "\u0000\u0000\u0000\u89F1\uFAF9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E5A\u0000\u89F2\u0000\u0000\u0000"+
-            "\u0000\u89F3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u925D\u8B51\u92E0\u0000\u0000"+
-            "\u89F4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FD4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8A79\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89F5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u97A7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u93BA\u0000\u0000"+
-            "\u0000\u0000\u0000\u9E58\u0000\u0000\u0000\u0000"+
-            "\u89F6\u0000\u0000\u0000\u0000\u0000\u9E57\u0000"+
-            "\u0000\u0000\u0000\u89F7\u0000\u8A41\u0000\u0000"+
-            "\u89F8\u0000\u0000\uFAF1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89FA"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB42"+
-            "\u0000\uFABF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFBA3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFAF7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9E4E\u0000\u94DC\u0000\u0000\u0000\u0000"+
-            "\u0000\u95DA\u9DF8\u9F6A\u0000\u0000\u0000\u0000"+
-            "\u0000\u8AB7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFB46\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8A46\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFB47\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9148\u0000\u0000\u0000\u92DE\u0000\u0000\u0000"+
-            "\u0000\u8B53\u9DF6\u0000\u9BDA\u0000\u0000\u0000"+
-            "\u0000\u9D7E\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89FD"+
-            "\u99E4\u0000\u0000\u0000\u0000\u0000\u9E43\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9DE9\u0000\u8F52\u0000\u0000\u0000"+
-            "\u9DF5\u9DF0\u0000\u0000\u0000\u99E7\u0000\u0000"+
-            "\u0000\u0000\u0000\u8BBD\u0000\u0000\u0000\u0000";
+            try {
+                while (sp < sl) {
+                    char c = sa[sp];
+                    int inSize = 1;
+                    int bb = encodeChar(c);
+                    if (bb == UNMAPPABLE_ENCODING) {
+                        if (Character.isSurrogate(c)) {
+                            int cp;
+                            if ((cp = sgp().parse(c, sa, sp, sl)) < 0)
+                                return sgp.error();
+                            bb = encodeSupp(cp);
+                            if (bb == UNMAPPABLE_ENCODING)
+                                return CoderResult.unmappableForLength(2);
+                            inSize = 2;
+                        } else {
+                            return CoderResult.unmappableForLength(1);
+                        }
+                    }
+                    if (bb > MAX_SINGLEBYTE) {    // DoubleByte
+                        if (dl - dp < 2)
+                            return CoderResult.OVERFLOW;
+                        da[dp++] = (byte)(bb >> 8);
+                        da[dp++] = (byte)bb;
+                    } else {                      // SingleByte
+                        if (dl - dp < 1)
+                            return CoderResult.OVERFLOW;
+                        da[dp++] = (byte)bb;
+                    }
+                    sp += inSize;
+                }
+                return CoderResult.UNDERFLOW;
+            } finally {
+                src.position(sp - src.arrayOffset());
+                dst.position(dp - dst.arrayOffset());
+            }
+        }
 
-        private final static String innerIndex3=
-            "\u0000\u0000\u0000\u0000\u0000\u9DEF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FB7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9DD0\u0000"+
-            "\u9FEB\u8DA9\u9DCF\u98E1\u0000\u9DE5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9DC8\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB4F"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9DEB\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFB54\u0000\uFB55"+
-            "\u9AA2\u0000\u8AD6\u0000\u9A5F\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9EF5\u0000\u0000"+
-            "\u0000\u8FB7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9AD2\u9E6A\u9EE8\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8BBF\u91C2\u9D62\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9260\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u925E\u91C1"+
-            "\u0000\u8AC5\u0000\u0000\u97A3\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8B6C"+
-            "\u0000\u8D7E\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9C54\u0000\u0000\u0000\u0000\u0000\u9DBD"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9CC5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u895B\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFB5C\u0000\uFB5B"+
-            "\u0000\uFB57\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98C7\u0000\u0000"+
-            "\uFB5A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9CEE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u92E2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u94A7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9BD4"+
-            "\u0000\u0000\uFB64\uFB76\u0000\u0000\uFB60\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99E5\u0000\u0000\u9AC2"+
-            "\u0000\u0000\u0000\u91FB\u0000\u0000\u0000\uA073"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F72"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FCC\u0000\u0000\u0000\u98A5\u92E8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9BBC\u0000\u96F3\u0000\u0000\u92E7\u0000\u0000"+
-            "\uFC67\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8B7D\u0000\u0000\u0000"+
-            "\u0000\u9BF4\u0000\u0000\u0000\u0000\u0000\u9EF7"+
-            "\u0000\u0000\u9EC1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u996F\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u96F1\u0000\u0000\u8E41\u0000"+
-            "\u0000\u0000\u0000\u0000\u954A\u0000\u0000\u0000"+
-            "\u97E6\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96F5"+
-            "\u0000\u0000\u0000\u0000\u0000\u92E6\u9F42\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFB67\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99A9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFAE6\u0000"+
-            "\u0000\u0000\u0000\uFB69\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u97E5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u967D\u0000\u0000\u0000\uFB6C\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u99A2\u0000\u0000\u0000\u0000\u0000"+
-            "\u9ABB\u0000\u0000\u0000\u9A65\u0000\u0000\u944E"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFB6E\u0000\u0000\u99DF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u98E3\u0000\u0000\u9254\u0000\u0000\u0000"+
-            "\u0000\u0000\u967B\u8AAF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8BAF\u9EBD\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9EE6"+
-            "\u0000\u0000\uFB6F\u0000\u0000\u0000\u0000\u0000"+
-            "\u8EE1\u0000\u0000\u0000\u0000\u9B7D\u9C7E\u0000"+
-            "\u0000\u0000\u0000\uF9D9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u92EA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFB72\u0000\u0000\u0000"+
-            "\uFB71\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u895C\u0000\u98F0\u96F2\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFB74\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8BC1\u0000\u895D\u89DE\u0000\u895E"+
-            "\u0000\u0000\uC6CA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFE42\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB7B"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u895F\u0000\u8960\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9BCD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9DD3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u984C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9752\u0000\u0000\u0000"+
-            "\u0000\u0000\u95C3\u0000\u0000\u0000\u0000\u9BB6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9AB9\u0000\u0000\u0000"+
-            "\u97B3\u0000\u0000\u0000\u0000\u0000\u0000\u9F74"+
-            "\u92F1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u97DF\u0000\u0000\u0000"+
-            "\u0000\uFBA6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFBAB\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9877\u0000\u0000\u0000\u9854"+
-            "\u95C5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9D55\uFBB2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u957E\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9742\u0000\u94E6\u0000\u0000"+
-            "\u0000\u0000\u92F5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u92FD\u0000\u0000\uFBA2\u0000\u0000\u9C51"+
-            "\u0000\u0000\u94E9\u985C\u92F0\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u944C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u916B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8B78\u0000\u0000\u0000"+
-            "\u0000\u94E2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u984F\u0000\uFBB5\u0000\u0000\u0000\u0000"+
-            "\u9271\u0000\u0000\u9365\u0000\u0000\u985B\u0000"+
-            "\u0000\u9850\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u97BC\u0000\u0000\u0000\u0000\u92F3\u0000"+
-            "\u0000\u9340\u984D\u0000\u0000\u0000\u9572\u0000"+
-            "\uFDEF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFDC1\u0000\u0000\u0000\u0000\uFBBA\u0000"+
-            "\u0000\u92EB\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFC73\u97B7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFBB4\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u90A7\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9741\u92F4"+
-            "\u0000\u0000\u0000\uFBBC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9577\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9EE2\u0000\u8F78\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uF9DC\u0000\u0000\u0000\u9672\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9EB5\u0000\u0000"+
-            "\u0000\u964B\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA0FA"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9575\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u90DA\u0000\u0000\u9367\u0000\uFEA4\u0000"+
-            "\u0000\u0000\u90DF\u0000\u0000\u0000\u0000\u9354"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8961\u0000"+
-            "\u8BB4\u0000\u0000\u0000\u0000\u9DC0\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8E48\u0000\uFBC5\u0000"+
-            "\u0000\u0000\u0000\u0000\uFBC7\u0000\u0000\u0000"+
-            "\uC6CB\u0000\uFA79\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9E67\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBD2\u8962\u8963"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFC7D\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9F6B\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBCC\u0000\uFEAE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFBD1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB75"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBD4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFBD6\uFBD8\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8B5D\u0000\u934C\u0000"+
-            "\u9AE2\u0000\u0000\u8BC9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFBDB\u9FC9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9F44\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u98ED\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBDD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DF2\u8964\u0000\uFDF2\u0000\u934D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFBE7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0F2\u9868\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9F58\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8D73\u0000\u0000"+
-            "\u0000\uFBDE\u0000\u0000\u0000\u0000\u0000\uFBDF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFBE3\u0000\u0000\u0000\u0000\u8DA8\u0000\u0000"+
-            "\uFBE4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9C75\u0000\u0000\u9878"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8D60\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFBE5\u0000"+
-            "\u8D61\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8D62\uA0A1"+
-            "\u0000\u0000\u0000\u9C40\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98AD\u0000\u0000\u0000\u9EEA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9CEB\u0000\u0000"+
-            "\u0000\u0000\u0000\uFBE0\u0000\u0000\u9F51\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8D65\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9CF1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFC58\u0000"+
-            "\u0000\u8D66\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9654\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFBE8"+
-            "\u0000\u0000\u0000\uC6CC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9FCE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFBFC\u0000\u9AE4\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9F75\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFBF1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8D69\u0000\u0000\u0000\u0000\u0000"+
-            "\u934F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u934E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFBF4\u0000\u0000\u0000\u0000\uC6CE"+
-            "\u0000\u0000\u0000\uFBC3\u0000\u0000\u8965\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8D6A\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9353\u0000\u0000"+
-            "\u9DFB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFBFD\u0000\u0000\u0000"+
-            "\u9059\uFC40\u0000\uFC41\uFC43\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9361\uFC46\u9362\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8D6B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFC4C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u95B8\u0000\u0000"+
-            "\uC6D0\u8BCA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u987A\u0000\u0000\u0000"+
-            "\u0000\uC6D1\u0000\uFC51\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFC54\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAAF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8D6C\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFA61\u0000\u0000\uFC57"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9B70\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA051\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8BCB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u936E\u0000\u0000\u0000\uFCD5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFCA9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFC61\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8966\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFACB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uF9DA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u937A\u0000\uA0E0"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u936B\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFC6B\u0000"+
-            "\u0000\u0000\u0000\u0000\uA0DC\u0000\u0000\u9468"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFC6D\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D71"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFD64\u0000"+
-            "\u0000\u0000\u0000\u99BA\u0000\u0000\u0000\u9AD0"+
-            "\u9A61\uA0E5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA05B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96AC"+
-            "\u0000\u0000\u0000\u0000\u9740\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9EF1\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9F7E\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8D72\u0000\u0000"+
-            "\u0000\u0000\uFC76\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u96A9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA06E\u0000\u0000\uFCAA\u0000\u0000\u0000"+
-            "\uFBCD\u0000\u0000\u0000\uFC74\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA074"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA071\u0000\u0000"+
-            "\u0000\uFC79\u0000\u0000\u0000\u0000\u0000\uFC7C"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9C50\u0000\u0000"+
-            "\u9379\u9378\u0000\u0000\uA0DD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D75"+
-            "\u0000\u8D76\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9374\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D77"+
-            "\uFCA5\u0000\u0000\uFCA2\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u90C3\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA079\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8D79\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8BFC"+
-            "\u0000\uA076\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8BCD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9F5A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FF4\u0000\u0000\u9FBA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8D7A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9E45\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u93B0\u0000\uA075\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9B46\u0000\uFCAE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFCB0\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFA51"+
-            "\u0000\u0000\u0000\u0000\u0000\u8D7B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8D7C\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9ED6\u0000"+
-            "\u0000\u93AC\u0000\u0000\u0000\u9F5B\u0000\u93A9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA07C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFCB2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8AC1\u0000\u0000\u0000\u0000\u0000\u9FB4"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFCAC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9E4C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8FC5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u93AD\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9DC3\u0000"+
-            "\u0000\u0000\u8DA2\u0000\u0000\u0000\u9D4A\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFCB6\u0000\u0000\u8DA3\u9E4B\u0000\u9E4D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DA4"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8AFD\u0000\u0000\u0000\u0000\u0000"+
-            "\uFCB5\u0000\uFCC3\u93B2\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8DA5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u93A1\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8AC6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8A5B\u0000\u0000"+
-            "\u0000\u894D\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFED4"+
-            "\u0000\u0000\u0000\u0000\u8A78\u0000\u93AB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8DA7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9F45\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8A56\u0000\u0000"+
-            "\u0000\uFCBF\u0000\u0000\u0000\uFCC0\u0000\u8EE6"+
-            "\u0000\u0000\u8AA4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8943\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u93F3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFCAB\u9EA2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9DC7\u0000\u0000\u0000\uC6D2\u8BCE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFCC5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFCCB"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u93B3\u0000\uFCCA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFCC9\u8DAC\u0000"+
-            "\uFBC6\u8967\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFCCD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9CF3\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFCD0\u0000\u0000\u95BB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFCD3\u0000\u0000\uFCD4\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DAE";
-
-        private final static String innerIndex4=
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFCD7\u0000\u0000\u0000\u0000\u0000\u93DB\u0000"+
-            "\u0000\u0000\u0000\uFE63\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u93D5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFCDA\u0000\u0000\u0000"+
-            "\u9B71\u0000\u0000\uFCDD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8DAF\u0000\u0000\u0000\uFAF2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u93D8\u0000\u0000\u0000\uFCDF"+
-            "\u0000\u0000\u0000\u93D3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFCE1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8E76\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFC62\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u93D1\u0000"+
-            "\u0000\u0000\u8DB1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9859\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFB52\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFB53\u0000\u0000"+
-            "\u0000\u0000\u0000\uFB4D\u0000\u0000\u9CBF\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9B72"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFB50\u93BE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9DF1\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFCEB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA0BB\u0000\u9B7E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8DB3\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9AE8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8EDC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9CF9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFA50\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u98E7\uFCF3\u0000\u0000\u0000\u0000\uFCF2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u93E5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9A59\u0000\u0000\u0000\u8DB5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFD4D\u0000\u0000\u0000"+
-            "\u0000\uFD5E\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F7D"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9547\uFCF6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9250\u0000\u0000\u0000\u0000\u8968\u0000"+
-            "\u8DB6\uFCFB\uA07D\u98FC\u8969\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFE4F\u0000\u0000"+
-            "\u9256\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAC9\u0000\u0000\u93E8\u0000"+
-            "\u0000\u0000\uFCF8\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9CE3\uFDA9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFC44\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9640"+
-            "\u0000\u0000\u8DB8\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9B4A\u8FB9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFCFE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u896A\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DB9\u0000\u0000\u0000"+
-            "\u917E\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u93F4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFB7C\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u93E7\u0000"+
-            "\u0000\u97EF\u0000\u0000\u0000\uFE4A\u0000\u0000"+
-            "\u0000\u0000\u0000\uFD45\u0000\u96A5\u0000\u0000"+
-            "\u0000\u0000\uFEE0\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFD48\uFD47\uFEF2\uFE6A\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DBD\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9BA1\u0000\u9AB7\u8EFC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9FA1\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFD51\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFAAD\u0000"+
-            "\u0000\u0000\u0000\u8DBE\u0000\u0000\u89A4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9AD9\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFD4E\u0000\u0000\u8DC0\u0000\u0000\u97F0"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u93B4\uFD44\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9FA7\u0000\u0000\u0000\u0000\u8DC2\u0000\u0000"+
-            "\u0000\u0000\u99B6\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFD52\u0000\u0000\u0000\u0000\u0000\u0000\u8DC1"+
-            "\u0000\u0000\u8E46\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0D1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9FCA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u92CF\u0000\u0000\u0000\u9CF4\u8DC4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFD41\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9B4C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFD57\uFCEF\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9CDE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFD42\u986C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u97F9\u0000\u9558\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u985E\uFE7B\u94CD\u0000\u0000"+
-            "\u0000\u0000\u0000\u93EE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFD5A\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u93F5\u0000\u0000\u0000"+
-            "\u0000\u0000\u93EF\u8EEA\u0000\u0000\u0000\u8F5B"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DC6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DC8\u0000\u0000\u8DC7\u0000\u0000\u0000"+
-            "\u0000\u0000\u93F7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8DC9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFBF2\u0000\u0000\u0000\u0000\u9670"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DCB\u0000\u0000\u0000\uFD5C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F65"+
-            "\u0000\u0000\u0000\u8DCD\u0000\u0000\u0000\u0000"+
-            "\u0000\u9DA8\u94F9\u0000\u0000\u8DCE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u93EA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFD5F\u93F0\u9FB6\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DCF\u0000\u0000\u0000"+
-            "\u9763\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8DD0\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u93F1\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFD62\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFD65\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FDB\u0000\u0000\u0000\u0000\u93F8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8BF7"+
-            "\u0000\u0000\u0000\u0000\uFD66\u0000\u0000\u0000"+
-            "\u0000\u0000\u8BCF\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DD1\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DD2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFD71\u0000\u0000\u0000"+
-            "\u0000\uFD6F\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8DD3\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FE7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u90BD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FD0\u0000\u0000\u0000\u8BD0\u0000\uFD72"+
-            "\u0000\u9CAE\u8BD1\u0000\u0000\u8ADB\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFAE4\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u95CE\u0000\uFD76\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFB62\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DD4\u0000\u0000"+
-            "\u0000\uFD78\u0000\u0000\u0000\u0000\u0000\u8EE3"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9076"+
-            "\u0000\u0000\u98C6\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8DD5\u0000\u0000\u0000\u0000\u97D1"+
-            "\u0000\u0000\u9EB6\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAC7\u0000\u0000\uA042\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9873"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FFC\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8DD7\u0000\u0000\u92FB\u8DD8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u944F\u0000\u8DD9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u896B\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u97CE"+
-            "\u0000\u0000\u0000\uFAF3\uFDAE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFBAF\u92B7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DDA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9C5A"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFDAD\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DDC\u9444\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DDD\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0D6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u97D5\u0000\u944A\u0000\u0000\u0000"+
-            "\u0000\u0000\u944D\u0000\u0000\u0000\u0000\u97CB"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DDE\u0000\u0000"+
-            "\u8DDF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DE0\uFEF9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFDC0"+
-            "\uFCF9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFB7E\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u92B3\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDAF\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8DE1\u0000"+
-            "\u0000\u0000\u0000\u95D3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u89C1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFD68\u0000\u0000"+
-            "\u9CB7\u0000\u0000\u8DE3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFAC0\u8DE5\uFA64\u0000\u8947\u0000\u0000"+
-            "\u0000\u0000\u8DE4\u0000\u0000\u0000\u0000\u0000"+
-            "\u8DE7\u8DE8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFDC7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDB0\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9445\u97D6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFCC6\u9844"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DE9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DEA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFE50\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDCC\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9DA7\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDCD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDCF\u0000\u0000\u0000"+
-            "\u0000\u95D2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DED\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFCBA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFDC5\u0000\uFDD2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9CDC\u0000\u0000"+
-            "\u0000\u0000\u0000\u95CF\u0000\u0000\u8DEE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFDD4\u0000\u0000\u0000\u0000"+
-            "\u0000\u96EC\u96EB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90B6\u0000"+
-            "\uFDC3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u98AB\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u96EE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DF4\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFDE0\u0000\u0000\u0000\u0000"+
-            "\u8DF6\u0000\u0000\u0000\u8DF7\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FFA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u97D0"+
-            "\u0000\u0000\u0000\u0000\u8BD2\u0000\u0000\u8DF8"+
-            "\u0000\u0000\u0000\u0000\u0000\u90D9\u0000\u0000"+
-            "\u0000\uFAF0\u0000\u0000\u0000\u0000\uFDE1\u8DF9"+
-            "\u0000\uFDE3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DFA\u0000\uFB63\u0000\u0000\u0000\u90A6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9970\u0000\u0000\u91EB\u0000\u9770\u986F\uFDE2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u98F2\u0000\u9AFC\u896C\uFDFD\u0000\u0000"+
-            "\u995E\u0000\u0000\u0000\u95BD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDE4\u0000\u0000\u0000"+
-            "\u91E6\u0000\u0000\u0000\u0000\uFDE5\uFDE6\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFDE7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9454\u0000\u0000\u0000\u99B8\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u97E9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9346\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9863\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u95BC\u0000\uFDED\uFDF7\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9870\u96F6\u8EA9\u0000\u0000"+
-            "\u0000\u0000\u0000\u9451\u0000\u0000\u8E43\u0000"+
-            "\u8B5A\u0000\u0000\u0000\u0000\uFDEE\u0000\u0000"+
-            "\u0000\u0000\uFDF0\u0000\u0000\u0000\u0000\uFDF4"+
-            "\u0000\u9BF5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u977E\u0000\u0000\u0000\u0000"+
-            "\u0000\u9BD5\u0000\u9AC3\u0000\u97C8\uA0DB\u91D0"+
-            "\u0000\u0000\u9FE4\u0000\u8FDD\u0000\u91E9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98E0\u0000\u0000\u0000\u92CA\u0000\u9857\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFDEB\u0000"+
-            "\u9B49\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9D76\u9EAF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9CCC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDEA\u0000\u0000\u8DF1"+
-            "\u0000\u0000\uFDFB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8E53\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFACF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u96F9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98BF\u9E49\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9BCA\u0000\u0000\u0000\u0000\uFDFE\u92DC"+
-            "\u0000\u0000\u0000\u0000\u0000\uFE41\u91CC\u91E2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFE44\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8BD3\u0000\u0000\uFE47\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFE48\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9455\u0000\u0000\u0000\u0000\uFE4B\u0000\uFE4C"+
-            "\u0000\u0000\u0000\u0000\u8DBF\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9E78\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFE51\u0000\u0000\u0000\u0000\u9456"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9D61"+
-            "\u0000\u0000\u0000\u0000\u9457\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9966"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8BD5\u0000\u0000"+
-            "\u0000\u0000\uA069\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98B4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA049\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA04C\u0000\u9E65\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98B5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFE58\u0000\u9975\uFE53\uA065\u0000\uFE59\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98B7\u98B8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u98BA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98BB\u0000\u0000\u0000\u0000\u0000\u0000\u9FBC"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA04A\u0000\u0000\u9EC7\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u98AE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u92D6\u0000\u0000\u0000\uFAE1\u0000\u91D4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFADE"+
-            "\u0000\u0000\uFE5B\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFE5E\u0000\u0000\u0000\u0000\uFBD7\uFE5A"+
-            "\u94C5\u0000\u0000\u0000\u0000\uFACA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u98C1\u975C\u0000\uFE74\u0000\u9773\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFA46"+
-            "\u0000\u0000\u0000\u9764\u0000\u0000\u0000\uFE68"+
-            "\u0000\u964E\u0000\u9765\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u89A1\u95FA\u0000\u92D4\uFE69\u0000\uFB45"+
-            "\u0000\u98C8\u0000\u0000\u90EF\u0000\u98C9\u98CA"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u946D"+
-            "\u94B7\uFE6C\u0000\u0000\u946B\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u92FC\u0000\u95EB\u0000\uFE73"+
-            "\u976E\uFE5F\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFDBD\u0000\u0000\u92D5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFEB9\u0000\u0000"+
-            "\uFE71\u0000\u0000\u0000\u0000\uFBBB\u0000\u0000"+
-            "\u947A\u0000\u0000\u95FB\uFE77\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFE79\u0000\uFE75\u0000"+
-            "\u0000\u0000\u945D\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFE7C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9344\u8EA6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u92D3\u0000\u94B8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFC71\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u975E\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFEA7\u0000\u0000\u0000\u946A\u0000\u0000\u0000"+
-            "\u93E3\u0000\u0000\u98CF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA0D9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA0BF\uA04D\uA0B8\u0000\u0000\u0000\u0000\u0000"+
-            "\uA0CE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA0B7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFEA9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u89C3\u0000\u0000\u0000\u0000\uFEAB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9DF4\u896D\u0000\u0000"+
-            "\u0000\u0000\u0000\u9C7B\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u98D2\u0000\u0000\u0000\u9FA9\u0000"+
-            "\u0000\u0000\uFEB2\u0000\u0000\uFEB1\u0000\u0000"+
-            "\u0000\u97D9\u0000\uA0C4\u0000\u9476\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9978\u0000\u0000\u0000\u0000\u0000\u0000\uFEB3"+
-            "\u0000\u0000\u0000\u0000\u0000\u98D3\uFEB4\u0000"+
-            "\u0000\u0000\u98D4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FB9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9471\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98D5\uFEB8\u0000"+
-            "\u0000\u0000\uC6D4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFEBA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9E5C\u0000\u0000\uFEBB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA044\u0000\u0000\u0000\u0000"+
-            "\u98D7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u98D8\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
-        private final static String innerIndex5=
-            "\u0000\u0000\uFEBC\u0000\u0000\u0000\u0000\u9FFE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFEBD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9DDD\u0000\u0000\u0000\u0000"+
-            "\u9EE1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98DA\u9DDF\uFEBF"+
-            "\u0000\uFEBE\u0000\u0000\u9EEB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9E59\uA05C"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEC0"+
-            "\u0000\u0000\u0000\u9477\u98DC\u0000\uFEC1\u0000"+
-            "\u0000\u0000\u98DE\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFEC3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFEC8\u0000\u0000\u0000\uFEC9\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFECA"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFECB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9FC2\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u98C4\u0000\u94B0\u94B1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFED1\u0000"+
-            "\u0000\u0000\u0000\u0000\uA0C1\u0000\uFED2\u0000"+
-            "\u0000\u0000\u0000\uA0CD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFED3\u0000\u0000\u98E5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFED6\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u91E4\u0000\u0000\u0000\u0000\u8FC7"+
-            "\u94AE\u0000\u8A4F\u94B2\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8FD4\u0000\u0000\u0000\u0000"+
-            "\u98EA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFED8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9DE0\u0000\u0000\u0000\u0000\u98EE\u0000"+
-            "\u0000\u0000\u0000\u95C4\u0000\uFCE8\u0000\u0000"+
-            "\u0000\u0000\u0000\u98EF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFAD8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFEDC\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA0AE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9D4C\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98F1\u0000\u0000\u0000\u98F3\u0000\u94C1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u98F5\u0000\u0000\uFA4F\u96E2\u0000\u0000"+
-            "\u0000\u0000\u9450\u0000\u96A2\u0000\u0000\u98F6"+
-            "\u0000\u0000\u0000\u96E5\u0000\u0000\u0000\u0000"+
-            "\u0000\u98F7\u0000\uA046\u96E3\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u98F8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9EE4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uF9D6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u94C3\u0000\u0000\u0000\u0000\u94C2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEE1"+
-            "\u0000\uFEE9\u0000\u0000\u0000\u0000\u96E4\u0000"+
-            "\u89AC\u96DB\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEE2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u94C4\uFEE3\u0000\u0000\u0000\uFEE7"+
-            "\u9FFB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u93C9\u0000"+
-            "\u94E8\uFB56\u0000\u0000\u0000\u90C5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA0A8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFEE5\u0000"+
-            "\u0000\u0000\u98FD\u98FB\uFEE8\u0000\u8EBF\u0000"+
-            "\u0000\u0000\u0000\u8BD8\uFEF7\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8F68\u94C6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9DEA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFC69\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9CDA\u0000"+
-            "\uFEF3\u0000\u0000\u9C72\u0000\u0000\uFEF0\u89C9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9941\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9942\u0000\u0000\u0000\uFEF5\u0000\u91D7"+
-            "\u0000\u0000\u0000\u0000\u0000\u94CC\u0000\u0000"+
-            "\u0000\uFEF8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u97A8\u0000\uFEFC\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDBF\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFEFE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u96D1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u94D5\u0000\u0000\u94D0\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9944\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA0B3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u94CF\u0000\u0000\u0000\u9FFA\u0000"+
-            "\u0000\u0000\u0000\u91E5\u0000\u9C6A\u0000\u0000"+
-            "\u0000\u8E49\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8E4C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8E4D\u0000\u0000"+
-            "\u0000\u0000\u0000\u9A73\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9947\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8E50\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8E4F\u9949\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E51\u8E52\u0000\u0000\u0000\u0000"+
-            "\u9AB2\u89A5\u0000\u0000\u0000\u0000\u0000\u994C"+
-            "\u0000\u0000\u0000\u9FF8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E56\u994D\u91CA\u8E57\u0000\u0000"+
-            "\u0000\u0000\u94E1\u0000\u0000\u0000\u0000\u9047"+
-            "\u0000\u8FD8\u8E58\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u94EB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8E5C\u9553\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9FE5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F56"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u954F"+
-            "\u0000\u8E5E\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u996A\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9C64\u9CD9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8E5D\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9950\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9951\u0000\u0000\u8E62"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9952\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E68\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E61\u9F59\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8BB3\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F5D"+
-            "\u8E66\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E6E\u0000\u9F64\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9953\u0000\u0000\uFAB8\u0000\u0000"+
-            "\u0000\u0000\u0000\u9954\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8E70\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9F61\u0000\u8E72\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA06B\u0000\u0000\u0000\u0000\u9F40\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u94ED\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u94EE\u0000\u0000"+
-            "\u9FBD\u0000\u0000\u0000\u8E7B\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9957\u94F7\u0000\u9F5F\u0000"+
-            "\u0000\u0000\u0000\u8E73\u0000\u0000\u9F62\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u94F6\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9958\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8E75\uF9DB"+
-            "\u0000\u0000\u0000\u0000\u9072\u0000\u94F8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u995A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0B0\u0000\u0000\u0000\u0000\u8E79"+
-            "\u0000\u8E78\u0000\u0000\u0000\u94F3\u0000\u0000"+
-            "\u0000\u0000\u0000\u98AF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0B2\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8E7A\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u995C\u0000\u0000"+
-            "\u0000\u0000\u0000\u8E7C\u0000\u8E7D\u0000\u0000"+
-            "\u0000\u8BD9\u0000\u0000\u89A2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9ED7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA0B6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9E42\u0000\u0000\u8EA4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8EA7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9542"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u987D\u0000\u0000\u0000"+
-            "\u9755\u0000\u0000\u8EA8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8EAA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u89A3\u0000\u9960"+
-            "\u9962\u0000\u0000\u94FC\u9961\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u94FA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8EAE\u8EB2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8EB0\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9963\u97AA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u94FB"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8EBB"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9876\u0000\u8EA1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8EB7\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9DA6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9EB0\u0000"+
-            "\u0000\u0000\u8EB8\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9D70"+
-            "\u0000\u0000\u0000\u0000\u896E\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u896F\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8970\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8971"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8972"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8973"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8974\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8975"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8EBC\u8EBD\u0000\u0000\u0000\u0000\u0000\u8EBE"+
-            "\u0000\u9DD1\u0000\u0000\u0000\u0000\u94FD\u0000"+
-            "\u0000\u0000\u8BD7\u8BDA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0E2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9FE9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFDA8"+
-            "\u0000\u0000\u0000\u8AE7\u0000\u0000\u0000\u8EC2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8EC4\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9964\u0000"+
-            "\u0000\u0000\u0000\u0000\u9965\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u954E\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u98B3"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8ECB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8BDF\u0000\u0000\u0000\u0000\u0000"+
-            "\u8ECE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8ECF\u0000\u0000"+
-            "\u9968\u0000\u0000\u0000\u0000\u9969\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u996B\u8ED1"+
-            "\u0000\u996C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8ED4\u8ED5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u996D\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA0BE\u0000\u0000\u0000\u0000"+
-            "\u0000\u8ED6\uA0BC\uA0B5\u0000\u0000\uA0B4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8BE0\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89B5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8EDD"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9E5D\u9971"+
-            "\u0000\u0000\u0000\u0000\u89AE\u9DE8\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9565\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9972\u0000\u0000\u8B5C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u89B1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA0C0\u0000\u0000\u0000\u8EDF"+
-            "\u0000\u9566\u0000\u0000\u9974\u0000\u9976\u0000"+
-            "\u0000\u0000\u9977\u0000\u9979\u0000\u0000\u9DDA"+
-            "\u0000\u0000\u8EE0\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u935C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9DE6\u0000\u8B5F\u0000\u0000\u9563"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9567\u0000\u0000\u0000\u0000\u0000"+
-            "\u9DE3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u997C\u0000"+
-            "\u0000\u997D\u997E\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8B5B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99A3\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99A4\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u99A6\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u99A8\u0000\u0000"+
-            "\u0000\u0000\u8ABE\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9E61\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u99AA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA0C8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99AB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEC4"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u98C2\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8EE8\u0000\uA0BA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFD77\u0000"+
-            "\u0000\u8EEE\u0000\u0000\u0000\u9EBF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u89C2\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99AC\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u956B\u0000\u0000\u956C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u99AF\u0000"+
-            "\u0000\u994A\u8976\u8F48\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFBEE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u99AE\u0000"+
-            "\u0000\u0000\u8EFB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8B52\u0000\u0000\u0000"+
-            "\u0000\u0000\u99B0\u0000\u0000\u0000\u0000\u8977"+
-            "\u8F41\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99B1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8F49\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFA4D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9DE4"+
-            "\u0000\u0000\u0000\u0000\uFBE9\u9B54\u0000\u99B2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9E68\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8F4A\u0000\u8F42\u0000\u0000\u8F51\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9846\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99B4"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8EF5\uFD55\u0000\u0000\u9CCD\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8978"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8F53\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8F6F\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8E63\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8F56\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFE76\u0000\u0000\u0000\u0000\u9FC6\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFAAC\u0000\u0000"+
-            "\u0000\u0000\u0000\u8F58\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9848\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u99B7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9665\u0000\uFA6C\u0000"+
-            "\u9DE7\u0000\u0000\u0000\u9E62\u0000\u0000\u0000"+
-            "\u96CC\u8E67\u0000\u0000\uFC75\u0000\u987E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFDB9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u97FC\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98F9\u0000\u8F66\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u956E\u0000\u9245\u0000\u0000"+
-            "\u8F60\u0000\u0000\u0000\u9ED1\u0000\u0000\u0000"+
-            "\u0000\u0000\uFECD\u0000\u99B9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8F62\u974C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u91C7"+
-            "\u955F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99BB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E6D\u8F71\u0000\u0000\u94CB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u95B1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9AF2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u96C3\u99BD\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0CF\u0000\u0000\u0000\u8F6D\u0000"+
-            "\u0000\u99BE\u8EF4\u0000\u8F72\u95E4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99BF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9242\u0000\uFBA5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99C0\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFDB4\u8F77\u0000\u0000\u0000"+
-            "\u99C1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFAB9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8F40\uFA44\u0000\u0000\u0000"+
-            "\u0000\u0000\u99C2\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8F5C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99C4"+
-            "\u99C5\u0000\u0000\u8F7B\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8FA3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99C6\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u96CD\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u96C7\u0000\u0000\u0000";
+        protected CoderResult encodeBufferLoop(CharBuffer src, ByteBuffer dst) {
+            int mark = src.position();
+            try {
+                while (src.hasRemaining()) {
+                    int inSize = 1;
+                    char c = src.get();
+                    int bb = encodeChar(c);
+                    if (bb == UNMAPPABLE_ENCODING) {
+                        if (Character.isSurrogate(c)) {
+                            int cp;
+                            if ((cp = sgp().parse(c, src)) < 0)
+                                return sgp.error();
+                            bb = encodeSupp(cp);
+                            if (bb == UNMAPPABLE_ENCODING)
+                                return CoderResult.unmappableForLength(2);
+                            inSize = 2;
+                        } else {
+                            return CoderResult.unmappableForLength(1);
+                        }
+                    }
+                    if (bb > MAX_SINGLEBYTE) {  // DoubleByte
+                        if (dst.remaining() < 2)
+                            return CoderResult.OVERFLOW;
+                        dst.put((byte)(bb >> 8));
+                        dst.put((byte)(bb));
+                    } else {
+                        if (dst.remaining() < 1)
+                        return CoderResult.OVERFLOW;
+                        dst.put((byte)bb);
+                    }
+                    mark += inSize;
+                }
+                return CoderResult.UNDERFLOW;
+            } finally {
+                src.position(mark);
+            }
+        }
 
-        private final static String innerIndex6=
-            "\u0000\u0000\u8FA5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFABB\u0000\u0000"+
-            "\u9570\u0000\u0000\u0000\u9368\u0000\u8F7E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8FAA\u0000\u0000\u0000\u0000\u0000\u0000\uA050"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u90D3\u0000\u0000\u9556\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FB8\u0000\u0000\u0000"+
-            "\u0000\u0000\u99C8\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8FAF\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u99C9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9579\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9F49\u0000\u0000"+
-            "\u0000\u0000\u99CA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99CB"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9DD5\u8FB0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFA7A\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9E5F\u0000"+
-            "\u0000\u0000\u0000\u99CD\uA0C9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9ADB\u0000\u0000"+
-            "\u0000\uA0C6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8FB4\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0D7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA0C7\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA043\u0000"+
-            "\u0000\u0000\u8FB5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8FB2\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA061\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9E5E\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FB6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9FE8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9CB2"+
-            "\u0000\u0000\u0000\u0000\u0000\u957C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FC7\u0000\u0000\u8FBB\u8FBC\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FEC"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8FC0\u0000"+
-            "\u936A\u0000\u0000\u0000\u8BE4\u9C7C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u95A1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFEEC\u0000\u0000\u95A3"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FC1\u0000\u0000\u0000"+
-            "\uA052\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u99D0\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FC3\u8FC4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95A4"+
-            "\u0000\u0000\u0000\u0000\u0000\u8FC6\u0000\u9E60"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uF9D8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u95A5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9CB3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99D1"+
-            "\uFEF1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99D2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9CC2\u0000\u0000\u0000\u99D3"+
-            "\u0000\u0000\u0000\u0000\u0000\u95A7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u95A9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u95A6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9C5D"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98E2\u0000\u0000\u0000\u0000\u0000\u0000\u8FC9"+
-            "\u0000\uA0C2\u8FCA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u99D4\u0000\u0000\uA0B9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9B58\u0000\u8FCD"+
-            "\u0000\uA0D4\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FCE\u0000\u0000\u0000"+
-            "\u0000\u8BE5\u0000\u0000\u0000\u0000\u8979\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FD0"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u95B6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u99D6\u0000\u95E5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99D7\u0000\u0000\u0000\u0000\u95B5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0CA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FFD"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA058\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8FD6\u0000\u0000\u0000\u99D8\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FD3\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8FE5\u0000\u0000\u0000\u0000\u0000\u8FE9"+
-            "\u0000\u0000\u0000\u0000\u99D9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u927C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9C45\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FDE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FDF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA04B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FE2"+
-            "\u0000\u0000\u0000\uA0CC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FE3\u8FE4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9BC4\u0000"+
-            "\u0000\u0000\u9BFC\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u964C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9AF6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8FE7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8FE8\u0000\u0000\u0000\u0000"+
-            "\u8BE7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u897A\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u897B\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u99DA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8FED\u0000\u0000\u0000\u95C0"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA0CB\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9E48\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99DB\u0000\u8FF3\u0000"+
-            "\u0000\u0000\u0000\u8FF9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u95C1\u0000\uA04E\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u99DC\u0000\u0000\u0000\u0000\uA064"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8FF7\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u89B0\uA048\u0000\u0000\u0000"+
-            "\u0000\u8FFB\u8FF6\u0000\u0000\u0000\u0000\u0000"+
-            "\u9DDC\u0000\u0000\u0000\u99DD\u8BE8\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u92C1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FD6\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA0D2\u0000"+
-            "\u0000\u9040\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8AC4\u0000\u0000\u99E0\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9FF0\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FF3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9DBF\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9FF6\u0000\u95C8\u0000\u0000\u9E5A\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u99E3\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8A4A\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FF1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8AA7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u99E6\u0000\u0000\u0000\u9FF7\u0000\u9FED"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8A5C\u0000"+
-            "\u9DAE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95C9"+
-            "\u0000\u0000\u0000\u0000\u0000\u9048\u0000\u0000"+
-            "\u99E8\u0000\u0000\u0000\u0000\u0000\u9049\u0000"+
-            "\u0000\u0000\u0000\u0000\u90B1\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u904A\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u99EA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9BD1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u99EB\u0000\u99EC\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u99ED\u0000\u0000"+
-            "\u0000\u0000\u99EE\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u904C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u904D\u0000\u0000"+
-            "\u95CB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u97E2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u95CC\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9F78\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u897C\u897D"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u897E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u995D\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9B5A\u0000\u0000\u0000\u0000\u9050\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9054\u0000\uC6D6\u9AA8\u99EF"+
-            "\uFEEB\u9DA3\u9DA1\u9943\u9945\u0000\u9D7D\u0000"+
-            "\u0000\u99F0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u99F1\u0000\u99F2\u0000\u0000\u0000"+
-            "\u9D60\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0A3\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u905B\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9EDB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9D79\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u99F3\u0000\u0000\u0000\u9062"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9F55\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9BF9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9065\u0000\u0000\u96E0\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u98BE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9068\u0000\u0000\u0000\u0000\u0000\u906C\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u95D8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u906A\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FB2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FAE\u0000\u0000\u9FB0\u0000\u89AD\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u906E"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9E71\u0000\u0000\u0000\u0000\u0000\u9E4A\u0000"+
-            "\u0000\u0000\u0000\u0000\u9FDC\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u89AB\u0000\u9FB8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9070\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8B63\u0000"+
-            "\u0000\u0000\u0000\u95DC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9071\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFC5E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8949"+
-            "\u0000\u0000\u0000\u0000\u0000\u965B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u94A6\u0000\u0000\u0000\u8FD5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9E73\u0000\u0000\u0000\u0000\u0000\u9075\u0000"+
-            "\u0000\u0000\u0000\u99F7\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99F9\u0000\u9663\u95B9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u94D4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFCFA\u0000\u0000\u0000"+
-            "\u0000\u9077\u0000\u0000\u90AB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9D4D\u0000\u0000"+
-            "\u99FA\u0000\u0000\u0000\u0000\u92E3\u0000\u97BB"+
-            "\u0000\u0000\u9078\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u99FB\u0000\u0000\u97E0\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96DC"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9CA8\u0000\u0000\u9772\u0000\u0000\u0000"+
-            "\u0000\u9440\u0000\u0000\u0000\u0000\u0000\u92F2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u99FD\u0000"+
-            "\u0000\u99FC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uF9D7\u964A\u0000\u0000\u0000\u96D8\u99FE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u904B\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFA41\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9A40\u0000\u975B\u0000\u0000"+
-            "\u0000\u0000\u0000\u9A41\u91DD\u0000\u0000\u0000"+
-            "\u0000\u0000\u93FC\u9A42\u9A43\u0000\u9659\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A44\u0000\u0000"+
-            "\u0000\u0000\u0000\u9051\u0000\u0000\u0000\u94BF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u90A2\u0000\u0000\u0000"+
-            "\u9CAB\u9776\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFC55\uFE45\u94A8\u9A45\uFA4B\u9DE1\u0000\u0000"+
-            "\u96D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9774"+
-            "\u0000\u0000\uFDF5\u0000\u0000\u0000\u92E5\u0000"+
-            "\u9645\u91DA\u0000\u90A3\u0000\u0000\uA05F\u0000"+
-            "\u0000\u0000\u0000\u90AF\u97BF\u0000\u0000\u0000"+
-            "\u914C\u0000\u0000\u0000\u0000\u967A\u0000\u0000"+
-            "\u0000\u91DE\u0000\u0000\u9A46\uFEB0\u9779\u946C"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9858\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9266\u0000\u0000\u0000"+
-            "\u93FB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A47\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9749\u0000\u0000\u9748\u0000\u934A\u0000\u9CE2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9264\u0000"+
-            "\u0000\u0000\u0000\u91DF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFB79\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u96D7\u0000\u0000\u0000\u0000"+
-            "\u9343\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFDCB\uFE7A\u0000\u91DB\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u97AF\u0000\u0000\u95DD\u0000\u0000\u0000"+
-            "\u9348\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9A4B"+
-            "\u0000\u0000\u0000\uFC45\u0000\u9A4D\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u91BC\u90E2\u90B4\u95E1"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A4E\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9A4F\u0000"+
-            "\u0000\u0000\uFE40\uFE43\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u96DD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9A51\u0000\u0000\u0000"+
-            "\u96A7\u0000\u0000\u90B0\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9C4E\u0000\u9443"+
-            "\u0000\u0000\u0000\u0000\u8EBA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9A52\u0000\uFCC1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8BE9\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9CAF"+
-            "\u0000\u0000\u8BFD\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9ABC\u0000\u9AB8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9AAE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9AA7\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A53\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9D74"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8BEA\u0000\u0000\u0000\u0000\u0000\u0000\u8BEB"+
-            "\u0000\u0000\u0000\u0000\u0000\u90B2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u95E9\u95E8"+
-            "\u0000\u95E6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u90B5\u0000\u9A54\u0000\u0000\u0000\u90B3\u95E7"+
-            "\u0000\u0000\u8B50\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8BEC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9A56\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
+        protected CoderResult encodeLoop(CharBuffer src, ByteBuffer dst) {
+            if (src.hasArray() && dst.hasArray())
+                return encodeArrayLoop(src, dst);
+            else
+                return encodeBufferLoop(src, dst);
+        }
+
+        static char[] C2B_UNMAPPABLE = new char[0x100];
+        static {
+            Arrays.fill(C2B_UNMAPPABLE, (char)UNMAPPABLE_ENCODING);
+        }
 
-        private final static String innerIndex7=
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8BFB\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9A57\u0000\u0000\u0000\u0000"+
-            "\uA0AA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FA6\u0000\u0000\u0000\u99CC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9C59\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u99B5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u90BE\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FAF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95F2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90BF\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u90C1\u0000\uFEE4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90C4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u90C7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u92E4\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9F52\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u90DB\u0000\u0000\u0000\u0000"+
-            "\u0000\uA066\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u90D2\u0000\u0000\u0000\u0000\u90D4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9A5B\u95FD\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8BC4\u0000\u0000\u0000\u0000\u0000\u90DE"+
-            "\u0000\u0000\u0000\u0000\u0000\u9CE4\u0000\u90E1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9E46\u0000\u0000"+
-            "\u0000\u9651\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB58"+
-            "\u0000\u90E6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9650\u0000\u0000\u0000\u90E7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u90E8\u9A5D\u0000\u9F7A\u0000\u0000\u0000"+
-            "\u9B5C\u0000\u9F7C\u0000\u0000\uFC52\u90E9\u0000"+
-            "\u90EA\u0000\u9A5E\u0000\u0000\u0000\u0000\u0000"+
-            "\u9F76\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u90EB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u90EC\u0000\u0000\u0000\u0000\u0000\u8BEE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90EE\u0000"+
-            "\u0000\u0000\u91C6\u0000\u0000\u90F2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFCBC\u8A74\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9657"+
-            "\u0000\u0000\u0000\u9CEF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9FDF\u0000"+
-            "\u0000\u0000\u0000\u90F7\u90F6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9B5E"+
-            "\u0000\u0000\u0000\u90F8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90F9\u0000"+
-            "\u0000\u0000\u0000\u0000\uFA6A\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8BEF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9FE0\u0000\u0000\u9142"+
-            "\u0000\u9A62\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9569\u0000\u0000\u0000\u9144"+
-            "\u9143\u0000\u9141\u0000\u0000\u0000\u8BF0\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9660\u0000\u8BF1\u0000"+
-            "\u99F6\u9149\u0000\u0000\u0000\u0000\u914A\u0000"+
-            "\u0000\u0000\u0000\u0000\u914B\u0000\u0000\u0000"+
-            "\u0000\u9A64\u0000\u0000\u0000\u8ABF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9A66\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9A67\u0000\u0000\u9A69\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9A6A"+
-            "\u9652\u914D\u0000\u9666\u0000\u0000\u0000\u0000"+
-            "\u9F7B\u0000\u9A6B\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA06C\u0000\u0000\u9667\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A6C\u0000\u0000"+
-            "\u0000\u0000\u9A6D\u8BF2\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u966A\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFCEA\u0000\u0000\u0000"+
-            "\u0000\u0000\u966C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u91C4\u0000\u0000\u0000\u9677\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99F4\u9A6F\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FAB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8EC1\u0000\u0000\u0000\u0000\u9555\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9152\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9153\u0000\u0000\u0000"+
-            "\u9155\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u955D"+
-            "\u0000\u9671\u0000\u0000\u0000\u0000\u9C6D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9673"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9154\u9A71\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9156\u0000\u0000\u0000\u966D\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9557\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u89C6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89C7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8A6A\u0000\u0000\u0000\u8B57\u0000"+
-            "\u0000\u0000\u9FE1\u0000\u0000\u9B5F\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA05D"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u915B\u0000\u915C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u915E\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F5C"+
-            "\u0000\u0000\u9F57\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9F65\u0000\u0000\u0000\u0000\u0000\u9A72"+
-            "\u0000\u0000\u0000\u0000\u9160\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9F5E\u0000\u0000\u9161\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9164\u0000\u0000\u0000"+
-            "\u0000\u9F41\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9169\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9168\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9A74\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96B2"+
-            "\u0000\u9A75\u0000\uFDA5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9EE9\u0000\u8BBA\u916D\uA060"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FDE"+
-            "\u0000\u0000\u0000\u0000\u0000\u9FC3\u0000\u96B5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA067\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96B3"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A76\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u95D5\u0000\u0000\u0000\u9ECA\u0000\u0000"+
-            "\u0000\u9A77\u0000\u0000\u9A78\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9170"+
-            "\u0000\u0000\u916F\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FA3\u0000\u9171\u0000\u0000\u0000"+
-            "\u96B1\u0000\u0000\u0000\u0000\u9F63\u0000\u0000"+
-            "\u0000\u0000\u0000\u9F67\u0000\u0000\u0000\u8BB9"+
-            "\u9A7A\u0000\u0000\u0000\u0000\u0000\u8B56\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9ADA"+
-            "\u0000\u0000\u0000\u0000\u0000\u96B0\u0000\u0000"+
-            "\u0000\u0000\u9A7E\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9DDE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96AD"+
-            "\u0000\u0000\u0000\u96AE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9EA1\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9E50\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u96AF\u8BF4\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FA4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u96BD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u96F4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u96B8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFAA1\u0000\u0000\u0000"+
-            "\u0000\u91A7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA05E\u0000\u0000\u0000"+
-            "\u0000\u9A7D\u0000\u0000\u0000\u0000\u8948\u0000"+
-            "\u9EB1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9DDB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u95BF\u8A73\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9EFE\u0000\u917A\u0000"+
-            "\u0000\u0000\u0000\u917B\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9AA3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u96C2\u0000\u0000"+
-            "\u0000\u0000\u0000\u9F77\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9AA4\u0000\u0000"+
-            "\u9AA5\u0000\u0000\u0000\u91A1\u0000\u0000\u0000"+
-            "\u0000\u89B8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9173\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9AA6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u89BD\u0000\u89B9\u0000\u917D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u96BB\u0000\u0000\u0000\u9FF2\u0000\u0000\u8BF5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9AA9\u0000\u0000\u0000\u0000"+
-            "\u0000\u9F54\u0000\u0000\u9FE3\u9EED\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u91AA\u0000\u0000\u0000\u0000\u91AB\uA070\u0000"+
-            "\u9F6D\u0000\u0000\u0000\u0000\u0000\u91AC\u0000"+
-            "\u0000\u0000\u91AD\u0000\u0000\u0000\uA0FD\u0000"+
-            "\u9FE2\u0000\u91AF\u9E41\u9AAA\u0000\u0000\u91B0"+
-            "\u0000\u9AAB\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9AAC\u0000\u9A4A"+
-            "\u0000\u91B2\u0000\u0000\u8BF6\u0000\u9AAD\u89B6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9AAF\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9AB0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9AB1\u0000\u0000\u0000\u0000\u0000\u9AA1\u0000"+
-            "\u0000\u0000\u91B9\u0000\u0000\u0000\u0000\u0000"+
-            "\u91BA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u91BE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA041\u8BB7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u91C0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9AB3\u91C3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA0FC\u0000\u0000\u9FEE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9F69\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u91C8\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u91C9\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DE6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u91CB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u89C8\u0000\u0000\u8BF8\u0000\u0000\u8DAA"+
-            "\u0000\u0000\u0000\u0000\u0000\u9FDD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFA40\u0000\uFA42\uFA43\u0000\uFA45\u0000\u0000"+
-            "\uFA48\uFA49\uFA4A\u0000\uFA4C\u0000\uFA4E\u0000"+
-            "\u0000\u0000\uFA52\uFA53\uFA54\uFA55\uFA56\u0000"+
-            "\uFA58\u0000\uFA5A\uFA5B\uFA5C\uFA5D\uFA5E\u0000"+
-            "\uFA60\u0000\uFA62\uFA63\u0000\uFA65\u0000\u0000"+
-            "\uFA68\u0000\u0000\uFA6B\u0000\uFA6D\uFA6E\u0000"+
-            "\uFA70\u0000\uFA72\uFA73\uFA74\uFA75\uFA76\uFA77"+
-            "\uFA78\u0000\u0000\uFA7B\uFA7C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAA5\u0000\uFAA7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFAAE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFABC\u0000\uFABE\u0000\u0000\uFAC1"+
-            "\uFAC2\uFAC3\u0000\u0000\uFAC6\u0000\uFAC8\u0000"+
-            "\u0000\u0000\uFACC\uFACD\uFACE\u0000\uFAD0\u0000"+
-            "\u0000\uFAD3\u0000\u0000\uFAD6\uFAD7\u0000\u0000"+
-            "\uFADA\u0000\u0000\u0000\u0000\uFADF\uFAE0\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFAE8\uFAE9"+
-            "\u0000\uFAEB\uFAEC\u0000\uFAEE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAF5\uFAF6\u0000\u0000\u0000"+
-            "\uFAFA\uFAFB\uFAFC\uFAFD\uFAFE\uFB40\uFB41\u0000"+
-            "\uFB43\u0000\u0000\u0000\u0000\u0000\uFB49\uFB4A"+
-            "\uFB4B\uFB4C\u0000\uFB4E\u0000\u0000\uFB51\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFB5D\uFB5E\uFB5F\u0000\uFB61\u0000"+
-            "\u0000\u0000\uFB65\uFB66\u0000\uFB68\u0000\uFB6A"+
-            "\uFB6B\u0000\uFB6D\u0000\u0000\uFB70\u0000\u0000"+
-            "\uFB73\u0000\u0000\u0000\uFB77\uFB78\u0000\uFB7A"+
-            "\u0000\u0000\uFB7D\u0000\uFBA1\u0000\u0000\uFBA4"+
-            "\u0000\u0000\uFBA7\uFBA8\uFBA9\uFBAA\u0000\uFBAC"+
-            "\uFBAD\uFBAE\u0000\uFBB0\uFBB1\u0000\uFBB3\u0000"+
-            "\u0000\uFBB6\uFBB7\u0000\uFBB9\u0000\u0000\u0000"+
-            "\uFBBD\uFBBE\uFBBF\uFBC0\uFBC1\uFBC2\u0000\u0000"+
-            "\u0000\u0000\u0000\uFBC8\uFBC9\uFBCA\uFBCB\u0000"+
-            "\u0000\uFBCE\uFBCF\uFBD0\u0000\u0000\uFBD3\u0000"+
-            "\uFBD5\u0000\u0000\u0000\uFBD9\uFBDA\u0000\uFBDC"+
-            "\u0000\u0000\u0000\u0000\uFBE1\uFBE2\u0000\u0000"+
-            "\u0000\uFBE6\u0000\u0000\u0000\uFBEA\uFBEB\uFBEC"+
-            "\uFBED\u0000\uFBEF\uFBF0\u0000\u0000\u0000\u0000"+
-            "\uFBF5\uFBF6\u0000\u0000\u0000\u0000\uFBFB\u0000"+
-            "\u0000\uFBFE\u0000\u0000\uFC42\u0000\u0000\u0000"+
-            "\u0000\uFC47\uFC48\uFC49\uFC4A\uFC4B\u0000\uFC4D"+
-            "\uFC4E\u0000\uFC50\u0000\u0000\uFC53\u0000\u0000"+
-            "\uFC56\u0000\u0000\uFC59\uFC5A\uFC5B\uFC5C\uFC5D"+
-            "\u0000\uFC5F\uFC60\u0000\u0000\uFC63\uFC64\uFC65"+
-            "\uFC66\u0000\uFC68\u0000\uFC6A\u0000\u0000\u0000"+
-            "\uFC6E\uFC6F\uFC70\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFC77\uFC78\u0000\u0000\uFC7B\u0000\u0000"+
-            "\uFC7E\uFCA1\u0000\uFCA3\uFCA4\u0000\uFCA6\uFCA7"+
-            "\uFCA8\u0000\u0000\u0000\u0000\uFCAD\u0000\uFCAF"+
-            "\u0000\uFCB1\u0000\uFCB3\uFCB4\u0000\u0000\uFCB7"+
-            "\uFCB8\u0000\u0000\uFCBB\u0000\uFCBD\uFCBE\u0000"+
-            "\u0000\u0000\uFCC2\u0000\uFCC4\u0000\u0000\uFCC7"+
-            "\uFCC8\u0000\u0000\u0000\uFCCC\u0000\uFCCE\uFCCF"+
-            "\u0000\uFCD1\uFCD2\u0000\u0000\u0000\uFCD6\u0000"+
-            "\uFCD8\uFCD9\u0000\uFCDB\uFCDC\u0000\uFCDE\u0000"+
-            "\uFCE0\u0000\u0000\uFCE3\uFCE4\uFCE5\uFCE6\uFCE7"+
-            "\u0000\uFCE9\u0000\u0000\uFCEC\uFCED\uFCEE\u0000"+
-            "\uFCF0\u0000\u0000\u0000\uFCF4\uFCF5\u0000\uFCF7"+
-            "\u0000\u0000\u0000\u0000\uFCFC\uFCFD\u0000\uFD40"+
-            "\u0000\u0000\uFD43\u0000\u0000\uFD46\u0000\u0000"+
-            "\uFD49\uFD4A\uFD4B\uFD4C\u0000\u0000\uFD4F\uFD50"+
-            "\u0000\u0000\uFD53\uFD54\u0000\u0000\u0000\uFD58"+
-            "\uFD59\u0000\uFD5B\u0000\uFD5D\u0000\u0000\uFD60"+
-            "\uFD61\u0000\uFD63\u0000\u0000\u0000\uFD67\u0000"+
-            "\uFD69\uFD6A\uFD6B\uFD6C\u0000\uFD6E\u0000\uFD70"+
-            "\u0000\u0000\uFD73\uFD74\uFD75\u0000\u0000\u0000"+
-            "\uFD79\uFD7A\uFD7B\uFD7C\uFD7D\uFD7E\uFDA1\uFDA2"+
-            "\uFDA3\uFDA4\u0000\uFDA6\uFDA7\u0000\u0000\uFDAA"+
-            "\uFDAB\uFDAC\u0000\u0000\u0000\u0000\uFDB1\uFDB2"+
-            "\uFDB3\u0000\uFDB5\u0000\u0000\u0000\u0000\uFDBA"+
-            "\u0000\uFDBC\u0000\uFDBE\u0000\u0000\u0000\uFDC2"+
-            "\u0000\uFDC4\u0000\uFDC6\u0000\uFDC8\uFDC9\uFDCA"+
-            "\u0000\u0000\u0000\uFDCE\u0000\uFDD0\uFDD1\u0000"+
-            "\uFDD3\u0000\uFDD5\uFDD6\uFDD7\uFDD8\uFDD9\uFDDA"+
-            "\u0000\uFDDC\uFDDD\uFDDE\uFDDF\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFDE8\uFDE9\u0000"+
-            "\u0000\uFDEC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFDF3\u0000\u0000\uFDF6\u0000\uFDF8\uFDF9\uFDFA"+
-            "\u0000\uFDFC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFE46\u0000\u0000\uFE49\u0000\u0000"+
-            "\u0000\uFE4D\uFE4E\u0000\u0000\u0000\u0000\u0000"+
-            "\uFE54\uFE55\uFE56\uFE57\u0000\u0000\u0000\u0000"+
-            "\uFE5C\uFE5D\u0000\u0000\uFE60\uFE61\uFE62\u0000"+
-            "\uFE64\uFE65\uFE66\uFE67\u0000\u0000\u0000\uFE6B"+
-            "\u0000\uFE6D\uFE6E\u0000\uFE70\u0000\uFE72\u0000"+
-            "\u0000\u0000\u0000\u0000\uFE78\u0000\u0000\u0000"+
-            "\u0000\uFE7D\uFE7E\uFEA1\uFEA2\uFEA3\u0000\uFEA5"+
-            "\uFEA6\u0000\uFEA8\u0000\u0000\u0000\uFEAC\uFEAD"+
-            "\u0000\uFEAF\u0000\u0000\u0000\u0000\u0000\uFEB5"+
-            "\uFEB6\uFEB7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFEC2\u0000\u0000\uFEC5"+
-            "\uFEC6\uFEC7\u0000\u0000\u0000\u0000\uFECC\u0000"+
-            "\uFECE\uFECF\uFED0\u0000\u0000\u0000\u0000\uFED5"+
-            "\u0000\uFED7\u0000\uFED9\uFEDA\uFEDB\u0000\u0000"+
-            "\uFEDE\uFEDF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFEE6\u0000\u0000\u0000\uFEEA\u0000\u0000\uFEED"+
-            "\uFEEE\uFEEF\u0000\u0000\u0000\u0000\uFEF4\u0000"+
-            "\uFEF6\u0000\u0000\u0000\uFEFA\uFEFB\u0000\uFEFD"+
-            "\u0000\u8E40\u0000\u8E42\u0000\u8E44\u8E45\u0000"+
-            "\u8E47\u0000\u0000\u8E4A\u8E4B\u0000\u0000\u8E4E"+
-            "\u0000\u0000\u0000\u0000\u0000\u8E54\u8E55\u0000"+
-            "\u0000\u0000\u8E59\u0000\u8E5B\u0000\u0000\u0000"+
-            "\u8E5F\u8E60\u0000\u0000\u0000\u8E64\u8E65\u0000"+
-            "\u0000\u0000\u0000\u8E6A\u8E6B\u8E6C\u0000\u0000"+
-            "\u0000\u0000\u8E71\u0000\u0000\u8E74\u0000\u0000"+
-            "\u8E77\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8EA2\u8EA3\u0000\u8EA5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8EAC\u8EAD\u0000\u8EAF\u0000"+
-            "\u8EB1\u0000\u8EB3\u0000\u8EB5\u8EB6\u0000\u0000"+
-            "\u8EB9\u0000\u0000\u0000\u0000\u0000\u0000\u8EC0"+
-            "\u0000\u0000\u8EC3\u0000\u8EC5\u8EC6\u8EC7\u8EC8"+
-            "\u8EC9\u8ECA\u0000\u8ECC\u0000\u0000\u0000\u0000"+
-            "\u0000\u8ED2\u8ED3\u0000\u0000\u0000\u8ED7\u8ED8"+
-            "\u8ED9\u8EDA\u8EDB\u0000\u0000\u8EDE\u0000\u0000"+
-            "\u0000\u8EE2\u0000\u8EE4\u8EE5\u0000\u8EE7\u0000"+
-            "\u8EE9\u0000\u8EEB\u8EEC\u8EED\u0000\u8EEF\u8EF0"+
-            "\u8EF1\u0000\u8EF3\u0000\u0000\u8EF6\u8EF7\u8EF8"+
-            "\u8EF9\u8EFA\u0000\u0000\u8EFD\u8EFE\u0000\u0000"+
-            "\u0000\u8F43\u8F44\u8F45\u8F46\u8F47\u0000\u0000"+
-            "\u0000\u8F4B\u8F4C\u8F4D\u8F4E\u8F4F\u8F50\u0000"+
-            "\u0000\u0000\u8F54\u8F55\u0000\u0000\u0000\u8F59"+
-            "\u8F5A\u0000\u0000\u8F5D\u8F5E\u8F5F\u0000\u8F61"+
-            "\u0000\u8F63\u8F64\u0000\u0000\u8F67\u0000\u0000"+
-            "\u8F6A\u8F6B\u8F6C\u0000\u0000\u0000\u8F70\u0000"+
-            "\u0000\u8F73\u8F74\u8F75\u8F76\u0000\u0000\u8F79"+
-            "\u8F7A\u0000\u8F7C\u0000\u0000\u8FA1\u8FA2\u0000"+
-            "\u8FA4\u0000\u8FA6\u8FA7\u8FA8\u8FA9\u0000\u8FAB"+
-            "\u8FAC\u0000\u8FAE\u0000\u0000\u8FB1\u0000\u8FB3"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8FBA\u0000"+
-            "\u0000\u8FBD\u8FBE\u8FBF\u0000\u0000\u8FC2\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FC8\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8FCF\u0000\u8FD1\u8FD2\u0000"+
-            "\u0000\u0000\u0000\u8FD7\u0000\u8FD9\u8FDA\u8FDB"+
-            "\u8FDC\u0000\u0000\u0000\u8FE0\u8FE1\u0000\u0000"+
-            "\u0000\u0000\u8FE6\u0000\u0000\u0000\u8FEA\u8FEB"+
-            "\u0000\u0000\u8FEE\u8FEF\u8FF0\u8FF1\u8FF2\u0000"+
-            "\u8FF4\u8FF5\u0000\u0000\u8FF8\u0000\u0000\u0000"+
-            "\u8FFC\u8FFD\u0000\u0000\u9041\u9042\u9043\u9044"+
-            "\u9045\u9046\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u904E\u904F\u0000\u0000\u9052\u9053\u0000"+
-            "\u9055\u9056\u9057\u9058\u0000\u905A\u0000\u905C"+
-            "\u905D\u905E\u905F\u9060\u9061\u0000\u9063\u9064"+
-            "\u0000\u9066\u9067\u0000\u9069\u0000\u906B\u0000"+
-            "\u0000\u0000\u906F\u0000\u0000\u0000\u9073\u9074"+
-            "\u0000\u0000\u0000\u0000\u9079\u0000\u907B\u907C"+
-            "\u907D\u907E\u90A1\u0000\u0000\u90A4\u90A5\u0000"+
-            "\u0000\u90A8\u90A9\u90AA\u0000\u90AC\u90AD\u90AE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u90B7\u90B8\u90B9\u90BA\u90BB\u90BC\u0000\u0000"+
-            "\u0000\u90C0\u0000\u90C2\u0000\u0000\u0000\u90C6"+
-            "\u0000\u0000\u90C9\u90CA\u90CB\u90CC\u90CD\u90CE"+
-            "\u90CF\u90D0\u90D1\u0000\u0000\u0000\u90D5\u90D6"+
-            "\u90D7\u90D8\u0000\u0000\u0000\u0000\u90DD\u0000"+
-            "\u0000\u90E0\u0000\u0000\u0000\u90E4\u90E5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90ED\u0000"+
-            "\u0000\u90F0\u0000\u0000\u90F3\u90F4\u90F5\u0000"+
-            "\u0000\u0000\u0000\u90FA\u90FB\u90FC\u90FD\u90FE"+
-            "\u9140\u0000\u0000\u0000\u0000\u9145\u9146\u9147"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u914E\u914F"+
-            "\u9150\u9151\u0000\u0000\u0000\u0000\u0000\u9157"+
-            "\u9158\u9159\u915A\u0000\u0000\u915D\u0000\u915F"+
-            "\u0000\u0000\u9162\u0000\u0000\u9165\u9166\u9167"+
-            "\u0000\u0000\u916A\u0000\u916C\u0000\u916E\u0000"+
-            "\u0000\u0000\u9172\u0000\u9174\u9175\u9176\u9177"+
-            "\u9178\u9179\u0000\u0000\u917C\u0000\u0000\u0000"+
-            "\u91A2\u91A3\u91A4\u91A5\u91A6\u0000\u91A8\u91A9"+
-            "\u0000\u0000\u0000\u0000\u91AE\u0000\u0000\u91B1"+
-            "\u0000\u91B3\u91B4\u91B5\u0000\u91B7\u91B8\u0000"+
-            "\u0000\u91BB\u0000\u91BD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u91C5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u91CD\u91CE\u91CF\u0000\u91D1"+
-            "\u91D2\u91D3\u0000\u91D5\u91D6\u0000\u91D8\u91D9"+
-            "\u0000\u0000\u91DC\u0000\u0000\u0000\u91E0\u91E1"+
-            "\u0000\u91E3\u0000\u0000\u0000\u91E7\u91E8\u0000"+
-            "\u91EA\u0000\u91EC\u91ED\u91EE\u91EF\u91F0\u91F1"+
-            "\u91F2\u91F3\u91F4\u91F5\u91F6\u91F7\u91F8\u91F9"+
-            "\u91FA\u0000\u91FC\u91FD\u91FE\u9240\u9241\u0000"+
-            "\u9243\u0000\u0000\u9246\u9247\u9248\u9249\u924A"+
-            "\u924B\u924C\u924D\u924E\u924F\u0000\u9251\u9252"+
-            "\u9253\u0000\u9255\u0000\u9257\u9258\u9259\u925A"+
-            "\u925B\u925C\u0000\u0000\u925F\u0000\u9261\u9262"+
-            "\u9263\u0000\u9265\u0000\u0000\u0000\u9269\u926A"+
-            "\u0000\u926C\u926D\u0000\u0000\u9270\u0000\u9272"+
-            "\u9273\u9274\u9275\u9276\u9277\u0000\u9279\u927A"+
-            "\u927B\u0000\u927D\u0000\u0000\u0000\u0000\u0000"+
-            "\u92A5\u92A6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u92B4"+
-            "\u92B5\u92B6\u0000\u92B8\u92B9\u0000\u0000\u92BC"+
-            "\u92BD\u92BE\u92BF\u92C0\u0000\u92C2\u92C3\u0000"+
-            "\u0000\u92C6\u0000\u0000\u92C9\u0000\u92CB\u92CC"+
-            "\u92CD\u92CE\u0000\u92D0\u0000\u92D2\u0000\u0000"+
-            "\u0000\u0000\u92D7\u92D8\u92D9\u0000\u92DB\u0000";
-
-        private final static String innerIndex8=
-            "\u92DD\u0000\u92DF\u0000\u92E1\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u92E9\u0000\u0000\u92EC"+
-            "\u92ED\u92EE\u92EF\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u92F6\u92F7\u92F8\u92F9\u92FA\u0000\u0000"+
-            "\u0000\u92FE\u0000\u9341\u9342\u0000\u0000\u9345"+
-            "\u0000\u9347\u0000\u9349\u0000\u934B\u0000\u0000"+
-            "\u0000\u0000\u9350\u9351\u9352\u0000\u0000\u9355"+
-            "\u9356\u9357\u9358\u9359\u935A\u935B\u0000\u935D"+
-            "\u935E\u935F\u9360\u0000\u0000\u9363\u9364\u0000"+
-            "\u9366\u0000\u0000\u9369\u0000\u0000\u936C\u936D"+
-            "\u0000\u936F\u9370\u9371\u9372\u9373\u0000\u9375"+
-            "\u9376\u9377\u0000\u0000\u0000\u937B\u937C\u937D"+
-            "\u937E\u0000\u93A2\u93A3\u93A4\u93A5\u93A6\u93A7"+
-            "\u93A8\u0000\u93AA\u0000\u0000\u0000\u93AE\u93AF"+
-            "\u0000\u93B1\u0000\u0000\u0000\u93B5\u93B6\u93B7"+
-            "\u93B8\u93B9\u0000\u93BB\u93BC\u93BD\u0000\u93BF"+
-            "\u93C0\u93C1\u93C2\u93C3\u93C4\u93C5\u93C6\u93C7"+
-            "\u93C8\u0000\u93CA\u93CB\u93CC\u93CD\u93CE\u93CF"+
-            "\u93D0\u0000\u93D2\u0000\u93D4\u0000\u93D6\u93D7"+
-            "\u0000\u93D9\u93DA\u0000\u93DC\u93DD\u93DE\u93DF"+
-            "\u93E0\u93E1\u93E2\u0000\u93E4\u0000\u93E6\u0000"+
-            "\u0000\u93E9\u0000\u93EB\u93EC\u93ED\u0000\u0000"+
-            "\u0000\u0000\u93F2\u0000\u0000\u0000\u93F6\u0000"+
-            "\u0000\u93F9\u93FA\u0000\u0000\u93FD\u93FE\u0000"+
-            "\u9441\u9442\u0000\u0000\u0000\u9446\u0000\u9448"+
-            "\u9449\u0000\u944B\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9452\u9453\u0000\u0000\u0000\u0000\u9458"+
-            "\u9459\u0000\u945B\u945C\u0000\u945E\u945F\u9460"+
-            "\u9461\u9462\u9463\u9464\u9465\u9466\u9467\u0000"+
-            "\u9469\u0000\u0000\u0000\u0000\u946E\u946F\u9470"+
-            "\u0000\u9472\u9473\u9474\u9475\u0000\u0000\u9478"+
-            "\u9479\u0000\u947B\u947C\u947D\u947E\u94A1\u94A2"+
-            "\u94A3\u94A4\u94A5\u0000\u0000\u0000\u94A9\u94AA"+
-            "\u0000\u94AC\u94AD\u0000\u94AF\u0000\u0000\u0000"+
-            "\u94B3\u94B4\u94B5\u94B6\u0000\u0000\u94B9\u94BA"+
-            "\u94BB\u94BC\u94BD\u94BE\u0000\u94C0\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u94C7\u94C8\u94C9\u0000"+
-            "\u0000\u0000\u0000\u94CE\u0000\u0000\u94D1\u94D2"+
-            "\u94D3\u0000\u0000\u94D6\u94D7\u94D8\u94D9\u94DA"+
-            "\u94DB\u0000\u94DD\u94DE\u94DF\u94E0\u0000\u0000"+
-            "\u94E3\u94E4\u94E5\u0000\u94E7\u0000\u0000\u94EA"+
-            "\u0000\u94EC\u0000\u0000\u94EF\u94F0\u94F1\u94F2"+
-            "\u0000\u94F4\u94F5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u94FE\u9540\u9541\u0000\u9543"+
-            "\u9544\u9545\u9546\u0000\u9548\u9549\u0000\u954B"+
-            "\u954C\u954D\u0000\u0000\u9550\u9551\u9552\u0000"+
-            "\u9554\u0000\u0000\u0000\u0000\u9559\u955A\u955B"+
-            "\u955C\u0000\u955E\u0000\u9560\u9561\u9562\u0000"+
-            "\u9564\u0000\u0000\u0000\u9568\u0000\u956A\u0000"+
-            "\u0000\u956D\u0000\u956F\u0000\u9571\u0000\u9573"+
-            "\u9574\u0000\u9576\u0000\u9578\u0000\u957A\u957B"+
-            "\u0000\u957D\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u95A8\u0000\u95AA\u95AB\u95AC\u95AD"+
-            "\u95AE\u95AF\u95B0\u0000\u95B2\u95B3\u95B4\u0000"+
-            "\u0000\u95B7\u0000\u0000\u95BA\u0000\u0000\u0000"+
-            "\u95BE\u0000\u0000\u0000\u95C2\u0000\u0000\u0000"+
-            "\u95C6\u95C7\u0000\u0000\u95CA\u0000\u0000\u95CD"+
-            "\u0000\u0000\u95D0\u95D1\u0000\u0000\u95D4\u0000"+
-            "\u95D6\u95D7\u0000\u0000\u0000\u95DB\u0000\u0000"+
-            "\u95DE\u95DF\u95E0\u0000\u95E2\u95E3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u95EA\u0000\u95EC\u95ED"+
-            "\u95EE\u95EF\u95F0\u95F1\u0000\u95F3\u95F4\u95F5"+
-            "\u95F6\u95F7\u95F8\u95F9\u0000\u0000\u95FC\u0000"+
-            "\u95FE\u0000\u9641\u9642\u9643\u0000\u0000\u9646"+
-            "\u9647\u9648\u9649\u0000\u0000\u0000\u964D\u0000"+
-            "\u964F\u0000\u0000\u0000\u9653\u0000\u9655\u9656"+
-            "\u0000\u9658\u0000\u965A\u0000\u965C\u965D\u965E"+
-            "\u965F\u0000\u9661\u9662\u0000\u9664\u0000\u0000"+
-            "\u0000\u9668\u9669\u0000\u966B\u0000\u0000\u966E"+
-            "\u966F\u0000\u0000\u0000\u0000\u9674\u9675\u9676"+
-            "\u0000\u9678\u9679\u0000\u0000\u967C\u0000\u967E"+
-            "\u96A1\u0000\u96A3\u96A4\u0000\u96A6\u0000\u96A8"+
-            "\u0000\u96AA\u96AB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u96B4\u0000\u96B6\u96B7\u0000"+
-            "\u96B9\u96BA\u0000\u96BC\u0000\u96BE\u96BF\u96C0"+
-            "\u96C1\u0000\u0000\u96C4\u96C5\u96C6\u0000\u96C8"+
-            "\u96C9\u96CA\u96CB\u0000\u0000\u96CE\u96CF\u96D0"+
-            "\u0000\u96D2\u96D3\u96D4\u96D5\u96D6\u0000\u0000"+
-            "\u0000\u96DA\u0000\u0000\u0000\u0000\u96DF\u0000"+
-            "\u96E1\u0000\u0000\u0000\u0000\u96E6\u96E7\u96E8"+
-            "\u96E9\u0000\u0000\u0000\u0000\u0000\u0000\u96F0"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u96F7\u96F8"+
-            "\u0000\u96FA\u96FB\u0000\u96FD\u96FE\u0000\u0000"+
-            "\u0000\u9743\u9744\u9745\u9746\u9747\u0000\u0000"+
-            "\u974A\u974B\u0000\u974D\u974E\u974F\u9750\u9751"+
-            "\u0000\u9753\u9754\u0000\u9756\u9757\u9758\u9759"+
-            "\u975A\u0000\u0000\u975D\u0000\u975F\u9760\u9761"+
-            "\u9762\u0000\u0000\u0000\u9766\u9767\u9768\u9769"+
-            "\u976A\u976B\u976C\u976D\u0000\u976F\u0000\u9771"+
-            "\u0000\u0000\u0000\u9775\u0000\u9777\u9778\u0000"+
-            "\u977A\u977B\u977C\u977D\u0000\u97A1\u97A2\u0000"+
-            "\u97A4\u97A5\u97A6\u0000\u0000\u97A9\u0000\u97AB"+
-            "\u97AC\u97AD\u97AE\u0000\u97B0\u97B1\u97B2\u0000"+
-            "\u97B4\u97B5\u97B6\u0000\u97B8\u97B9\u97BA\u0000"+
-            "\u0000\u97BD\u97BE\u0000\u97C0\u97C1\u97C2\u97C3"+
-            "\u0000\u97C5\u97C6\u97C7\u0000\u97C9\u97CA\u0000"+
-            "\u97CC\u97CD\u0000\u97CF\u0000\u0000\u97D2\u97D3"+
-            "\u97D4\u0000\u0000\u97D7\u97D8\u0000\u97DA\u97DB"+
-            "\u97DC\u97DD\u97DE\u0000\u0000\u97E1\u0000\u97E3"+
-            "\u97E4\u0000\u0000\u97E7\u97E8\u0000\u97EA\u97EB"+
-            "\u97EC\u97ED\u97EE\u0000\u0000\u97F1\u97F2\u97F3"+
-            "\u97F4\u97F5\u97F6\u97F7\u97F8\u0000\u97FA\u97FB"+
-            "\u0000\u97FD\u97FE\u9840\u9841\u9842\u9843\u0000"+
-            "\u9845\u0000\u9847\u0000\u9849\u984A\u984B\u0000"+
-            "\u0000\u984E\u0000\u0000\u9851\u9852\u9853\u0000"+
-            "\u9855\u9856\u0000\u0000\u0000\u985A\u0000\u0000"+
-            "\u985D\u0000\u985F\u9860\u9861\u9862\u0000\u9864"+
-            "\u9865\u0000\u9867\u0000\u9869\u986A\u986B\u0000"+
-            "\u986D\u986E\u0000\u0000\u9871\u9872\u0000\u9874"+
-            "\u9875\u0000\u0000\u0000\u9879\u0000\u987B\u987C"+
-            "\u0000\u0000\u0000\u98A2\u98A3\u98A4\u0000\u98A6"+
-            "\u98A7\u98A8\u98A9\u98AA\u0000\u98AC\u0000\u0000"+
-            "\u0000\u98B0\u98B1\u0000\u0000\u0000\u0000\u98B6"+
-            "\u0000\u0000\u98B9\u0000\u0000\u98BC\u98BD\u0000"+
-            "\u0000\u98C0\u0000\u0000\u98C3\u0000\u98C5\u0000"+
-            "\u0000\u0000\u0000\u0000\u98CB\u98CC\u98CD\u98CE"+
-            "\u0000\u98D0\u98D1\u0000\u0000\u0000\u0000\u98D6"+
-            "\u0000\u0000\u98D9\u0000\u98DB\u0000\u98DD\u0000"+
-            "\u98DF\u0000\u0000\u0000\u0000\u98E4\u0000\u98E6"+
-            "\u0000\u98E8\u98E9\u0000\u98EB\u98EC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98F4\u0000\u0000"+
-            "\u0000\u0000\u0000\u98FA\u0000\u0000\u0000\u98FE"+
-            "\u9940\u0000\u0000\u0000\u0000\u0000\u9946\u0000"+
-            "\u9948\u0000\u0000\u994B\u0000\u0000\u994E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9955\u9956\u0000"+
-            "\u0000\u9959\u0000\u995B\u0000\u0000\u0000\u995F"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9967"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u996E\u0000"+
-            "\u0000\u0000\u0000\u9973\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u997A\u997B\u0000\u0000\u0000\u99A1"+
-            "\u0000\u0000\u0000\u99A5\u0000\u99A7\u0000\u0000"+
-            "\u0000\u0000\u0000\u99AD\u0000\u0000\u0000\u0000"+
-            "\u0000\u99B3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u99BC\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u99C3\u0000\u0000\u0000\u99C7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99CE\u99CF\u0000\u0000"+
-            "\u0000\u0000\u0000\u99D5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99DE\u0000\u0000\u99E1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99E9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u99F5\u0000\u0000\u99F8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A48\u9A49\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A50\u0000\u0000"+
-            "\u0000\u0000\u9A55\u0000\u0000\u9A58\u0000\u9A5A"+
-            "\u0000\u9A5C\u0000\u0000\u0000\u9A60\u0000\u0000"+
-            "\u9A63\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9A6E\u0000\u9A70\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9A79\u0000"+
-            "\u9A7B\u9A7C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9AB4"+
-            "\u9AB5\u9AB6\u0000\u0000\u0000\u9ABA\u0000\u0000"+
-            "\u9ABD\u9ABE\u9ABF\u9AC0\u9AC1\u0000\u0000\u9AC4"+
-            "\u9AC5\u9AC6\u0000\u9AC8\u9AC9\u0000\u9ACB\u9ACC"+
-            "\u9ACD\u9ACE\u9ACF\u0000\u9AD1\u0000\u9AD3\u9AD4"+
-            "\u9AD5\u9AD6\u9AD7\u9AD8\u0000\u0000\u0000\u9ADC"+
-            "\u9ADD\u9ADE\u9ADF\u9AE0\u9AE1\u0000\u9AE3\u0000"+
-            "\u9AE5\u9AE6\u9AE7\u0000\u9AE9\u9AEA\u9AEB\u9AEC"+
-            "\u9AED\u9AEE\u9AEF\u9AF0\u0000\u0000\u9AF3\u9AF4"+
-            "\u9AF5\u0000\u9AF7\u9AF8\u9AF9\u9AFA\u0000\u0000"+
-            "\u9AFD\u9AFE\u9B40\u9B41\u9B42\u9B43\u9B44\u9B45"+
-            "\u0000\u9B47\u9B48\u0000\u0000\u9B4B\u0000\u9B4D"+
-            "\u9B4E\u9B4F\u9B50\u9B51\u9B52\u9B53\u0000\u9B55"+
-            "\u9B56\u9B57\u0000\u9B59\u0000\u9B5B\u0000\u9B5D"+
-            "\u0000\u0000\u9B60\u0000\u9B62\u9B63\u9B64\u9B65"+
-            "\u9B66\u9B67\u9B68\u9B69\u9B6A\u9B6B\u9B6C\u9B6D"+
-            "\u9B6E\u9B6F\u0000\u0000\u0000\u9B73\u9B74\u9B75"+
-            "\u0000\u9B77\u0000\u9B79\u9B7A\u0000\u9B7C\u0000"+
-            "\u0000\u0000\u9BA2\u9BA3\u9BA4\u9BA5\u9BA6\u9BA7"+
-            "\u9BA8\u9BA9\u9BAA\u9BAB\u9BAC\u9BAD\u9BAE\u9BAF"+
-            "\u9BB0\u9BB1\u9BB2\u9BB3\u0000\u9BB5\u0000\u9BB7"+
-            "\u9BB8\u9BB9\u9BBA\u9BBB\u0000\u9BBD\u9BBE\u9BBF"+
-            "\u9BC0\u9BC1\u9BC2\u9BC3\u0000\u9BC5\u0000\u9BC7"+
-            "\u9BC8\u9BC9\u0000\u9BCB\u9BCC\u0000\u9BCE\u9BCF"+
-            "\u9BD0\u0000\u9BD2\u0000\u0000\u0000\u9BD6\u9BD7"+
-            "\u9BD8\u9BD9\u0000\u9BDB\u9BDC\u9BDD\u0000\u9BDF"+
-            "\u9BE0\u9BE1\u9BE2\u9BE3\u9BE4\u9BE5\u9BE6\u9BE7"+
-            "\u9BE8\u0000\u9BEA\u9BEB\u0000\u9BED\u9BEE\u9BEF"+
-            "\u9BF0\u9BF1\u9BF2\u9BF3\u0000\u0000\u0000\u9BF7"+
-            "\u9BF8\u0000\u9BFA\u9BFB\u0000\u9BFD\u9BFE\u0000"+
-            "\u9C41\u0000\u9C43\u9C44\u0000\u9C46\u9C47\u9C48"+
-            "\u9C49\u9C4A\u9C4B\u9C4C\u9C4D\u0000\u9C4F\u0000"+
-            "\u0000\u9C52\u0000\u0000\u9C55\u9C56\u0000\u9C58"+
-            "\u0000\u0000\u9C5B\u9C5C\u0000\u9C5E\u9C5F\u9C60"+
-            "\u9C61\u0000\u9C63\u0000\u9C65\u9C66\u9C67\u0000"+
-            "\u9C69\u0000\u0000\u9C6C\u0000\u9C6E\u9C6F\u9C70"+
-            "\u9C71\u0000\u9C73\u9C74\u0000\u9C76\u0000\u9C78"+
-            "\u9C79\u9C7A\u0000\u0000\u9C7D\u0000\u9CA1\u9CA2"+
-            "\u9CA3\u9CA4\u9CA5\u9CA6\u9CA7\u0000\u9CA9\u9CAA"+
-            "\u0000\u9CAC\u9CAD\u0000\u0000\u9CB0\u9CB1\u0000"+
-            "\u0000\u9CB4\u9CB5\u9CB6\u0000\u9CB8\u9CB9\u9CBA"+
-            "\u9CBB\u0000\u0000\u9CBE\u0000\u9CC0\u9CC1\u0000"+
-            "\u9CC3\u9CC4\u0000\u9CC6\u9CC7\u9CC8\u9CC9\u9CCA"+
-            "\u9CCB\u0000\u0000\u9CCE\u9CCF\u0000\u9CD1\u9CD2"+
-            "\u9CD3\u9CD4\u9CD5\u9CD6\u9CD7\u9CD8\u0000\u0000"+
-            "\u9CDB\u0000\u9CDD\u0000\u9CDF\u0000\u9CE1\u0000"+
-            "\u0000\u0000\u9CE5\u9CE6\u9CE7\u9CE8\u9CE9\u9CEA"+
-            "\u0000\u9CEC\u9CED\u0000\u0000\u9CF0\u0000\u9CF2"+
-            "\u0000\u0000\u0000\u9CF6\u9CF7\u9CF8\u0000\u9CFA"+
-            "\u9CFB\u9CFC\u9CFD\u9CFE\u9D40\u9D41\u9D42\u9D43"+
-            "\u9D44\u9D45\u9D46\u9D47\u9D48\u9D49\u0000\u9D4B"+
-            "\u0000\u0000\u9D4E\u9D4F\u9D50\u9D51\u9D52\u9D53"+
-            "\u9D54\u0000\u9D56\u0000\u9D58\u9D59\u0000\u9D5B"+
-            "\u9D5C\u9D5D\u9D5E\u9D5F\u0000\u0000\u0000\u9D63"+
-            "\u9D64\u9D65\u9D66\u9D67\u9D68\u9D69\u9D6A\u9D6B"+
-            "\u9D6C\u9D6D\u9D6E\u9D6F\u0000\u9D71\u9D72\u9D73"+
-            "\u0000\u9D75\u0000\u9D77\u9D78\u0000\u9D7A\u9D7B"+
-            "\u9D7C\u0000\u0000\u0000\u9DA2\u0000\u9DA4\u9DA5"+
-            "\u0000\u0000\u0000\u0000\u9DAA\u9DAB\u9DAC\u9DAD"+
-            "\u0000\u9DAF\u9DB0\u9DB1\u9DB2\u9DB3\u9DB4\u9DB5"+
-            "\u9DB6\u9DB7\u9DB8\u9DB9\u0000\u9DBB\u9DBC\u0000"+
-            "\u9DBE\u0000\u0000\u9DC1\u9DC2\u0000\u0000\u9DC5"+
-            "\u9DC6\u0000\u0000\u9DC9\u0000\u9DCB\u9DCC\u9DCD"+
-            "\u9DCE\u0000\u0000\u0000\u9DD2\u0000\u9DD4\u0000"+
-            "\u0000\u9DD7\u9DD8\u9DD9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9DED"+
-            "\u9DEE\u0000\u0000\u0000\u9DF2\u9DF3\u0000\u0000"+
-            "\u0000\u0000\u0000\u9DF9\u9DFA\u0000\u9DFC\u9DFD"+
-            "\u9DFE\u9E40\u0000\u0000\u0000\u9E44\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9E4F\u0000\u9E51\u0000\u9E53\u9E54\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9E5B\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9E63\u9E64\u0000\u9E66"+
-            "\u0000\u0000\u9E69\u0000\u9E6B\u9E6C\u9E6D\u9E6E"+
-            "\u9E6F\u9E70\u0000\u9E72\u0000\u9E74\u9E75\u9E76"+
-            "\u9E77\u0000\u9E79\u9E7A\u9E7B\u9E7C\u9E7D\u9E7E"+
-            "\u0000\u0000\u9EA3\u9EA4\u9EA5\u9EA6\u9EA7\u9EA8"+
-            "\u0000\u9EAA\u9EAB\u0000\u9EAD\u9EAE\u0000\u0000"+
-            "\u0000\u0000\u0000\u9EB4\u0000\u0000\u0000\u9EB8"+
-            "\u9EB9\u0000\u9EBB\u9EBC\u0000\u9EBE\u0000\u0000"+
-            "\u0000\u9EC2\u9EC3\u0000\u9EC5\u9EC6\u0000\u9EC8"+
-            "\u9EC9\u0000\u9ECB\u9ECC\u9ECD\u9ECE\u9ECF\u9ED0"+
-            "\u0000\u9ED2\u9ED3\u9ED4\u9ED5\u0000\u0000\u9ED8"+
-            "\u9ED9\u9EDA\u0000\u0000\u9EDD\u9EDE\u9EDF\u9EE0"+
-            "\u0000\u0000\u9EE3\u0000\u9EE5\u0000\u9EE7\u0000"+
-            "\u0000\u0000\u0000\u9EEC\u0000\u9EEE\u0000\u9EF0"+
-            "\u0000\u9EF2\u9EF3\u0000\u0000\u9EF6\u0000\u9EF8"+
-            "\u9EF9\u0000\u9EFB\u9EFC\u0000\u0000\u0000\u0000"+
-            "\u0000\u9F43\u0000\u0000\u9F46\u9F47\u9F48\u0000"+
-            "\u9F4A\u9F4B\u9F4C\u9F4D\u0000\u0000\u9F50\u0000"+
-            "\u0000\u9F53\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9F68\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9F70\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FA5\u0000\u0000\u0000\u0000\u9FAA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FB3"+
-            "\u0000\u9FB5\u0000\u0000\u0000\u0000\u0000\u9FBB"+
-            "\u0000\u0000\u9FBE\u9FBF\u0000\u9FC1\u0000\u0000"+
-            "\u0000\u9FC5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9FD1\u0000\u0000"+
-            "\u0000\u0000\u0000\u9FD7\u0000\u9FD9\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9FEC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FF5\u0000\u0000\u0000\u9FF9\u0000\u0000"+
-            "\u0000\u0000\u0000\uA040\u0000\u0000\u0000\u0000"+
-            "\uA045\u0000\uA047\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA04F\u0000\u0000\u0000\uA053\u0000"+
-            "\uA055\uA056\u0000\u0000\uA059\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA068\u0000\uA06A\u0000\u0000"+
-            "\uA06D\u0000\uA06F\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA078\u0000\u0000\uA07B\u0000"+
-            "\u0000\uA07E\u0000\uA0A2\u0000\uA0A4\u0000\u0000"+
-            "\uA0A7\u0000\u0000\u0000\uA0AB\uA0AC\u0000\u0000"+
-            "\u0000\u0000\uA0B1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA0BD\u0000"+
-            "\u0000\u0000\u0000\u0000\uA0C3\u0000\uA0C5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0D0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0D8\u0000\uA0DA\u0000\u0000\u0000\uA0DE"+
-            "\u0000\u0000\u0000\u0000\uA0E3\u0000\u0000\uA0E6"+
-            "\u0000\uA0E8\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED\uA0EE"+
-            "\uA0EF\uA0F0\uA0F1\u0000\uA0F3\uA0F4\uA0F5\uA0F6"+
-            "\uA0F7\uA0F8\uA0F9\u0000\uA0FB\u0000\u0000\uA0FE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8840\u8841\u8842\u8843\u8844"+
-            "\u8845\u8846\u8847\u8848\u8849\u884A\u884B\u884C"+
-            "\u884D\u884E\u884F\u8850\u8851\u8852\u8853\u8854"+
-            "\u8855\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8862\u0000\u8864"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u88A3\u0000\u88A5\u0000"+
-            "\u0000\u0000\u88A9\u88AA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8940\u8941\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u894C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u89B2\u0000\u0000\u0000\u0000\u89B7\u0000\u0000"+
-            "\u89BA\u89BB\u89BC\u0000\u89BE\u89BF\u0000\u0000"+
-            "\u0000\u0000\u0000\u89C5\u0000\u0000\u0000\u0000"+
-            "\u89CA\u89CB\u89CC\u89CD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u89D5\u0000\u89D7\u0000\u0000"+
-            "\u89DA\u89DB\u89DC\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u89E6\u0000\u89E8\u0000"+
-            "\u89EA\u0000\u0000\u89ED\u89EE\u89EF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89F9"+
-            "\u0000\u89FB\u89FC\u0000\u89FE\u8A40\u0000\u0000"+
-            "\u8A43\u8A44\u8A45\u0000\u8A47\u8A48\u8A49\u0000"+
-            "\u8A4B\u8A4C\u8A4D\u8A4E\u0000\u8A50\u8A51\u8A52"+
-            "\u8A53\u8A54\u8A55\u0000\u8A57\u8A58\u8A59\u8A5A"+
-            "\u0000\u0000\u8A5D\u8A5E\u8A5F\u8A60\u8A61\u8A62"+
-            "\u0000\u8A64\u8A65\u8A66\u8A67\u8A68\u8A69\u0000"+
-            "\u8A6B\u8A6C\u8A6D\u8A6E\u8A6F\u8A70\u8A71\u8A72"+
-            "\u0000\u0000\u0000\u8A76\u8A77\u0000\u0000\u8A7A"+
-            "\u8A7B\u8A7C\u8A7D\u8A7E\u8AA1\u8AA2\u8AA3\u0000"+
-            "\u8AA5\u8AA6\u0000\u8AA8\u8AA9\u8AAA\u0000\u8AAC"+
-            "\u8AAD\u8AAE\u0000\u8AB0\u0000\u8AB2\u8AB3\u8AB4"+
-            "\u8AB5\u8AB6\u0000\u8AB8\u8AB9\u0000\u8ABB\u8ABC"+
-            "\u8ABD\u0000\u0000\u8AC0\u0000\u8AC2\u8AC3\u0000"+
-            "\u0000\u0000\u8AC7\u0000\u8AC9\u8ACA\u8ACB\u8ACC"+
-            "\u0000\u8ACE\u8ACF\u8AD0\u8AD1\u8AD2\u8AD3\u8AD4"+
-            "\u8AD5\u0000\u8AD7\u8AD8\u8AD9\u8ADA\u0000\u8ADC"+
-            "\u0000\u0000\u8ADF\u8AE0\u8AE1\u8AE2\u8AE3\u8AE4"+
-            "\u8AE5\u8AE6\u0000\u8AE8\u8AE9\u8AEA\u8AEB\u8AEC"+
-            "\u8AED\u8AEE\u8AEF\u8AF0\u8AF1\u8AF2\u8AF3\u8AF4"+
-            "\u0000\u8AF6\u8AF7\u8AF8\u8AF9\u8AFA\u8AFB\u8AFC"+
-            "\u0000\u8AFE\u8B40\u8B41\u8B42\u8B43\u8B44\u8B45"+
-            "\u8B46\u8B47\u8B48\u8B49\u8B4A\u8B4B\u8B4C\u8B4D"+
-            "\u8B4E\u8B4F\u0000\u0000\u0000\u0000\u0000\u8B55"+
-            "\u0000\u0000\u8B58\u8B59\u0000\u0000\u0000\u0000"+
-            "\u8B5E\u0000\u8B60\u0000\u8B62\u0000\u8B64\u8B65"+
-            "\u8B66\u8B67\u8B68\u8B69\u8B6A\u8B6B\u0000\u8B6D"+
-            "\u8B6E\u8B6F\u8B70\u8B71\u8B72\u8B73\u8B74\u8B75"+
-            "\u8B76\u8B77\u0000\u8B79\u8B7A\u8B7B\u8B7C\u0000"+
-            "\u8B7E\u8BA1\u8BA2\u8BA3\u8BA4\u8BA5\u8BA6\u8BA7"+
-            "\u8BA8\u8BA9\u8BAA\u8BAB\u8BAC\u8BAD\u8BAE\u0000"+
-            "\u0000\u8BB1\u8BB2\u0000\u0000\u8BB5\u8BB6\u0000"+
-            "\u8BB8\u0000\u0000\u8BBB\u8BBC\u0000\u8BBE\u0000"+
-            "\u0000\u0000\u8BC2\u8BC3\u0000\u8BC5\u0000\u0000"+
-            "\u8BC8\u0000\u0000\u0000\u8BCC\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8BD6\u0000"+
-            "\u0000\u0000\u0000\u8BDB\u8BDC\u0000\u8BDE\u0000"+
-            "\u0000\u8BE1\u8BE2\u0000\u0000\u0000\u8BE6\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8BED\u0000\u0000"+
-            "\u0000\u0000\u0000\u8BF3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8BFA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D63"+
-            "\u8D64\u0000\u0000\u8D67\u8D68\u0000\u0000\u0000"+
-            "\u0000\u8D6D\u8D6E\u8D6F\u8D70\u0000\u0000\u0000"+
-            "\u8D74\u0000\u0000\u0000\u8D78\u0000\u0000\u0000"+
-            "\u0000\u8D7D\u0000\u8DA1\u0000\u0000\u0000\u0000"+
-            "\u8DA6\u0000\u0000\u0000\u0000\u8DAB\u0000\u8DAD"+
-            "\u0000\u0000\u8DB0\u0000\u8DB2\u0000\u8DB4\u0000"+
-            "\u0000\u8DB7\u0000\u0000\u8DBA\u8DBB\u8DBC\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DC3\u0000\u8DC5"+
-            "\u0000\u0000\u0000\u0000\u8DCA\u0000\u8DCC\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8DD6\u0000\u0000\u0000\u0000\u8DDB\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DE2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DEB\u8DEC\u0000"+
-            "\u0000\u8DEF\u8DF0\u0000\u0000\u8DF3\u0000\u8DF5"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DFB\u8DFC\u8DFD"+
-            "\u8DFE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC6CD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC879\uC87A\u0000"+
-            "\uC87C\u0000\uC87E\uC8A1\u0000\uC8A3\uC8A4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC8D6\uC8D7\uC8D8\uC8D9\uC8DA\uC8DB\uC8DC\uC8DD"+
-            "\uC8DE\uC8DF\uC8E0\uC8E1\uC8E2\uC8E3\uC8E4\uC8E5"+
-            "\uC8E6\uC8E7\uC8E8\uC8E9\uC8EA\uC8EB\uC8EC\uC8ED"+
-            "\uC8EE\uC8EF\uC8F0\uC8F1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uC8D0\u0000\u0000\u0000\u0000\uC8CF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uC6E4\u0000\uC6E5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uC8CD\u0000\uC8CE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uF9FE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
-        private final static short index1[] = {
-            1, 2, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0,
-            0, 6, 0, 0, 7, 8, 0, 9, 0, 0, 0, 0, 0, 0, 10, 11,
-            12, 0, 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-            26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
-            42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
-            58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
-            74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
-            90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
-            106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 0,
-            0, 0, 0, 137, 138, 139, 140, 141, 142, 0, 0, 0, 0, 0, 0, 143
-        };
-
-        static String index2[] = {
-            innerIndex0,
-            innerIndex1,
-            innerIndex2,
-            innerIndex3,
-            innerIndex4,
-            innerIndex5,
-            innerIndex6,
-            innerIndex7,
-            innerIndex8
-        };
-
-        public Encoder(Charset cs) {
-            super(cs,
-                  index1,
-                  index2);
+       static void initc2b(char[][] c2b, String[] b2cStr, String pua) {
+            // init c2b/c2bSupp from b2cStr and supp
+            int b2Min = 0x40;
+            Arrays.fill(c2b, C2B_UNMAPPABLE);
+            for (int b1 = 0; b1 < 0x100; b1++) {
+                String s = b2cStr[b1];
+                if (s == null)
+                    continue;
+                for (int i = 0; i < s.length(); i++) {
+                    char c = s.charAt(i);
+                    int hi = c >> 8;
+                    if (c2b[hi] == C2B_UNMAPPABLE) {
+                        c2b[hi] = new char[0x100];
+                        Arrays.fill(c2b[hi], (char)UNMAPPABLE_ENCODING);
+                    }
+                    c2b[hi][c & 0xff] = (char)((b1 << 8) | (i + b2Min));
+                }
+            }
+            if (pua != null) {        // add the compatibility pua entries
+                char c = '\ue000';    //first pua character
+                for (int i = 0; i < pua.length(); i++) {
+                    char bb = pua.charAt(i);
+                    if (bb != UNMAPPABLE_DECODING) {
+                        int hi = c >> 8;
+                        if (c2b[hi] == C2B_UNMAPPABLE) {
+                            c2b[hi] = new char[0x100];
+                            Arrays.fill(c2b[hi], (char)UNMAPPABLE_ENCODING);
+                        }
+                        c2b[hi][c & 0xff] = (char)bb;
+                    }
+                    c++;
+                }
+            }
         }
     }
 }
--- a/jdk/src/share/classes/sun/nio/cs/ext/HKSCS_2001.java	Wed Jul 05 17:09:16 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7827 +0,0 @@
-/*
- * Copyright 2003 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-/*
- */
-
-package sun.nio.cs.ext;
-
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetDecoder;
-import java.nio.charset.CharsetEncoder;
-
-public abstract class HKSCS_2001 extends Charset
-{
-
-    public HKSCS_2001() {
-        super("HKSCS-2001", ExtendedCharsets.aliasesFor("HKSCS-2001"));
-    }
-
-    public CharsetDecoder newDecoder() {
-        return new Decoder(this);
-    }
-
-    public CharsetEncoder newEncoder() {
-        return new Encoder(this);
-    }
-
-
-    /**
-     * These accessors are temporarily supplied while sun.io
-     * converters co-exist with the sun.nio.cs.{ext} charset coders
-     * These facilitate sharing of conversion tables between the
-     * two co-existing implementations. When sun.io converters
-     * are made extinct these will be unncessary and should be removed
-     */
-
-    public static short[] getDecoderIndex1() {
-        return Decoder.index1;
-    }
-
-    public static String[] getDecoderIndex2() {
-        return Decoder.index2;
-
-    }
-
-    public static short[] getEncoderIndex1() {
-        return Encoder.index1;
-
-    }
-    public static String[] getEncoderIndex2() {
-        return Encoder.index2;
-
-    }
-
-    protected static class Decoder extends DoubleByteDecoder {
-
-        public Decoder(Charset cs) {
-            super(cs, index1, index2, 0x40, 0xFE);
-        }
-
-        protected char decodeDouble(int c1, int c2) {
-            char result = super.decodeDouble(c1, c2);
-            int offset = (result - 0xD800);
-
-            if (result >= '\uD800' && result <= '\uDFFF') {
-                highSurrogate =
-                    SurrogateMappings.charAt(offset * 2);
-                lowSurrogate =
-                    SurrogateMappings.charAt((offset *2) + 1);
-                return '\uD800';
-            } else {
-                return result;
-            }
-        }
-
-        private final static String innerIndex0=
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uF303"+
-            "\uF304\uF305\uF306\uF307\uD800\uF309\uD801\uD802"+
-            "\uF30C\uF30D\uD803\uD804\uF310\uD805\uF312\uF313"+
-            "\uF314\uF315\uD806\uF317\uF318\u0100\u00C1\u01CD"+
-            "\u00C0\u0112\u00C9\u011A\u00C8\u014C\u00D3\u01D1"+
-            "\u00D2\uF325\u1EBE\uF327\u1EC0\u00CA\u0101\u00E1"+
-            "\u01CE\u00E0\u0251\u0113\u00E9\u011B\u00E8\u012B"+
-            "\u00ED\u01D0\u00EC\u014D\u00F3\u01D2\u00F2\u016B"+
-            "\u00FA\u01D4\u00F9\u01D6\u01D8\u01DA\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\u01DC\u00FC\uF344\u1EBF\uF346\u1EC1\u00EA\u0261"+
-            "\uF34A\uF34B\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uD807\uD808"+
-            "\uFFFD\u650A\uFFFD\uFFFD\u4E3D\u6EDD\u9D4E\u91DF"+
-            "\uFFFD\uFFFD\uD809\u6491\u4F1A\u4F28\u4FA8\u5156"+
-            "\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1"+
-            "\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66"+
-            "\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804"+
-            "\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7"+
-            "\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6"+
-            "\u8BBE\u8BE2\u8F66\u8F67\u8F6E\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u7411"+
-            "\u7CFC\u7DCD\u6946\u7AC9\u5227\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\u918C\u78B8\u915E\u80BC\uFFFD\u8D0B\u80F6"+
-            "\uD80A\uFFFD\uFFFD\u809F\u9EC7\u4CCD\u9DC9\u9E0C"+
-            "\u4C3E\uD80B\uD80C\u9E0A\uD80D\u35C1\uFFFD\u6E9A"+
-            "\u823E\u7519\uFFFD\u4911\u9A6C\u9A8F\u9F99\u7987"+
-            "\uD80E\uD80F\uD810\uD811\u4E24\u4E81\u4E80\u4E87"+
-            "\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088"+
-            "\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205"+
-            "\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0"+
-            "\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3"+
-            "\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598"+
-            "\u553F\u35A5\u35BF\u55D7\u35C5\uD812\u5525\uFFFD"+
-            "\uD813\uD814\uD815\u5590\uD816\u39EC\uD817\u8E46"+
-            "\uD818\uD819\u4053\uD81A\u777A\uD81B\u3A34\u47D5"+
-            "\uD81C\uD81D\uD81E\u64DD\uD81F\uD820\uD821\uD822"+
-            "\u648D\u8E7E\uD823\uD824\uD825\uD826\uD827\uD828"+
-            "\uFFFD\uD829\uD82A\uD82B\u47F4\uD82C\uD82D\u9AB2"+
-            "\u3A67\uD82E\u3FED\u3506\uD82F\uD830\uD831\uD832"+
-            "\u9D6E\u9815\uFFFD\u43D9\uD833\u64B4\u54E3\uD834"+
-            "\uD835\uD836\u39FB\uD837\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uD838\uD839"+
-            "\uD83A\u64EA\uD83B\uD83C\u8E68\uD83D\uD83E\uD83F"+
-            "\uFFFD\u480B\uD840\u3FFA\u5873\uD841\uFFFD\uD842"+
-            "\uD843\uD844\uD845\uD846\u5579\u40BB\u43BA\uFFFD"+
-            "\u4AB4\uD847\uD848\u81AA\u98F5\uD849\u6379\u39FE"+
-            "\uD84A\u8DC0\u56A1\u647C\u3E43\uFFFD\uD84B\uD84C"+
-            "\uD84D\uD84E\uFFFD\uD84F\uD850\u3992\u3A06\uD851"+
-            "\u3578\uD852\uD853\u5652\uD854\uD855\uD856\u34BC"+
-            "\u6C3D\uD857\uFFFD\uFFFD\uD858\uD859\uD85A\uD85B"+
-            "\uD85C\uD85D\uD85E\uD85F\u7F93\uD860\uD861\uD862"+
-            "\u35FB\uD863\uD864\uD865\uD866\u3F93\uD867\uD868"+
-            "\uD869\uD86A\uFFFD\uD86B\uD86C\uD86D\uD86E\uD86F"+
-            "\u3FF9\uD870\u6432\uD871\uD872\uD873\uD874\uD875"+
-            "\uD876\uD877\uD878\u3A18\uD879\uD87A\uD87B\uD87C"+
-            "\uD87D\uD87E\uD87F\uD880\u95AA\u54CC\u82C4\u55B9"+
-            "\uFFFD\uD881\u9C26\u9AB6\uD882\uD883\u7140\u816D"+
-            "\u80EC\u5C1C\uD884\u8134\u3797\u535F\uD885\u91B6"+
-            "\uD886\uD887\uD888\uD889\u35DD\uD88A\u3609\uD88B"+
-            "\u56AF\uD88C\uD88D\uD88E\uD88F\uD890\uD891\uD892"+
-            "\uD893\uD894\uD895\uD896\u5A54\uD897\uD898\uD899"+
-            "\uD89A\u579C\uD89B\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uD89C\uD89D\uD89E"+
-            "\uD89F\uD8A0\u3703\uD8A1\uD8A2\uD8A3\uD8A4\uD8A5"+
-            "\uD8A6\uD8A7\uD8A8\u5899\u5268\u361A\uD8A9\u7BB2"+
-            "\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\uD8AA"+
-            "\uD8AB\u55FB\u35F2\u5689\u4E28\u5902\uD8AC\uD8AD"+
-            "\u9751\uD8AE\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4"+
-            "\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B"+
-            "\u4E2C\u72AD\uD8AF\u7F52\u793B\u7CF9\u7F53\uD8B0"+
-            "\u34C1\uFFFD\uD8B1\u8002\u8080\uD8B2\uD8B3\u535D"+
-            "\u8864\u89C1\uD8B4\u8BA0\u8D1D\u9485\u9578\u957F"+
-            "\u95E8\uD8B5\u97E6\u9875\u98CE\u98DE\u9963\uD8B6"+
-            "\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\uD8B7\u961D"+
-            "\u6237\u94A2\uFFFD\u503B\u6DFE\uD8B8\uF57A\u3DC9"+
-            "\u888F\uD8B9\u7077\u5CF5\u4B20\uD8BA\u3559\uD8BB"+
-            "\u6122\uD8BC\u8FA7\u91F6\u7191\u6719\u73BA\uD8BD"+
-            "\uD8BE\u3C8B\uD8BF\u4B10\u78E4\u7402\u51AE\uD8C0"+
-            "\u4009\u6A63\uD8C1\u4223\u860F\uFFFD\u7A2A\uD8C2"+
-            "\uD8C3\u9755\u704D\u5324\uD8C4\u93F4\u76D9\uD8C5"+
-            "\uF5A4\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\uF5AB"+
-            "\u5434\u7D8B\u5892\u58D0\uD8C6\u5E92\u5E99\u5FC2"+
-            "\uD8C7\u658B\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uD8C8\u6919\u6A43\uD8C9"+
-            "\u6CFF\uFFFD\u7200\uD8CA\u738C\u3EDB\uD8CB\u5B15"+
-            "\u74B9\u8B83\uD8CC\uD8CD\u7A93\u7BEC\u7CC3\u7E6C"+
-            "\u82F8\u8597\uF5CC\u8890\uF5CE\u8EB9\uF5D0\u8FCF"+
-            "\u855F\u99E0\u9221\uF5D5\uD8CE\uD8CF\u4071\u42A2"+
-            "\u5A1A\uFFFD\uFFFD\uFFFD\u9868\u676B\u4276\u573D"+
-            "\uFFFD\u85D6\uD8D0\u82BF\uD8D1\u4C81\uD8D2\u5D7B"+
-            "\uD8D3\uD8D4\uF5EC\uF5ED\u5B96\uF5EF\uFFFD\u7E5B"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4"+
-            "\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908"+
-            "\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7"+
-            "\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8"+
-            "\u56B1\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\u3A03\u63E2\u63FB\u6407\u645A"+
-            "\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD"+
-            "\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4"+
-            "\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909"+
-            "\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD"+
-            "\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB"+
-            "\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA"+
-            "\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1"+
-            "\u6E15\u6E18\u6E29\u6E86\uD8D5\u6EBB\u6EE2\u6EDA"+
-            "\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\uD8D6\u6F81"+
-            "\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91"+
-            "\u7050\u7054\u706F\u707F\u7089\uD8D7\u43C1\u35F1"+
-            "\uD8D8\uD8D9\u57BE\uD8DA\u713E\uD8DB\u364E\u69A2"+
-            "\uD8DC\u5B74\u7A49\uD8DD\uD8DE\u7A65\u7A7D\uD8DF"+
-            "\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\uD8E0\u41CA\u7ADA"+
-            "\u7ADD\u7AEA\u41EF\u54B2\uD8E1\u7B0B\u7B55\u7B29"+
-            "\uD8E2\uD8E3\u7BA2\u7B6F\u839C\uD8E4\uD8E5\u7BD0"+
-            "\u8421\u7B92\uFFFD\uD8E6\u3DAD\uD8E7\u8492\u7BFA"+
-            "\uFFFD\u7C35\uD8E8\u7C44\u7C83\uD8E9\u7CA6\u667D"+
-            "\uD8EA\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\u7E67\u451D\uD8EB\u7D5D\uD8EC\u748D"+
-            "\u7D89\u7DAB\u7135\u7DB3\uFFFD\uD8ED\uD8EE\u7DE4"+
-            "\u3D13\u7DF5\uD8EF\u7DE5\uD8F0\uFFFD\uD8F1\uD8F2"+
-            "\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47"+
-            "\u7936\uD8F3\u99E1\u7F97\uD8F4\u7FA3\uD8F5\uD8F6"+
-            "\u455C\uD8F7\u4503\uD8F8\u7FFA\uD8F9\uFFFD\u8008"+
-            "\u801D\uFFFD\u802F\uD8FA\uD8FB\u803B\u803C\u8061"+
-            "\uD8FC\u4989\uD8FD\uD8FE\uD8FF\u6725\u80A7\uD900"+
-            "\u8107\u811A\u58B0\uD901\u6C7F\uD902\uD903\u64E7"+
-            "\uD904\u8218\uD905\u6A53\uD906\uD907\u447A\u8229"+
-            "\uD908\uD909\uD90A\u4FF9\uD90B\u84E2\u8362\uD90C"+
-            "\uD90D\uD90E\uD90F\uD910\u82AA\u691B\uD911\u41DB"+
-            "\u854B\u82D0\u831A\uD912\uD913\u36C1\uD914\uD915"+
-            "\u827B\u82E2\u8318\uD916\uD917\uD918\uD919\uD91A"+
-            "\u3DBF\u831D\u55EC\u8385\u450B\uD91B\u83AC\uFFFD"+
-            "\u83D3\u347E\uD91C\u6A57\u855A\u3496\uD91D\uD91E"+
-            "\u8458\uD91F\u8471\u3DD3\u44E4\u6AA7\u844A\uD920"+
-            "\u7958\uFFFD\uD921\uD922\uD923\u84DE\uFFFD\u8391"+
-            "\u44A0\u8493\u84E4\uD924\u4240\uD925\u4543\u8534"+
-            "\u5AF2\uD926\u4527\u8573\u4516\u67BF\u8616\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uD927\uD928\u85C1\uD929\u8602\uD92A\uD92B"+
-            "\uD92C\u456A\u8628\u3648\uD92D\u53F7\uD92E\u867E"+
-            "\u8771\uD92F\u87EE\uD930\u87B1\u87DA\u880F\u5661"+
-            "\u866C\u6856\u460F\u8845\u8846\uD931\uD932\uD933"+
-            "\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777"+
-            "\uD934\u8987\u898A\uFFFD\uFFFD\u89A7\u89BC\uD935"+
-            "\u89E7\uD936\uD937\u8A9C\u7793\u91FE\u8A90\uD938"+
-            "\u7AE9\uD939\uD93A\u4713\uD93B\u717C\u8B0C\u8B1F"+
-            "\uD93C\uD93D\u8B3F\u8B4C\u8B4D\u8AA9\uD93E\u8B90"+
-            "\u8B9B\u8AAF\uD93F\u4615\u884F\u8C9B\uD940\uD941"+
-            "\uD942\u3725\uD943\u8CD6\uD944\uD945\u8D12\u8D03"+
-            "\uD946\u8CDB\u705C\u8D11\uD947\u3ED0\uFFFD\u8DA9"+
-            "\uD948\uD949\uD94A\u3B7C\uD94B\uD94C\u7AE7\u8EAD"+
-            "\u8EB6\u8EC3\u92D4\u8F19\u8F2D\uD94D\uD94E\u8FA5"+
-            "\u9303\uD94F\uD950\u8FB3\u492A\uD951\uD952\uD953"+
-            "\u5EF8\uD954\u8FF9\uD955\uD956\uD957\uD958\u3980"+
-            "\uD959\u9037\uD95A\uD95B\u9061\uD95C\uD95D\u90A8"+
-            "\uD95E\u90C4\uD95F\u90AE\uFFFD\u9167\u3AF0\u91A9"+
-            "\u91C4\u7CAC\uD960\uD961\u920E\u6C9F\u9241\u9262"+
-            "\uD962\uFFFD\uD963\uD964\uD965\uD966\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uD967\u932C\u936B\uD968\uD969\u708F\u5AC3\uD96A"+
-            "\uD96B\u4965\u9244\uD96C\uD96D\uD96E\u9373\u945B"+
-            "\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\uD96F"+
-            "\uD970\uD971\uD972\u49DF\u6C1C\u967B\u9696\u416C"+
-            "\u96A3\uD973\u61DA\u96B6\u78F5\uD974\u96BD\u53CC"+
-            "\u49A1\uD975\uD976\uD977\uD978\uD979\uD97A\uD97B"+
-            "\uD97C\u9731\u8642\u9736\u4A0F\u453D\u4585\uD97D"+
-            "\u7075\u5B41\u971B\uFFFD\uD97E\u9757\u5B4A\uD97F"+
-            "\u975F\u9425\u50D0\uD980\uD981\u9789\u979F\u97B1"+
-            "\u97BE\u97C0\u97D2\u97E0\uD982\u97EE\u741C\uD983"+
-            "\uFFFD\u97F5\uD984\uD985\u4AD1\u9834\u9833\u984B"+
-            "\u9866\u3B0E\uD986\u3D51\uD987\uD988\uD989\u98CA"+
-            "\u98B7\u98C8\u98C7\u4AFF\uD98A\uD98B\u55B0\u98E1"+
-            "\u98E6\u98EC\u9378\u9939\uD98C\u4B72\uD98D\uD98E"+
-            "\u99F5\u9A0C\u9A3B\u9A10\u9A58\uD98F\u36C4\uD990"+
-            "\uD991\u9AE0\u9AE2\uD992\u9AF4\u4C0E\u9B14\u9B2D"+
-            "\uD993\u5034\u9B34\uD994\u38C3\uD995\u9B50\u9B40"+
-            "\uD996\u5A45\uD997\u9B8E\uD998\u9C02\u9BFF\u9C0C"+
-            "\uD999\u9DD4\uD99A\uD99B\uD99C\uD99D\uD99E\uD99F"+
-            "\u9D7E\u9D83\uD9A0\u9E0E\u6888\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u9DC4"+
-            "\uD9A1\uD9A2\uD9A3\uD9A4\uD9A5\u9D39\uD9A6\uD9A7"+
-            "\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\uD9A8"+
-            "\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\uD9A9\u9F02"+
-            "\u9F08\u4B96\u9424\uD9AA\u9F17\uFFFD\u9F39\u569F"+
-            "\u568A\u9F45\u99B8\uD9AB\u97F2\u847F\u9F62\u9F69"+
-            "\u7ADC\u9F8E\u7216\u4BBE\uD9AC\uD9AD\u7177\uD9AE"+
-            "\uD9AF\uD9B0\u739E\uD9B1\uD9B2\u799F\uD9B3\uD9B4"+
-            "\u9369\u93F3\uD9B5\u92EC\u9381\u93CB\uD9B6\uD9B7"+
-            "\u7217\u3EEB\u7772\u7A43\u70D0\uD9B8\uD9B9\u717E"+
-            "\uD9BA\u70A3\uD9BB\uD9BC\u3EC7\uD9BD\uD9BE\uD9BF"+
-            "\u3722\uD9C0\uD9C1\u36E1\uD9C2\uD9C3\uD9C4\u3723"+
-            "\uD9C5\u575B\uD9C6\uD9C7\uD9C8\uD9C9\uD9CA\u8503"+
-            "\uD9CB\uFFFD\u8455\uD9CC\uD9CD\uD9CE\uD9CF\uD9D0"+
-            "\uD9D1\u44F4\uD9D2\uD9D3\uD9D4\u67F9\u3733\u3C15"+
-            "\u3DE7\u586C\uD9D5\u6810\u4057\uD9D6\uD9D7\uD9D8"+
-            "\uD9D9\uD9DA\u54CB\u569E\uD9DB\u5692\uD9DC\uD9DD"+
-            "\uD9DE\u93C6\uD9DF\u939C\u4EF8\u512B\u3819\uD9E0"+
-            "\u4EBC\uD9E1\uD9E2\u4F4B\u4F8A\uD9E3\u5A68\uD9E4"+
-            "\uD9E5\u3999\uD9E6\uD9E7\u3435\u4F29\uD9E8\uD9E9"+
-            "\uD9EA\u8ADA\uD9EB\u4E98\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u50CD\u510D"+
-            "\u4FA2\u4F03\uD9EC\uD9ED\u4F42\u502E\u506C\u5081"+
-            "\u4FCC\u4FE5\u5058\u50FC\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\u6E76\uD9EE\uD9EF\uD9F0\u6D72\uD9F1\uD9F2\u51A8"+
-            "\u51C3\uD9F3\u44DD\uD9F4\uD9F5\uD9F6\u8D7A\uD9F7"+
-            "\uD9F8\u5259\u52A4\uD9F9\u52E1\uFFFD\u467A\u718C"+
-            "\uD9FA\uD9FB\uD9FC\uD9FD\u69D1\uD9FE\uFFFD\u3EDE"+
-            "\u7499\u7414\u7456\u7398\u4B8E\uD9FF\uDA00\u53D0"+
-            "\u3584\u720F\uDA01\u55B4\uDA02\u54CD\uDA03\u571D"+
-            "\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB"+
-            "\u5A99\uDA04\uDA05\uDA06\uDA07\u5A2C\u59B8\u928F"+
-            "\u5A7E\u5ACF\u5A12\uDA08\uDA09\uDA0A\uDA0B\u36F5"+
-            "\u6D05\u7443\u5A21\uDA0C\u5A81\uDA0D\uDA0E\u93E0"+
-            "\u748C\uDA0F\u7105\u4972\u9408\uDA10\u93BD\u37A0"+
-            "\u5C1E\u5C9E\u5E5E\u5E48\uDA11\uDA12\uDA13\u5ECD"+
-            "\u5B4F\uDA14\uDA15\u3701\uDA16\u36DD\uDA17\u36D3"+
-            "\u812A\uDA18\uDA19\uDA1A\uDA1B\u5F0C\u5F0E\uDA1C"+
-            "\uDA1D\u5A6B\uDA1E\u5B44\u8614\uDA1F\u8860\u607E"+
-            "\uDA20\uDA21\u5FDB\u3EB8\uDA22\uDA23\uDA24\uDA25"+
-            "\u61C0\uDA26\uDA27\uDA28\u6199\u6198\u6075\uDA29"+
-            "\uDA2A\uDA2B\uDA2C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6471\uDA2D\uDA2E"+
-            "\u3A29\uDA2F\uDA30\uDA31\uDA32\u6337\uDA33\u64B6"+
-            "\u6331\u63D1\uDA34\uDA35\u62A4\uDA36\u643B\u656B"+
-            "\u6972\u3BF4\uDA37\uDA38\uDA39\uDA3A\u550D\uDA3B"+
-            "\uDA3C\uDA3D\u66CE\uDA3E\uDA3F\u3AE0\u4190\uDA40"+
-            "\uDA41\uDA42\uDA43\uDA44\uDA45\u78EE\uDA46\uDA47"+
-            "\uDA48\u3464\uDA49\uDA4A\uDA4B\u668E\uDA4C\u666B"+
-            "\u4B93\u6630\uDA4D\uDA4E\u6663\uDA4F\uDA50\u661E"+
-            "\uDA51\u38D1\uDA52\uDA53\u3B99\uDA54\uDA55\u74D0"+
-            "\u3B96\u678F\uDA56\u68B6\u681E\u3BC4\u6ABE\u3863"+
-            "\uDA57\uDA58\u6A33\u6A52\u6AC9\u6B05\uDA59\u6511"+
-            "\u6898\u6A4C\u3BD7\u6A7A\u6B57\uDA5A\uDA5B\u93A0"+
-            "\u92F2\uDA5C\uDA5D\u9289\uDA5E\uDA5F\u9467\u6DA5"+
-            "\u6F0B\uDA60\uFFFD\uDA61\u3D8F\u6E04\uDA62\u5A3D"+
-            "\u6E0A\u5847\u6D24\u7842\u713B\uDA63\uDA64\u70F1"+
-            "\u7250\u7287\u7294\uDA65\uDA66\u5179\uDA67\uDA68"+
-            "\u747A\uDA69\uDA6A\uDA6B\uDA6C\uDA6D\u3F06\u3EB1"+
-            "\uDA6E\uDA6F\uDA70\u60A7\u3EF3\u74CC\u743C\u9387"+
-            "\u7437\u449F\uDA71\u4551\u7583\u3F63\uDA72\uDA73"+
-            "\u3F58\u7555\u7673\uDA74\u3B19\u7468\uDA75\uDA76"+
-            "\uDA77\u3AFB\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\u3DCD\uDA78\u3EFF\uDA79"+
-            "\uDA7A\u91FA\u5732\u9342\uDA7B\uDA7C\u50DF\uDA7D"+
-            "\uDA7E\u7778\uDA7F\u770E\u770F\u777B\uDA80\uDA81"+
-            "\u3A5E\uDA82\u7438\u749B\u3EBF\uDA83\uDA84\u40C8"+
-            "\uDA85\uDA86\u9307\uDA87\u781E\u788D\u7888\u78D2"+
-            "\u73D0\u7959\uDA88\uDA89\u410E\uFFFD\u8496\u79A5"+
-            "\u6A2D\uDA8A\u7A3A\u79F4\u416E\uDA8B\u4132\u9235"+
-            "\u79F1\uDA8C\uDA8D\uDA8E\uDA8F\uDA90\u3597\u556B"+
-            "\u3570\u36AA\uDA91\uDA92\u7AE2\u5A59\uDA93\uDA94"+
-            "\uDA95\u5A0D\uDA96\u78F0\u5A2A\uDA97\u7AFE\u41F9"+
-            "\u7C5D\u7C6D\u4211\uDA98\uDA99\uDA9A\u7CCD\uDA9B"+
-            "\uDA9C\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3"+
-            "\u7F4E\uDA9D\uDA9E\uDA9F\u7D97\uDAA0\u426A\uDAA1"+
-            "\uDAA2\u67D6\uDAA3\uDAA4\u57C4\uDAA5\uDAA6\uDAA7"+
-            "\u7FDD\u7B27\uDAA8\uDAA9\uDAAA\u7B0C\uDAAB\u99E6"+
-            "\u8645\u9A63\u6A1C\uDAAC\u39E2\uDAAD\uDAAE\u9A1F"+
-            "\uDAAF\u8480\uDAB0\uDAB1\u44EA\u8137\u4402\u80C6"+
-            "\u8109\u8142\uDAB2\u98C3\uDAB3\u8262\u8265\uDAB4"+
-            "\u8453\uDAB5\u8610\uDAB6\u5A86\u417F\uDAB7\u5B2B"+
-            "\uDAB8\u5AE4\uDAB9\u86A0\uDABA\uDABB\u882D\uDABC"+
-            "\u5A02\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\u886E\u4F45\u8887\u88BF\u88E6"+
-            "\u8965\u894D\uDABD\u8954\uDABE\uDABF\uDAC0\uDAC1"+
-            "\uDAC2\uDAC3\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D"+
-            "\u8A1C\uDAC4\u5F4D\u922B\uDAC5\u65D4\u7129\u70C4"+
-            "\uDAC6\u9D6D\u8C9F\u8CE9\uDAC7\u599A\u77C3\u59F0"+
-            "\u436E\u36D4\u8E2A\u8EA7\uDAC8\u8F30\u8F4A\u42F4"+
-            "\u6C58\u6FBB\uDAC9\u489B\u6F79\u6E8B\uDACA\u9BE9"+
-            "\u36B5\uDACB\u90BB\uFFFD\u5571\u4906\u91BB\u9404"+
-            "\uDACC\u4062\uDACD\u9427\uDACE\uDACF\u84E5\u8A2B"+
-            "\u9599\u95A7\u9597\u9596\uDAD0\u7445\u3EC2\uDAD1"+
-            "\uDAD2\uDAD3\u3EE7\uDAD4\u968F\uDAD5\uDAD6\uDAD7"+
-            "\u3ECC\uDAD8\uDAD9\uDADA\u7412\u746B\u3EFC\u9741"+
-            "\uDADB\u6847\u4A1D\uDADC\uDADD\uFFFD\u9368\uDADE"+
-            "\uDADF\uDAE0\uDAE1\u92BA\u5B11\u8B69\u493C\u73F9"+
-            "\uDAE2\u979B\u9771\u9938\uDAE3\u5DC1\uDAE4\uDAE5"+
-            "\u981F\uDAE6\u92F6\uDAE7\u91E5\u44C0\uDAE8\uDAE9"+
-            "\uDAEA\u98DC\uDAEB\u3F00\u922A\u4925\u8414\u993B"+
-            "\u994D\uDAEC\u3DFD\u999B\u4B6F\u99AA\u9A5C\uDAED"+
-            "\uDAEE\u6A8F\u9A21\u5AFE\u9A2F\uDAEF\u4B90\uDAF0"+
-            "\u99BC\u4BBD\u4B97\u937D\u5872\uDAF1\u5822\uDAF2"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uDAF3\u7844\uDAF4\uDAF5\u68C5\u3D7D"+
-            "\u9458\u3927\u6150\uDAF6\uDAF7\u6107\u9C4F\u9C53"+
-            "\u9C7B\u9C35\u9C10\u9B7F\u9BCF\uDAF8\u9B9F\uDAF9"+
-            "\uDAFA\u9D21\u4CAE\uDAFB\u9E18\u4CB0\u9D0C\uDAFC"+
-            "\uDAFD\uDAFE\uDAFF\u9DA5\u84BD\uDB00\uDB01\uDB02"+
-            "\u85FC\u4533\uDB03\uDB04\uDB05\u8420\u85EE\uDB06"+
-            "\uDB07\uDB08\u79E2\uDB09\uDB0A\u492D\uDB0B\u3D62"+
-            "\u93DB\u92BE\u9348\uDB0C\u78B9\u9277\u944D\u4FE4"+
-            "\u3440\u9064\uDB0D\u783D\u7854\u78B6\u784B\uDB0E"+
-            "\uDB0F\uDB10\u369A\u4F72\u6FDA\u6FD9\uFFFD\u701E"+
-            "\u5414\uDB11\u57BB\u58F3\u578A\u9D16\u57D7\u7134"+
-            "\u34AF\uDB12\u71EB\uDB13\uDB14\uFFFD\uDB15\uDB16";
-
-        private final static String innerIndex1=
-            "\u610C\u5ACE\u5A0B\u42BC\uDB17\u372C\u4B7B\uDB18"+
-            "\u93BB\u93B8\uDB19\uDB1A\u8472\uDB1B\uDB1C\uDB1D"+
-            "\uDB1E\uDB1F\u5994\uDB20\uDB21\u7DA8\uDB22\uDB23"+
-            "\uDB24\uDB25\uDB26\u92E5\u73E2\u3EE9\u74B4\uDB27"+
-            "\uDB28\u3EE1\uDB29\u6AD8\u73F3\u73FB\u3ED6\uDB2A"+
-            "\uDB2B\uDB2C\uDB2D\uDB2E\uDB2F\uDB30\u7448\uDB31"+
-            "\u70A5\uDB32\u9284\u73E6\u935F\uDB33\u9331\uDB34"+
-            "\uDB35\u9386\uDB36\uDB37\u4935\uDB38\u716B\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uDB39\uDB3A\u56A4\uDB3B\uDB3C\uDB3D\u5502"+
-            "\u79C4\uDB3E\u7DFE\uDB3F\uDB40\uDB41\u452E\u9401"+
-            "\u370A\uDB42\uDB43\u59B0\uDB44\uDB45\uDB46\u5AA1"+
-            "\u36E2\uDB47\u36B0\u925F\u5A79\uDB48\uDB49\u9374"+
-            "\u3CCD\uDB4A\u4A96\u398A\u50F4\u3D69\u3D4C\uDB4B"+
-            "\u7175\u42FB\uDB4C\u6E0F\uDB4D\u44EB\u6D57\uDB4E"+
-            "\u7067\u6CAF\u3CD6\uDB4F\uDB50\u6E02\u6F0C\u3D6F"+
-            "\uDB51\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4"+
-            "\u926E\u493E\u8F41\uDB52\uDB53\u5812\u57C8\u36D6"+
-            "\uDB54\u70FE\uDB55\uDB56\uDB57\uDB58\uDB59\u68B9"+
-            "\u6967\uDB5A\uDB5B\uDB5C\uDB5D\uDB5E\uDB5F\uDB60"+
-            "\uDB61\u6A1A\uDB62\uDB63\u843E\u44DF\u44CE\uDB64"+
-            "\uDB65\uDB66\uDB67\u6F17\uDB68\u833D\uDB69\u83ED"+
-            "\uDB6A\uDB6B\uDB6C\u5989\u5A82\uDB6D\u5A61\u5A71"+
-            "\uDB6E\uDB6F\u372D\u59EF\uDB70\u36C7\u718E\u9390"+
-            "\u669A\uDB71\u5A6E\u5A2B\uDB72\u6A2B\uDB73\uDB74"+
-            "\uDB75\uDB76\u711D\uDB77\uDB78\u4FB0\uDB79\u5CC2"+
-            "\uDB7A\uDB7B\uDB7C\u6A0C\uDB7D\uDB7E\u70A6\u7133"+
-            "\uDB7F\u3DA5\u6CDF\uDB80\uDB81\u7E65\u59EB\u5D2F"+
-            "\u3DF3\u5F5C\uDB82\uDB83\u7DA4\u8426\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\u5485\uDB84\uDB85\uDB86\u577E\uDB87\uDB88\u3FE5"+
-            "\uDB89\uDB8A\u7003\uDB8B\u5D70\u738F\u7CD3\uDB8C"+
-            "\uDB8D\u4FC8\u7FE7\u72CD\u7310\uDB8E\u7338\u7339"+
-            "\uDB8F\u7341\u7348\u3EA9\uDB90\u906C\u71F5\uDB91"+
-            "\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419"+
-            "\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E"+
-            "\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC"+
-            "\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\uDB92\u7188"+
-            "\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045"+
-            "\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2"+
-            "\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866"+
-            "\u8448\uDB93\u7933\u6803\u7932\u4103\u4109\u7991"+
-            "\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC"+
-            "\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C"+
-            "\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C"+
-            "\u7CB8\u4294\u7CED\u8F93\u70C0\uDB94\u7DCF\u7DD4"+
-            "\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025"+
-            "\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7"+
-            "\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114"+
-            "\u4401\u3B39\u8156\u8159\u815A\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u4413"+
-            "\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF"+
-            "\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8"+
-            "\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464"+
-            "\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538"+
-            "\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692"+
-            "\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF"+
-            "\u8924\u8947\u8991\uDB95\u8A29\u8A38\u8A94\u8AB4"+
-            "\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED"+
-            "\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837"+
-            "\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA"+
-            "\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228"+
-            "\u9258\u926B\u92B1\u92AE\u92BF\u92E3\u92EB\u92F3"+
-            "\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF"+
-            "\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479"+
-            "\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24"+
-            "\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9"+
-            "\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937"+
-            "\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F"+
-            "\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20"+
-            "\u376F\uDB96\u9D49\u9C3A\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u9EFE\u5650"+
-            "\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC"+
-            "\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8"+
-            "\u9F44\uDB97\uDB98\uDB99\u691A\u94C3\u59AC\uDB9A"+
-            "\u5840\u94C1\u37B9\uDB9B\uDB9C\uDB9D\uDB9E\u5757"+
-            "\u7173\uDB9F\uDBA0\uDBA1\u546A\uDBA2\uDBA3\u549E"+
-            "\uDBA4\uDBA5\uDBA6\uDBA7\uDBA8\u60E7\uDBA9\u567A"+
-            "\uDBAA\uDBAB\uDBAC\uDBAD\uDBAE\uDBAF\u6955\u9C2F"+
-            "\u87A5\uDBB0\uDBB1\uDBB2\uDBB3\uDBB4\uDBB5\u5C20"+
-            "\uDBB6\u5E0B\uDBB7\uDBB8\uDBB9\u671E\uDBBA\uDBBB"+
-            "\uDBBC\u3647\uDBBD\uDBBE\uDBBF\uDBC0\u5364\u84AD"+
-            "\uDBC1\uDBC2\uDBC3\u8B81\uDBC4\uDBC5\uDBC6\uDBC7"+
-            "\u4E78\u70BB\uDBC8\uDBC9\uDBCA\uDBCB\uDBCC\uDBCD"+
-            "\uDBCE\uDBCF\u62C3\uDBD0\uDBD1\u7198\u6855\uDBD2"+
-            "\u69E9\u36C8\uDBD3\uDBD4\uDBD5\uDBD6\uDBD7\uDBD8"+
-            "\u82FD\uDBD9\uDBDA\uDBDB\u89A5\uDBDC\u8FA0\uDBDD"+
-            "\u97B8\uDBDE\u9847\u9ABD\uDBDF\uFFFD\uDBE0\uDBE1"+
-            "\uDBE2\uDBE3\uDBE4\uDBE5\uDBE6\uDBE7\uDBE8\uDBE9"+
-            "\uDBEA\uDBEB\uDBEC\uDBED\u5FB1\u6648\u66BF\uDBEE"+
-            "\uDBEF\uDBF0\uFFFD\uDBF1\uFFFD\uDBF2\uDBF3\uFFFD"+
-            "\uDBF4\u58B5\u670E\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6918\uDBF5\uDBF6"+
-            "\uDBF7\uDBF8\uDBF9\uDBFA\uDBFB\u48D0\u4AB8\uDBFC"+
-            "\uDBFD\uDBFE\uDBFF\uDC00\uDC01\uDC02\uDC03\uDC04"+
-            "\u51D2\uDC05\u599F\uDC06\u3BBE\uDC07\uDC08\uDC09"+
-            "\u5788\uDC0A\u399B\uDC0B\uDC0C\uDC0D\u3762\uDC0E"+
-            "\u8B5E\uDC0F\uFFFD\uDC10\uDC11\uDC12\u7209\uDC13"+
-            "\uDC14\u5965\uDC15\uDC16\uDC17\u8EDA\uDC18\u528F"+
-            "\u573F\u7171\uDC19\uDC1A\uDC1B\uDC1C\u55BC\uDC1D"+
-            "\uDC1E\uDC1F\uFFFD\u3473\uDC20\uDC21\uDC22\u4718"+
-            "\uDC23\uDC24\uDC25\uDC26\uDC27\u5066\u34FB\uDC28"+
-            "\uFFFD\uDC29\u477C\uDC2A\uDC2B\uDC2C\uDC2D\uDC2E"+
-            "\u57A1\u7151\uFFFD\uDC2F\uDC30\u9056\uDC31\uDC32"+
-            "\u8B62\uDC33\uDC34\u5D5B\uDC35\uFFFD\uDC36\uDC37"+
-            "\u8AEA\uDC38\uDC39\uDC3A\uDC3B\u4BC0\uDC3C\uDC3D"+
-            "\uDC3E\u9465\uDC3F\u6195\u5A27\uDC40\uFFFD\u56B9"+
-            "\uDC41\uDC42\u4E6A\uDC43\u9656\u6D8F\uDC44\u3618"+
-            "\u8977\uDC45\uDC46\uDC47\uDC48\uFFFD\uDC49\u7B42"+
-            "\uDC4A\uDC4B\uDC4C\uFFFD\uDC4D\u7A45\uFFFD\uDC4E"+
-            "\u9A26\uDC4F\u365F\uDC50\uDC51\u7983\uDC52\uDC53"+
-            "\u5D2C\uDC54\uFFFD\uDC55\u46D0\uDC56\u753B\u8865"+
-            "\uDC57\u58B6\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\u371C\uDC58\uDC59\uDC5A"+
-            "\u3C54\uDC5B\uDC5C\u9281\uDC5D\uDC5E\u9330\uDC5F"+
-            "\uDC60\u6C39\u949F\uDC61\uDC62\u8827\u88F5\uDC63"+
-            "\uDC64\uDC65\u6EB8\uDC66\uDC67\u39A4\u36B9\uFFFD"+
-            "\uFFFD\u453F\u66B6\uDC68\uDC69\u8943\uDC6A\uDC6B"+
-            "\u56D6\u40DF\uDC6C\u39A1\uDC6D\uDC6E\uDC6F\u71AD"+
-            "\u8366\uDC70\uDC71\uFFFD\u4CB7\uDC72\uDC73\uDC74"+
-            "\uDC75\uDC76\uDC77\uDC78\u7B43\u797E\uDC79\u6FB5"+
-            "\uDC7A\u6A03\uDC7B\u53A2\uDC7C\u93BF\u6836\u975D"+
-            "\uDC7D\uDC7E\uDC7F\uDC80\uDC81\uDC82\u5D85\uDC83"+
-            "\uDC84\u5715\u9823\uDC85\u5DAB\uDC86\u65BE\u69D5"+
-            "\u53D2\uDC87\uDC88\u3C11\u6736\uDC89\uDC8A\uDC8B"+
-            "\uDC8C\uDC8D\uDC8E\uDC8F\uDC90\uDC91\uDC92\uDC93"+
-            "\u35CA\uDC94\uDC95\u48FA\u63E6\uDC96\u7808\u9255"+
-            "\uDC97\u43F2\uDC98\u43DF\uDC99\uDC9A\uDC9B\u59F8"+
-            "\uDC9C\uFFFD\uDC9D\uDC9E\uFFFD\uDC9F\uDCA0\u3DF7"+
-            "\uDCA1\uDCA2\u8FD0\u728F\u568B\uDCA3\uDCA4\uDCA5"+
-            "\uDCA6\uDCA7\uDCA8\uDCA9\uDCAA\uDCAB\uDCAC\uDCAD"+
-            "\uDCAE\uDCAF\u7E9F\uDCB0\uDCB1\u4CA4\u9547\uDCB2"+
-            "\u71A2\uDCB3\u4D91\u9012\uDCB4\u4D9C\uDCB5\u8FBE"+
-            "\u55C1\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\u8FBA\uDCB6\u8FB9\uDCB7\u4509"+
-            "\u7E7F\u6F56\u6AB1\u4EEA\u34E4\uDCB8\uDCB9\u373A"+
-            "\u8E80\uDCBA\uDCBB\uDCBC\uDCBD\uDCBE\uDCBF\u3DEB"+
-            "\uDCC0\uDCC1\uDCC2\uDCC3\u4E9A\uDCC4\uDCC5\u56BF"+
-            "\uDCC6\u8E0E\u5B6D\uDCC7\uDCC8\u63DE\uFFFD\uDCC9"+
-            "\uDCCA\u6530\u562D\uDCCB\u541A\uDCCC\u3DC6\uDCCD"+
-            "\u4C7D\u5622\u561E\u7F49\uDCCE\u5975\uDCCF\u8770"+
-            "\u4E1C\uDCD0\uDCD1\uDCD2\u8117\u9D5E\u8D18\u763B"+
-            "\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625"+
-            "\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\uDCD3"+
-            "\u35CE\u5605\u55F1\u66F1\uDCD4\u362D\u7534\u55F0"+
-            "\u55BA\u5497\u5572\uDCD5\uDCD6\u5ED0\uDCD7\uDCD8"+
-            "\uDCD9\uDCDA\u9EAB\u7D5A\u55DE\uDCDB\u629D\u976D"+
-            "\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569"+
-            "\uDCDC\u9C72\uDCDD\u519A\u34DF\uDCDE\u51A7\u544D"+
-            "\u551E\u5513\u7666\u8E2D\uDCDF\u75B1\u80B6\u8804"+
-            "\u8786\u88C7\u81B6\u841C\uDCE0\u44EC\u7304\uDCE1"+
-            "\u5B90\u830B\uDCE2\u567B\uDCE3\uDCE4\uDCE5\uDCE6"+
-            "\uDCE7\uDCE8\u9170\uDCE9\u9208\uDCEA\uDCEB\uDCEC"+
-            "\uDCED\u7266\uDCEE\u474E\uDCEF\uDCF0\uDCF1\u40FA"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\u9C5D\u651F\uDCF2\u48F3\uDCF3\uDCF4"+
-            "\uDCF5\uDCF6\uFFFD\uDCF7\uDCF8\uFFFD\uDCF9\uDCFA"+
-            "\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2"+
-            "\u5367\u36AC\u39DC\u537D\u36A5\uDCFB\u589A\uDCFC"+
-            "\u822D\u544B\u57AA\uDCFD\uDCFE\uFFFD\u3A52\uDCFF"+
-            "\u7374\uDD00\u4D09\u9BED\uDD01\uDD02\u4C5B\uDD03"+
-            "\uDD04\uDD05\u845C\uDD06\uDD07\uDD08\uDD09\u632E"+
-            "\u7D25\uDD0A\uDD0B\u3A2A\u9008\u52CC\u3E74\u367A"+
-            "\u45E9\uDD0C\u7640\u5AF0\uDD0D\u787A\u47B6\u58A7"+
-            "\u40BF\u567C\u9B8B\u5D74\u7654\uDD0E\u9E85\u4CE1"+
-            "\uFFFD\u37FB\u6119\uDD0F\uDD10\uFFFD\u565D\uDD11"+
-            "\u57A7\uDD12\uDD13\u5234\uDD14\u35AD\uFFFD\u9D7C"+
-            "\u7C56\u9B39\u57DE\uDD15\u5C53\u64D3\uDD16\uDD17"+
-            "\uDD18\u86AD\uDD19\uDD1A\uDD1B\uDD1C\uFFFD\u51FE"+
-            "\uDD1D\u5D8E\u9703\uDD1E\u9E81\u904C\u7B1F\u9B02"+
-            "\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E"+
-            "\uFFFD\u7C42\u7C86\u9C15\u7BFC\u9B09\uFFFD\u9C1B"+
-            "\uDD1F\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260"+
-            "\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB"+
-            "\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980"+
-            "\u50A6\u7546\uDD20\u99DA\u5273\uFFFD\u9159\u9681"+
-            "\u915C\uFFFD\u9151\uDD21\u637F\uDD22\u6ACA\u5611"+
-            "\u918E\u757A\u6285\uDD23\u734F\u7C70\uDD24\uDD25"+
-            "\uFFFD\uDD26\u76D6\u9B9D\u4E2A\uDD27\u83BE\u8842"+
-            "\uFFFD\u5C4A\u69C0\uFFFD\u577A\u521F\u5DF5\u4ECE"+
-            "\u6C31\uDD28\u4F39\u549C\u54DA\u529A\u8D82\u35FE"+
-            "\uFFFD\u35F3\uFFFD\u6B52\u917C\u9FA5\u9B97\u982E"+
-            "\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14\uFFFD\u6BFA"+
-            "\u8818\u7F78\uFFFD\u5620\uDD29\u8E77\u9F53\uFFFD"+
-            "\u8DD4\u8E4F\u9E1C\u8E01\u6282\uDD2A\u8E28\u8E75"+
-            "\u7AD3\uDD2B\u7A3E\u78D8\u6CEA\u8A67\u7607\uDD2C"+
-            "\u9F26\u6CCE\u87D6\u75C3\uDD2D\u7853\uDD2E\u8D0C"+
-            "\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\uDD2F\u862F"+
-            "\u5FBA\u88A0\u44B7\uFFFD\uDD30\uDD31\uFFFD\u8A7E"+
-            "\uDD32\uFFFD\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F"+
-            "\u87F5\uFFFD\uFFFD\u8CF7\u732C\u9721\u9BB0\u35D6"+
-            "\u72B2\u4C07\u7C51\u994A\uDD33\u6159\u4C04\u9E96"+
-            "\u617D\uFFFD\u575F\u616F\u62A6\u6239\uFFFD\u3A5C"+
-            "\u61E2\u53AA\uDD34\u6364\u6802\u35D2\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\u5D57\uDD35\u8FDA\uDD36\uFFFD\u50D9\uDD37\u7906"+
-            "\u5332\u9638\uDD38\u4065\uFFFD\u77FE\uFFFD\u7CC2"+
-            "\uDD39\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2"+
-            "\u8994\u821A\u670C\u8062\uDD3A\u805B\u74F0\u8103"+
-            "\u7724\u8989\uDD3B\u7553\uDD3C\u87A9\u87CE\u81C8"+
-            "\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635"+
-            "\u69B2\u8DA6\uFFFD\u89A9\uFFFD\u6DB9\u87C1\uDD3D"+
-            "\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\uFFFD\u6077"+
-            "\uFFFD\u7F71\uDD3E\uFFFD\u60E9\u4B7E\u5220\u3C18"+
-            "\uDD3F\uDD40\uDD41\uDD42\uDD43\uDD44\uDD45\uDD46"+
-            "\uDD47\u5CC1\uDD48\uDD49\uDD4A\uDD4B\uDD4C\uDD4D"+
-            "\u4562\u5B1F\uDD4E\u9F50\u9EA6\uDD4F\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2460"+
-            "\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468"+
-            "\u2469\u2474\u2475\u2476\u2477\u2478\u2479\u247A"+
-            "\u247B\u247C\u247D\u2170\u2171\u2172\u2173\u2174"+
-            "\u2175\u2176\u2177\u2178\u2179\u4E36\u4E3F\u4E85"+
-            "\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6"+
-            "\u590A\u5B80\u5DDB\u2F33\u5E7F\uFFFD\u5F50\u5F61"+
-            "\u6534\uFFFD\u7592\uFFFD\u8FB5\uFFFD\u00A8\u02C6"+
-            "\u30FD\u30FE\u309D\u309E\uFFFD\uFFFD\u3005\u3006"+
-            "\u3007\u30FC\uFF3B\uFF3D\u273D\u3041\u3042\u3043"+
-            "\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B"+
-            "\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053"+
-            "\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B"+
-            "\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063"+
-            "\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B"+
-            "\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073"+
-            "\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B"+
-            "\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083"+
-            "\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B"+
-            "\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093"+
-            "\u30A1\u30A2\u30A3\u30A4\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u30A5\u30A6"+
-            "\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC\u30AD\u30AE"+
-            "\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4\u30B5\u30B6"+
-            "\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC\u30BD\u30BE"+
-            "\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4\u30C5\u30C6"+
-            "\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC\u30CD\u30CE"+
-            "\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4\u30D5\u30D6"+
-            "\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC\u30DD\u30DE"+
-            "\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4\u30E5\u30E6"+
-            "\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC\u30ED\u30EE"+
-            "\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4\u30F5\u30F6"+
-            "\u0410\u0411\u0412\u0413\u0414\u0415\u0401\u0416"+
-            "\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E"+
-            "\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426"+
-            "\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E"+
-            "\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0451"+
-            "\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D"+
-            "\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445"+
-            "\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D"+
-            "\u044E\u044F\u21E7\u21B8\u21B9\uF7E5\uDD50\u4E5A"+
-            "\uDD51\u5202\uF7EA\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uF7EB\u5188\uF7ED"+
-            "\uDD52\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121"+
-            "\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A"+
-            "\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA"+
-            "\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC"+
-            "\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3\uFFFD\uFFFD"+
-            "\uFFFD\u0283\u0250\u025B\u0254\u0275\u0153\u00F8"+
-            "\u014B\u028A\u026A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA"+
-            "\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569"+
-            "\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558"+
-            "\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562"+
-            "\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570"+
-            "\u256F\uFFED\uDD53\u92DB\uDD54\uDD55\u854C\u42B5"+
-            "\u73EF\u51B5\u3649\uDD56\uDD57\u9344\uDD58\u82EE"+
-            "\uDD59\u783C\u6744\u62DF\uDD5A\uDD5B\uDD5C\uDD5D"+
-            "\uDD5E\u4FAB\uDD5F\u5008\uDD60\uDD61\uDD62\uDD63"+
-            "\uDD64\uFFFD\uDD65\u5FA4\uDD66\uDD67\u6EDB\uDD68"+
-            "\uFFFD\u5101\u347A\u510E\u986C\u3743\u8416\uDD69"+
-            "\uDD6A\u5160\uDD6B\u516A\uDD6C\uDD6D\uDD6E\uDD6F"+
-            "\uDD70\uDD71\uDD72\u5B82\u877D\uDD73\uDD74\u51B2"+
-            "\u51B8\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\u9D34\u51C9\u51CF\u51D1\u3CDC"+
-            "\u51D3\uDD75\u51B3\u51E2\u5342\u51ED\u83CD\u693E"+
-            "\uDD76\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294"+
-            "\u52B9\u52C5\u7C15\u8542\u52E0\u860D\uDD77\uFFFD"+
-            "\uDD78\u5549\u6ED9\uDD79\uDD7A\uDD7B\u5333\uFFFD"+
-            "\uDD7C\u6CCB\uDD7D\u681B\u73D5\u604A\u3EAA\u38CC"+
-            "\uDD7E\u71DD\u44A2\u536D\u5374\uDD7F\u537E\uFFFD"+
-            "\uDD80\uDD81\u77E6\u5393\uDD82\u53A0\u53AB\u53AE"+
-            "\u73A7\uDD83\u3F59\u739C\u53C1\u53C5\u6C49\u4E49"+
-            "\u57FE\u53D9\u3AAB\uDD84\u53E0\uDD85\uDD86\u53F6"+
-            "\uDD87\u5413\u7079\u552B\u6657\u6D5B\u546D\uDD88"+
-            "\uDD89\u555D\u548F\u54A4\u47A6\uDD8A\uDD8B\u3DB4"+
-            "\uDD8C\uDD8D\uDD8E\u5547\u4CED\u542F\u7417\u5586"+
-            "\u55A9\uFFFD\uDD8F\uDD90\u4552\uDD91\u66B3\uDD92"+
-            "\u5637\u66CD\uDD93\u66A4\u66AD\u564D\u564F\u78F1"+
-            "\u56F1\u9787\u53FE\u5700\u56EF\u56ED\uDD94\u3623"+
-            "\uDD95\u5746\uDD96\u6C6E\u708B\u5742\u36B1\uDD97"+
-            "\u57E6\uDD98\u5803\uDD99\uDD9A\u5826\uDD9B\u585C"+
-            "\u58AA\u3561\u58E0\u58DC\uDD9C\u58FB\u5BFF\u5743"+
-            "\uDD9D\uDD9E\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uDD9F\u5A24\u5553\uDDA0\u8505\u59C9"+
-            "\uDDA1\uDDA2\uDDA3\uDDA4\u59D9\uDDA5\uDDA6\uDDA7"+
-            "\u6D71\uDDA8\uDDA9\u59F9\uDDAA\u5AAB\u5A63\u36E6"+
-            "\uDDAB\uFFFD\u3708\u5A96\u7465\u5AD3\uDDAC\uDDAD"+
-            "\u3D85\uDDAE\u3732\uDDAF\u5E83\u52D0\u5B76\u6588"+
-            "\u5B7C\uDDB0\u4004\u485D\uDDB1\u5BD5\u6160\uDDB2"+
-            "\uDDB3\uDDB4\u5BF3\u5B9D\u4D10\u5C05\uDDB5\u5C13"+
-            "\u73CE\u5C14\uDDB6\uDDB7\u5C49\u48DD\u5C85\u5CE9"+
-            "\u5CEF\u5D8B\uDDB8\uDDB9\u5D10\u5D18\u5D46\uDDBA"+
-            "\u5CBA\u5DD7\u82FC\u382D\uDDBB\uDDBC\uDDBD\u8287"+
-            "\u3836\u3BC2\u5E2E\u6A8A\uFFFD\u5E7A\uDDBE\uDDBF"+
-            "\u53A6\u4EB7\uFFFD\u53A8\uDDC0\u5E09\u5EF4\uDDC1";
-
-        private final static String innerIndex2=
-            "\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\uDDC2"+
-            "\uDDC3\u3ADE\u48AE\uDDC4\u5F3A\uDDC5\uDDC6\uFFFD"+
-            "\uDDC7\u5F63\u97BD\uDDC8\u5F72\u9340\uDDC9\u5FA7"+
-            "\u5DB6\u3D5F\uDDCA\uDDCB\uDDCC\uDDCD\u91D6\uDDCE"+
-            "\uDDCF\u6031\u6685\uDDD0\u3963\u3DC7\u3639\u5790"+
-            "\uDDD1\u7971\u3E40\u609E\uFFFD\u60B3\uDDD2\uDDD3"+
-            "\uDDD4\u74A4\u50E1\u5AA0\u6164\u8424\u6142\uDDD5"+
-            "\uDDD6\u6181\u51F4\uDDD7\u6187\u5BAA\uDDD8\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uDDD9\u61D3\uDDDA\uDDDB\u61D0\u3932\uDDDC"+
-            "\uDDDD\u6023\u615C\u651E\u638B\uDDDE\u62C5\uDDDF"+
-            "\u62D5\uDDE0\u636C\uDDE1\u3A17\u6438\u63F8\uDDE2"+
-            "\uDDE3\uFFFD\u6F8A\uDDE4\u9814\uDDE5\uDDE6\u64E1"+
-            "\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\uDDE7"+
-            "\uDDE8\u6585\u656D\u655F\uDDE9\u65B5\uDDEA\u4B37"+
-            "\u65D1\u40D8\uDDEB\u65E0\u65E3\u5FDF\uDDEC\u6618"+
-            "\uDDED\uDDEE\u6644\uDDEF\uDDF0\u664B\uDDF1\u6667"+
-            "\uDDF2\u6673\uFFFD\uDDF3\uDDF4\uDDF5\uDDF6\uDDF7"+
-            "\u77C5\uDDF8\u99A4\u6702\uDDF9\uDDFA\u3B2B\u69FA"+
-            "\uDDFB\uFFFD\u6767\u6762\uDDFC\uDDFD\u67D7\u44E9"+
-            "\u6822\u6E50\u923C\u6801\uDDFE\uDDFF\u685D\uDE00"+
-            "\u69E1\u6A0B\uDE01\u6973\u68C3\uDE02\u6901\u6900"+
-            "\u3D32\u3A01\uDE03\u3B80\u67AC\u6961\uDE04\u42FC"+
-            "\u6936\u6998\u3BA1\uDE05\u8363\u5090\u69F9\uDE06"+
-            "\uDE07\u6A45\uDE08\u6A9D\u3BF3\u67B1\u6AC8\uDE09"+
-            "\u3C0D\u6B1D\uDE0A\u60DE\u6B35\u6B74\uDE0B\u6EB5"+
-            "\uDE0C\uDE0D\uDE0E\u3740\u5421\uDE0F\u6BE1\uDE10"+
-            "\u6BDC\u6C37\uDE11\uDE12\uDE13\u6C5A\u8226\u6C79"+
-            "\uDE14\u44C5\uDE15\uDE16\uDE17\uDE18\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uDE19\u36E5\u3CEB\uDE1A\u9B83\uDE1B\uDE1C\u7F8F"+
-            "\u6837\uDE1D\uDE1E\uDE1F\u6D96\u6D5C\u6E7C\u6F04"+
-            "\uDE20\uDE21\uDE22\u8533\uDE23\u51C7\uFFFD\uFFFD"+
-            "\u842E\uDE24\uFFFD\uDE25\u7453\uDE26\u79CC\u6E4F"+
-            "\u5A91\uDE27\u6FF8\u370D\u6F9D\uDE28\u6EFA\uDE29"+
-            "\uDE2A\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\uDE2B"+
-            "\u3D3B\u6F9F\uDE2C\u6FD3\uDE2D\uDE2E\uDE2F\uDE30"+
-            "\uDE31\uDE32\u51DF\uDE33\uDE34\uDE35\uDE36\u704B"+
-            "\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104"+
-            "\u3DE8\u71B4\u7196\uDE37\u712B\u7145\u5A88\u714A"+
-            "\uFFFD\u5C9C\uDE38\u714F\u9362\uDE39\u712C\uDE3A"+
-            "\uDE3B\uDE3C\u71BA\uDE3D\u70BD\u720E\u9442\u7215"+
-            "\u5911\u9443\u7224\u9341\uDE3E\u722E\u7240\uDE3F"+
-            "\u68BD\u7255\u7257\u3E55\uDE40\u680D\u6F3D\u7282"+
-            "\uFFFD\u732B\uDE41\uDE42\u48ED\uDE43\u7328\u732E"+
-            "\u73CF\u73AA\uDE44\uDE45\u73C9\u7449\uDE46\uDE47"+
-            "\uDE48\u6623\u36C5\uDE49\uDE4A\uDE4B\u73F7\u7415"+
-            "\u6903\uDE4C\u7439\uDE4D\u3ED7\uFFFD\uDE4E\u7460"+
-            "\uDE4F\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474"+
-            "\u93F1\u6A2C\u7482\u4953\uDE50\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
-            "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uDE51"+
-            "\uDE52\uDE53\u5B46\uDE54\uDE55\u74C8\uDE56\u750E"+
-            "\uFFFD\u751E\uDE57\uDE58\u5BD7\uDE59\u9385\u754D"+
-            "\u754A\u7567\u756E\uDE5A\u3F04\uDE5B\u758E\u745D"+
-            "\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676"+
-            "\uDE5C\u7690\u81EF\u37F8\uDE5D\uDE5E\u76A1\u76A5"+
-            "\u76B7\u76CC\uDE5F\u8462\uDE60\uDE61\uDE62\u771E"+
-            "\u7726\u7740\u64AF\uDE63\u7758\uDE64\u77AF\uDE65"+
-            "\uDE66\uDE67\u77F4\uFFFD\uDE68\uDE69\u68CA\u78AF"+
-            "\u78C7\u78D3\u96A5\u792E\uDE6A\u78D7\u7934\u78B1"+
-            "\uDE6B\u8FB8\u8884\uDE6C\uDE6D\uDE6E\u7986\u8900"+
-            "\u6902\u7980\uDE6F\u799D\uDE70\u793C\u79A9\u6E2A"+
-            "\uDE71\u3EA8\u79C6\uDE72\u79D4";
-
-        private final static short index1[] = {
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
-            9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-            25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, 33, 34, 0
-        };
-
-        private final String SurrogateMappings =
-            "\ud840\udd0c\ud840\udcd1\ud840\udccd\ud840\udccb"+
-            "\ud847\udfe8\ud840\udcca\ud840\udd0e\ud868\udfa9"+
-            "\ud844\udd45\ud85d\udf35\ud842\udde7\ud867\uddf6"+
-            "\ud85c\udc0e\ud868\udd33\ud861\udc6c\ud847\uddca"+
-            "\ud841\uddd0\ud84a\udee6\ud85f\udd84\ud843\udc42"+
-            "\ud843\udd15\ud854\udd2b\ud84b\udcc6\ud840\udf41"+
-            "\ud853\uddb8\ud865\udce5\ud860\udcbe\ud84b\udc38"+
-            "\ud860\udd5d\ud85a\uddf2\ud853\uddea\ud843\udd7c"+
-            "\ud843\udfb4\ud843\udcd5\ud844\udcf4\ud843\ude96"+
-            "\ud843\udc0b\ud843\udf64\ud84b\udca9\ud860\ude56"+
-            "\ud851\udcd3\ud843\udd46\ud866\ude4d\ud860\udce9"+
-            "\ud853\udea7\ud84b\udcc2\ud865\uddf4\ud854\udec7"+
-            "\ud865\udfd4\ud85e\udcc8\ud84b\udd44\ud858\udca5"+
-            "\ud84b\udd4c\ud84a\udfca\ud844\udc77\ud844\udc6f"+
-            "\ud859\udeda\ud859\udf16\ud85e\udda0\ud854\udc52"+
-            "\ud843\udc43\ud848\udda1\ud862\udf4c\ud841\udf31"+
-            "\ud840\udda9\ud84b\udd8d\ud851\uddc8\ud841\udcfc"+
-            "\ud858\udc97\ud843\udf4c\ud843\udd96\ud84a\ude66"+
-            "\ud844\udc9d\ud843\udd9c\ud849\udf75\ud869\ude01"+
-            "\ud843\ude09\ud84a\udecf\ud84b\udcc9\ud844\udcc8"+
-            "\ud84e\uddc2\ud860\ude9b\ud857\ude49\ud848\udcc7"+
-            "\ud843\udf31\ud84b\udcb2\ud865\udf20\ud853\ude3b"+
-            "\ud85d\udd74\ud84b\ude8b\ud848\ude08\ud869\ude5b"+
-            "\ud863\udccd\ud843\ude7a\ud843\udc34\ud85a\udc1c"+
-            "\ud844\udccf\ud84a\udc03\ud84a\udd39\ud854\udde3"+
-            "\ud843\ude8c\ud843\udf8d\ud843\udeaa\ud843\udf30"+
-            "\ud843\udd47\ud844\udd4f\ud843\ude4c\ud843\udeab"+
-            "\ud842\udfa9\ud843\udd48\ud844\udcc0\ud844\udd3d"+
-            "\ud849\ude96\ud843\udfad\ud84c\udff4\ud85d\ude39"+
-            "\ud84a\udfce\ud843\udd7e\ud843\udd7f\ud84b\udc51"+
-            "\ud84b\udc55\ud843\ude98\ud844\udcc7\ud843\udf2e"+
-            "\ud869\ude32\ud85a\udf50\ud863\udcd2\ud863\udd99"+
-            "\ud863\udcca\ud867\udec3\ud85d\udf5e\ud84b\uddee"+
-            "\ud859\udd72\ud860\udcbd\ud843\udefa\ud843\ude0f"+
-            "\ud843\ude77\ud843\udefb\ud853\uddeb\ud843\udcd6"+
-            "\ud849\udfb5\ud844\udcc9\ud843\ude10\ud843\ude78"+
-            "\ud844\udc78\ud844\udd48\ud860\ude07\ud845\udc55"+
-            "\ud843\ude79\ud853\ude50\ud84b\udda4\ud844\udc1d"+
-            "\ud844\udc1e\ud844\udcf5\ud844\udcf6\ud843\ude11"+
-            "\ud85d\ude94\ud860\udecd\ud843\udfb5\ud843\ude7b"+
-            "\ud854\udd7e\ud843\udfb6\ud844\udd80\ud854\uded8"+
-            "\ud868\udebd\ud852\uddda\ud846\udc3a\ud850\udd77"+
-            "\ud860\ude7c\ud855\udf3d\ud856\udf74\ud84c\udd3d"+
-            "\ud846\udfc1\ud87e\udc78\ud840\udc86\ud852\udce9"+
-            "\ud858\ude6a\ud858\udf4b\ud859\ude12\ud85a\udd51"+
-            "\ud85e\udcb2\ud863\ude0f\ud866\udc10\ud840\udc87"+
-            "\ud867\udc73\ud850\udd4e\ud854\uddcd\ud857\udd30"+
-            "\ud862\ude32\ud84c\ude81\ud868\udd07\ud846\udd80"+
-            "\ud861\udf0f\ud868\udeba\ud866\udd47\ud862\udeea"+
-            "\ud848\udc7e\ud862\udde3\ud847\uddb6\ud849\udf12"+
-            "\ud84c\udff9\ud84f\udc63\ud851\udd05\ud852\ude13"+
-            "\ud857\udca4\ud855\ude95\ud863\uddb9\ud845\udc3f"+
-            "\ud852\udd7b\ud85c\udd0d\ud85b\udd74\ud85a\udf15"+
-            "\ud85b\udfbe\ud862\uddc0\ud84f\udf41\ud840\udf25"+
-            "\ud843\uded8\ud84f\uded7\ud85b\uded3\ud855\udfe0"+
-            "\ud862\udfe9\ud856\udce1\ud865\udcd9\ud856\uddac"+
-            "\ud859\udc8d\ud857\udc01\ud854\udf0e\ud857\udcfe"+
-            "\ud856\udfb4\ud85b\udc7f\ud857\udd20\ud857\udc65"+
-            "\ud857\udcc1\ud852\udc82\ud851\udd78\ud85b\ude44"+
-            "\ud85b\uded6\ud850\udc57\ud858\udc29\ud845\udff9"+
-            "\ud860\udf6d\ud858\udd21\ud858\udd5a\ud858\uded0"+
-            "\ud858\udf51\ud845\ude61\ud840\udc68\ud84d\udf66"+
-            "\ud860\udf3a\ud859\udc89\ud868\udc87\ud85b\udcc3"+
-            "\ud849\udf14\ud859\ude26\ud84f\udde3\ud859\udee8"+
-            "\ud862\ude48\ud849\udef6\ud859\udc98\ud853\udfb8"+
-            "\ud845\udc8a\ud846\udc5e\ud852\ude65\ud852\ude95"+
-            "\ud842\udf0d\ud85a\ude52\ud84f\udd7e\ud845\udcfd"+
-            "\ud85a\udf0a\ud852\udda7\ud84d\udd30\ud845\udf73"+
-            "\ud84f\uddf8\ud87e\udd94\ud843\ude16\ud845\udfb4"+
-            "\ud84c\udd7d\ud84d\udd5a\ud84f\ude8b\ud85b\udda3"+
-            "\ud85a\udf05\ud85a\udf97\ud84d\uddce\ud85b\udda5"+
-            "\ud85b\uded4\ud85b\ude42\ud84b\udeef\ud856\udfe4"+
-            "\ud84f\udcb5\ud85a\udf96\ud85b\ude77\ud85b\ude43"+
-            "\ud857\udc91\ud857\udcc0\ud85b\ude99\ud861\ude25"+
-            "\ud861\ude3b\ud85c\udc88\ud845\udd82\ud85c\udccd"+
-            "\ud87e\uddb2\ud846\udca2\ud85c\udf9a\ud868\udcf8"+
-            "\ud84b\udc27\ud85d\udde0\ud84f\uddb9\ud85d\udde4"+
-            "\ud85d\udf0f\ud862\ude25\ud85e\udd24\ud85e\udebd"+
-            "\ud85e\ude59\ud85e\udf3a\ud84f\udf8f\ud85e\udf38"+
-            "\ud855\udc30\ud855\udd65\ud852\ude7a\ud845\udedf"+
-            "\ud85f\udd54\ud85f\udd8f\ud87e\uddd4\ud85f\udd53"+
-            "\ud85f\udd98\ud85f\uddbd\ud846\udd10\ud853\udcc9"+
-            "\ud860\udc02\ud844\udc14\ud852\udd8a\ud860\uddbc"+
-            "\ud85c\udd0c\ud860\udf65\ud861\udc12\ud868\ude9f"+
-            "\ud842\ude50\ud862\uddde\ud861\udd3d\ud84f\uddbb"+
-            "\ud84c\ude62\ud868\udc14\ud861\udebc\ud861\udd01"+
-            "\ud848\udf25\ud85b\uded7\ud861\udd3c\ud85e\udebe"+
-            "\ud861\udd6c\ud861\ude0b\ud861\udf13\ud861\udee6"+
-            "\ud862\udd33\ud847\ude89\ud855\uddb9\ud862\udec6"+
-            "\ud84f\udc9b\ud862\udf0c\ud855\udddb\ud843\udd31"+
-            "\ud862\udee1\ud862\udfeb\ud862\udee2\ud862\udee5"+
-            "\ud862\udfec\ud863\udc39\ud862\udfff\ud849\ude7a"+
-            "\ud861\uded8\ud844\ude7c\ud84f\ude2e\ud85b\uded5"+
-            "\ud862\udee0\ud85b\udcb8\ud840\ude74\ud859\udc10"+
-            "\ud864\udcaf\ud864\udce5\ud852\uded1\ud846\udd15"+
-            "\ud84c\udf0a\ud852\udee9\ud864\uddd5\ud864\uddeb"+
-            "\ud84c\udcb7\ud84c\udcbc\ud855\udc6c\ud865\udc33"+
-            "\ud865\udc1d\ud85e\udd7a\ud85c\udd75\ud841\ude30"+
-            "\ud850\udd5c\ud855\udf06\ud85b\udd27\ud845\uded3"+
-            "\ud852\ude29\ud866\udc57\ud866\udd05\ud855\udf25"+
-            "\ud864\udcb1\ud866\udfd5\ud866\udf05\ud861\ude00"+
-            "\ud85a\udda8\ud84c\udc7d\ud867\udd3e\ud846\udc63"+
-            "\ud850\ude4b\ud867\ude68\ud867\udfb7\ud868\udd92"+
-            "\ud868\uddab\ud868\udce1\ud868\udd23\ud868\udddf"+
-            "\ud868\udd34\ud848\udd5b\ud868\udd93\ud868\ude20"+
-            "\ud846\udd3b\ud868\ude33\ud868\udcb9\ud868\udeb4"+
-            "\ud850\udf64\ud863\udc2b\ud85b\udda2\ud864\udc8b"+
-            "\ud852\udd75\ud852\uddbb\ud852\uddf8\ud850\udf48"+
-            "\ud852\ude51\ud862\udfda\ud846\udcfa\ud862\udd7e"+
-            "\ud863\ude36\ud862\ude44\ud862\udd6c\ud851\udcb9"+
-            "\ud851\udc73\ud850\udff8\ud845\udfef\ud846\udcbe"+
-            "\ud84d\udd99\ud846\udc85\ud855\udc2f\ud845\udff8"+
-            "\ud845\udefb\ud846\udc39\ud845\udf74\ud846\udcd1"+
-            "\ud857\udf4b\ud845\udec0\ud852\ude25\ud844\udffe"+
-            "\ud844\udea8\ud844\udfc6\ud845\udcb6\ud84d\udea6"+
-            "\ud852\udd94\ud85c\udd65\ud84f\ude31\ud855\udd5c"+
-            "\ud84f\udefb\ud85c\udc52\ud84d\udeee\ud866\udd9d"+
-            "\ud85b\udf26\ud846\udd22\ud84d\udf3f\ud850\udce1"+
-            "\ud850\udc8b\ud850\udd0f\ud85b\udc21\ud859\udeb1"+
-            "\ud843\udfdf\ud842\udfa8\ud843\ude0d\ud862\udf13"+
-            "\ud851\udc36\ud841\udc65\ud840\udf7f\ud855\ude51"+
-            "\ud840\uddab\ud840\udfcb\ud840\udf0a\ud841\udc14"+
-            "\ud840\udec0\ud863\udeb3\ud840\ude75\ud840\ude0c"+
-            "\ud852\ude0e\ud84f\ude8a\ud84d\udd95\ud84f\ude39"+
-            "\ud84f\udebf\ud846\udc84\ud84f\ude89\ud841\udde0"+
-            "\ud841\udca3\ud841\udc92\ud841\udc91\ud862\ude9c"+
-            "\ud841\udf0e\ud842\udc73\ud850\udf8c\ud843\udc20"+
-            "\ud852\uddac\ud844\udce4\ud843\ude1d\ud852\udebc"+
-            "\ud850\udc8d\ud850\udcc9\ud840\udf45\ud842\udfc6"+
-            "\ud862\ude46\ud845\udefa\ud845\udf6f\ud845\udf10"+
-            "\ud856\udd46\ud846\uddf3\ud846\udc61\ud850\ude95"+
-            "\ud857\ude83\ud862\udfd7\ud841\udc13\ud844\udf03"+
-            "\ud862\uddfb\ud846\udd96\ud846\udd7c\ud84e\udeee"+
-            "\ud846\udd03\ud846\udd04\ud846\udca0\ud845\udefe"+
-            "\ud862\ude47\ud847\uddba\ud84d\udc72\ud862\udda8"+
-            "\ud846\udd27\ud845\udfab\ud845\udf3b\ud85d\uddfd"+
-            "\ud84a\udc60\ud849\ude2b\ud849\uddaf\ud849\uddbe"+
-            "\ud864\udc88\ud85b\udf73\ud840\udc3e\ud840\udc46"+
-            "\ud849\ude1b\ud84b\udc9b\ud84b\udd07\ud851\uded4"+
-            "\ud864\udd4d\ud851\ude65\ud84a\udf6a\ud84a\udf22"+
-            "\ud84d\udc50\ud866\udcea\ud84b\ude78\ud869\udc5b"+
-            "\ud852\udde3\ud84b\udd67\ud84b\udca1\ud84c\udc8e"+
-            "\ud84c\udead\ud852\udd89\ud84c\udeab\ud84c\udee0"+
-            "\ud846\udcd9\ud865\udc3f\ud84c\ude89\ud84c\uddb3"+
-            "\ud855\udd84\ud862\udf22\ud855\udd8f\ud845\udefc"+
-            "\ud855\udd5b\ud855\udc25\ud84c\udd03\ud846\udc2a"+
-            "\ud84c\ude34\ud84c\ude0f\ud84c\udd82\ud850\udec9"+
-            "\ud85b\udd24\ud85e\udc70\ud847\uddeb\ud84c\uded2"+
-            "\ud84c\udee1\ud856\udc72\ud84e\udc3a\ud84d\udfbc"+
-            "\ud84d\udfa2\ud84c\udffe\ud851\ude2a\ud84d\udfd5"+
-            "\ud851\udc87\ud846\udd12\ud84f\udfc0\ud84f\udc9a"+
-            "\ud862\udfea\ud862\udecb\ud860\udc1e\ud862\udddc"+
-            "\ud852\uddec\ud84f\udf7f\ud850\udc3c\ud850\udf1a"+
-            "\ud850\ude76\ud851\udf8f\ud851\udf25\ud852\udea4"+
-            "\ud841\uddeb\ud84f\udef8\ud84d\ude5f\ud852\ude4a"+
-            "\ud852\udd17\ud857\udfe1\ud852\udedf\ud863\udc23"+
-            "\ud84f\udf35\ud85b\uddea\ud853\udcd9\ud853\udd06"+
-            "\ud869\uddc6\ud862\udecc\ud852\uddab\ud852\udd8e"+
-            "\ud852\ude4e\ud852\uddc5\ud852\udcf3\ud862\udee3"+
-            "\ud846\udc64\ud854\ude21\ud854\udde7\ud84c\ude32"+
-            "\ud851\ude97\ud84d\udf81\ud852\udcf0\ud852\udeba"+
-            "\ud852\udec7\ud852\ude96\ud858\uddae\ud855\udd81"+
-            "\ud85d\udf41\ud855\udee3\ud84f\udefa\ud845\udee6"+
-            "\ud843\udd4c\ud852\udd8c\ud840\ude99\ud84f\uddba"+
-            "\ud845\udf6e\ud840\uddd4\ud843\udc0d\ud849\udef5"+
-            "\ud856\udeaf\ud856\ude9c\ud840\ude5b\ud856\udfc6"+
-            "\ud856\udfb3\ud857\udebc\ud857\udea6\ud852\uddf9"+
-            "\ud845\udfb0\ud858\ude61\ud858\udd5c\ud85e\udf48"+
-            "\ud857\ude82\ud85a\udf75\ud842\udd16\ud840\udc4e"+
-            "\ud84d\uddcf\ud859\udc12\ud858\udff8\ud852\udd62"+
-            "\ud842\udc2c\ud856\udee9\ud857\udd43\ud857\ude0e"+
-            "\ud84d\udc3f\ud852\uddf7\ud859\uddad\ud859\udda0"+
-            "\ud85c\udd27\ud85b\udcd1\ud859\udfb4\ud85a\ude42"+
-            "\ud85a\ude51\ud85b\udda7\ud85c\ude1b\ud846\udc40"+
-            "\ud846\udca1\ud846\udcd8\ud87e\uddbc\ud84f\udd8f"+
-            "\ud85d\udc22\ud855\ude83\ud85d\udf85\ud85d\udf84"+
-            "\ud862\udff5\ud862\udfd9\ud862\udf9c\ud862\uddf9"+
-            "\ud865\udc48\ud850\ude84\ud846\udc45\ud85f\udddc"+
-            "\ud853\udc09\ud848\udf21\ud845\udfda\ud852\udd2f"+
-            "\ud862\ude4b\ud862\udefc\ud863\udc1d\ud863\udc3b"+
-            "\ud863\udd34\ud852\udcff\ud852\ude42\ud850\udfea"+
-            "\ud84c\ude25\ud863\udee7\ud863\ude66\ud863\ude65"+
-            "\ud852\udded\ud852\ude78\ud84f\udfee\ud864\udcb0"+
-            "\ud864\udc93\ud855\udfdf\ud862\udd89\ud863\udc26"+
-            "\ud862\udf2f\ud858\udfbe\ud850\ude1b\ud843\udf26"+
-            "\ud862\udfc5\ud852\udeb2\ud865\udcda\ud865\uddd7"+
-            "\ud862\udf50\ud852\ude67\ud862\udf64\ud862\ude45"+
-            "\ud85e\udf06\ud862\udf65\ud856\udcc8\ud866\udcf1"+
-            "\ud866\udd48\ud844\udf02\ud852\uddb8\ud845\udce8"+
-            "\ud849\udf1f\ud84f\uddb8\ud849\udf81\ud84a\udd6b"+
-            "\ud867\ude2d\ud868\uddf5\ud868\udcfe\ud850\udd04"+
-            "\ud868\uddb4\ud868\udced\ud868\udcf3\ud866\udd2f"+
-            "\ud85b\ude12\ud85b\udfdf\ud85a\udf82\ud85b\udda4"+
-            "\ud85b\ude84\ud85b\uddf0\ud85b\ude00\ud84d\udfd7"+
-            "\ud858\udc64\ud84d\udd9c\ud84d\ude40\ud852\uddde"+
-            "\ud840\udebf\ud855\udd5d\ud845\udf57\ud84c\uddc9"+
-            "\ud852\udd41\ud850\uddb5\ud850\uddac\ud85b\udc40"+
-            "\ud853\udf97\ud845\udfb5\ud862\ude49\ud851\udc88"+
-            "\ud862\uddfc\ud846\udcd6\ud843\udf1d\ud85b\udcc0"+
-            "\ud845\udc13\ud850\udefa\ud84b\udc26\ud850\udfc1"+
-            "\ud84f\uddb7\ud859\udf41\ud858\udd5b\ud858\udca4"+
-            "\ud852\uddb9\ud852\udd8b\ud862\uddfa\ud862\udf63"+
-            "\ud846\udc9f\ud852\udeb3\ud852\ude3e\ud852\ude94"+
-            "\ud845\udfd9\ud852\ude66\ud840\udfa7\ud845\udc24"+
-            "\ud852\udde5\ud852\udd16\ud852\udd76\ud841\udcfe"+
-            "\ud862\udece\ud862\ude16\ud862\udfe7\ud855\uddd5"+
-            "\ud862\ude82\ud852\udd43\ud843\udcff\ud841\ude1a"+
-            "\ud842\udfeb\ud843\udcb8\ud845\udffa\ud845\udec2"+
-            "\ud852\ude50\ud846\udc52\ud862\udec0\ud852\uddad"+
-            "\ud846\udcbf\ud846\udc83\ud85d\udc84\ud84f\udd5b"+
-            "\ud862\ude81\ud846\udc62\ud842\udeb4\ud844\udf9c"+
-            "\ud860\ude18\ud864\udce4\ud85f\ude4f\ud84f\udfed"+
-            "\ud84f\ude2d\ud840\udff5\ud863\udc1c\ud85a\udfc0"+
-            "\ud845\udc52\ud850\udf62\ud852\ude71\ud84b\udfe3"+
-            "\ud844\udeb0\ud848\udfbd\ud844\udf98\ud84d\udce5"+
-            "\ud85e\udff4\ud84d\udedf\ud862\ude83\ud84d\udfd6"+
-            "\ud84c\udffa\ud853\udc9f\ud84d\udead\ud85b\udcb7"+
-            "\ud85b\udd26\ud85b\udd51\ud85b\udc82\ud85b\udfde"+
-            "\ud85c\udd09\ud845\udf3a\ud85b\udc80\ud85c\udc53"+
-            "\ud845\udfdb\ud845\udfb3\ud846\udd05\ud850\uddfc"+
-            "\ud845\udf3c\ud850\udea5\ud850\ude93\ud84f\udef9"+
-            "\ud85d\udf36\ud851\udc5b\ud850\udeca\ud850\ude59"+
-            "\ud862\udde1\ud85b\udd28\ud851\udcce\ud85f\ude4d"+
-            "\ud850\udfbd\ud850\ude56\ud844\udf04\ud850\udfe9"+
-            "\ud87e\udc25\ud852\ude4f\ud852\ude5d\ud845\udfdf"+
-            "\ud84e\udefa\ud84c\udf00\ud840\ude14\ud842\udcd5"+
-            "\ud841\ude19\ud847\udf9e\ud868\udeb6\ud864\udd5b"+
-            "\ud862\ude59\ud865\udc20\ud85e\udef4\ud855\udef6"+
-            "\ud85e\udf18\ud852\udcf2\ud853\udf5c\ud855\udd35"+
-            "\ud843\udccf\ud85e\udd67\ud846\udfc2\ud840\udc94"+
-            "\ud840\udeb7\ud840\udfa0\ud841\udcd7\ud841\uddd5"+
-            "\ud841\ude15\ud841\ude76\ud845\udeba\ud842\udec2"+
-            "\ud842\udecd\ud842\udfbf\ud87e\udc3b\ud842\udfcb"+
-            "\ud842\udffb\ud843\udc3b\ud843\udc53\ud843\udc65"+
-            "\ud843\udc7c\ud843\udc8d\ud843\udcb5\ud843\udcdd"+
-            "\ud843\udced\ud843\udd6f\ud843\uddb2\ud843\uddc8"+
-            "\ud843\ude04\ud843\ude0e\ud843\uded7\ud843\udf90"+
-            "\ud843\udf2d\ud843\ude73\ud843\udfbc\ud844\udc5c"+
-            "\ud844\udc4f\ud844\udc76\ud844\udc7b\ud844\udc88"+
-            "\ud844\udc96\ud844\udcbf\ud844\udcd3\ud844\udd2f"+
-            "\ud844\udd3b\ud844\udee3\ud844\udf75\ud844\udf36"+
-            "\ud845\udd77\ud845\ude19\ud845\udfc3\ud845\udfc7"+
-            "\ud846\udc2d\ud846\udd6a\ud846\ude2d\ud846\ude45"+
-            "\ud847\udc2a\ud847\udc70\ud847\udcac\ud847\udec8"+
-            "\ud847\uded5\ud847\udf15\ud848\udc45\ud848\ude7c"+
-            "\ud848\udfd7\ud848\udffa\ud849\udf2a\ud84a\udc71"+
-            "\ud84a\udd4f\ud84a\udd67\ud84a\udd93\ud84a\uded5"+
-            "\ud84a\udee8\ud84a\udf0e\ud84a\udf3f\ud84b\udc4c"+
-            "\ud84b\udc88\ud84b\udcb7\ud856\udfe8\ud84b\udd08"+
-            "\ud84b\udd12\ud84b\uddb7\ud84b\udd95\ud84b\ude42"+
-            "\ud84b\udf74\ud84b\udfcc\ud84c\udc33\ud84c\udc66"+
-            "\ud84c\udf1f\ud84c\udfde\ud85e\ude79\ud84d\udd67"+
-            "\ud84d\uddf3\ud852\uddba\ud84d\ude1a\ud84d\udf16"+
-            "\ud840\udf46\ud84e\udea7\ud85d\ude57\ud857\udfe2"+
-            "\ud84f\ude11\ud84f\udeb9\ud85d\uddfe\ud848\udc9a"+
-            "\ud850\udd19\ud862\ude9a\ud850\udeee\ud850\udf0d"+
-            "\ud850\udc3b\ud850\udf34\ud850\udf96\ud852\ude45"+
-            "\ud841\uddca\ud841\ude11\ud847\udea8\ud84f\udcff"+
-            "\ud851\udc04\ud851\udcd6\ud851\ude74\ud851\udf2f"+
-            "\ud861\udde8\ud866\uddc9\ud848\uddc3\ud862\udf4e"+
-            "\ud852\udc12\ud852\udcfb\ud852\ude15\ud852\udec0"+
-            "\ud843\udc78\ud853\udea5\ud853\udf86\ud841\udf79"+
-            "\ud854\udc2c\ud854\ude99\ud855\udc19\ud84f\udf4a"+
-            "\ud852\udea7\ud855\udc46\ud855\udc6e\ud85a\udf52"+
-            "\ud855\udd3f\ud85d\ude32\ud855\udd5e\ud855\udd62"+
-            "\ud855\udd66\ud855\udfc7\ud852\udd3f\ud856\udc5d"+
-            "\ud84c\udfcc\ud856\udd03\ud862\udd48\ud856\udeae"+
-            "\ud856\udf89\ud857\udc06\ud847\udd90\ud858\udd02"+
-            "\ud85f\udc12\ud858\uddb2\ud853\udf9a\ud859\udc02"+
-            "\ud859\udc4a\ud85a\udff7\ud859\udc84\ud846\udd1c"+
-            "\ud852\uddf6\ud859\udc88\ud84f\udfef\ud859\udd12"+
-            "\ud859\uddbf\ud859\udeb5\ud849\udf1b\ud855\udfe1"+
-            "\ud87e\udccd\ud851\udd21\ud859\udefc\ud852\udd34"+
-            "\ud85b\udcbd\ud859\udf99\ud85a\udc6e\ud859\udc11"+
-            "\ud85a\udc5e\ud85a\udcc7\ud864\udcc0\ud842\ude11"+
-            "\ud85a\udd26\ud85a\udd39\ud85a\uddfa\ud85a\ude2d"+
-            "\ud859\udc69\ud840\udc21\ud85a\ude34\ud85a\udf5b"+
-            "\ud84d\udd19\ud85a\udf9d\ud85b\udca4\ud85b\uddae"+
-            "\ud849\udd8d\ud85c\udc4b\ud85c\uddcd\ud85c\ude80"+
-            "\ud85c\ude85\ud848\udd7a\ud85c\ude8b\ud85c\udee6"+
-            "\ud852\uddd0\ud85d\udc50\ud843\udef8\ud84a\udd26"+
-            "\ud861\udc73\ud845\udfb1\ud852\ude2a\ud846\udc20"+
-            "\ud867\udcad\ud866\udca4\ud85d\udfcc\ud85e\udc58"+
-            "\ud845\ude0a\ud84d\udf2f\ud860\udce8\ud844\udfc5"+
-            "\ud85e\udddd\ud864\udda8\ud85c\udcaf\ud862\uddab"+
-            "\ud85e\uddfd\ud85e\ude0a\ud85e\udf0b\ud85f\udd66"+
-            "\ud850\udd7a\ud860\udc09\ud868\udedf\ud860\udf18"+
-            "\ud85b\ude07\ud860\udd6f\ud860\udc23\ud85a\uddb5"+
-            "\ud844\udfed\ud84c\ude2f\ud860\udc48\ud863\udc30"+
-            "\ud860\udc83\ud862\udd49\ud852\udd88\ud852\udea5"+
-            "\ud84f\udf81\ud860\udc90\ud860\udcf4\ud860\udd2e"+
-            "\ud847\udfa1\ud860\udd4f\ud860\udd89\ud860\uddaf"+
-            "\ud860\ude1a\ud860\udf06\ud860\udf2f\ud860\udf8a"+
-            "\ud861\udc68\ud861\udeaa\ud862\udd56\ud862\uddb8"+
-            "\ud862\udde7\ud862\udde8\ud862\udf46\ud862\udfd4"+
-            "\ud863\udc09\ud863\udfc5\ud864\udcec\ud864\udd10"+
-            "\ud864\udd3c\ud864\udd5e\ud852\udeca\ud865\udce7"+
-            "\ud865\udde9\ud865\uddb0\ud865\uddb8\ud865\udf32"+
-            "\ud866\udcd1\ud866\udd49\ud866\udd6a\ud866\uddc3"+
-            "\ud866\ude28\ud866\udf0e\ud867\udd5a\ud867\udd9b"+
-            "\ud867\udef8\ud867\udf23\ud868\ude93\ud868\udeff"+
-            "\ud869\uddcb\ud843\udc9c\ud849\udcb0\ud852\ude93"+
-            "\ud862\udf2c\ud85e\udc9d\ud845\udff5\ud860\udc24"+
-            "\ud862\udf6c\ud862\udf99\ud85e\ude3e\ud859\udeaf"+
-            "\ud85d\ude55\ud84f\udcb7\ud855\ude35\ud856\udd56"+
-            "\ud857\ude81\ud858\ude58\ud843\ude6d\ud84f\ude88"+
-            "\ud853\udc9e\ud845\udff6\ud846\udc7b\ud857\udc4a"+
-            "\ud854\udf11\ud867\udd98\ud857\uded8\ud84f\udd40"+
-            "\ud843\udfea\ud843\udd49\ud84d\udeba\ud843\ude9d"+
-            "\ud860\udee2\ud843\udc41\ud843\udc96\ud854\udd48"+
-            "\ud843\ude76\ud84b\udc62\ud843\udea2\ud844\udc75"+
-            "\ud84a\udf43\ud84b\udeb3\ud843\udda7\ud85a\udc8a"+
-            "\ud844\udcc1\ud851\udf06\ud85a\udc93\ud849\udef4"+
-            "\ud85f\udd2f\ud850\udda3\ud85f\udd73\ud85b\uded0"+
-            "\ud85c\udeb6\ud844\uddd9\ud84f\udcfc\ud869\udea9"+
-            "\ud843\udeac\ud843\udef9\ud847\udca2\ud853\udfc2"+
-            "\ud85f\udff9\ud843\udfeb\ud84b\udda0\ud851\udfe0"+
-            "\ud867\udd7c\ud843\udfec\ud843\ude0a\ud85d\udda3"+
-            "\ud843\udfed\ud858\udc48\ud844\udd87\ud851\ude18"+
-            "\ud852\udf6e\ud856\ude95\ud842\udd79\ud849\udc65"+
-            "\ud867\udeac\ud84f\udcfe\ud867\udf30\ud853\udfa9"+
-            "\ud865\udd9e\ud867\udfde\ud84f\uddb6\ud85c\udeb2"+
-            "\ud859\udfb3\ud84d\udf20\ud84f\udef7\ud84f\ude2c"+
-            "\ud841\udc8e\ud843\udeb6\ud869\udc34\ud84c\udcda"+
-            "\ud850\udff2\ud844\udea9\ud852\udd63\ud867\ude06"+
-            "\ud85c\udcae\ud845\udf6c\ud865\udcd0\ud858\udf35"+
-            "\ud85c\udd64\ud843\udd28\ud85b\udd22\ud852\udee2"+
-            "\ud843\udd71\ud847\udf0f\ud847\uddd1\ud852\udd3e"+
-            "\ud845\udf6d\ud863\ude97\ud85b\udd23\ud840\udffc"+
-            "\ud857\udc21\ud84f\udcfd\ud852\udd19\ud843\udcd4"+
-            "\ud840\uddf2\ud869\ude4a\ud860\udf7d\ud852\ude77"+
-            "\ud862\ude5a\ud868\udeb2\ud87e\udc40\ud852\udebb"+
-            "\ud846\udc3b\ud85b\ude05\ud849\udd1b\ud858\udd59"+
-            "\ud84c\udff5\ud862\udfc2\ud863\ude39\ud847\udd46"+
-            "\ud843\udf3b\ud857\udf1a\ud85d\udc86\ud859\udfcc"+
-            "\ud85b\uded1\ud850\udc11\ud862\udf2d\ud84f\udcc7"+
-            "\ud857\uded7\ud85d\ude56\ud855\udd31\ud846\udd44"+
-            "\ud844\udefe\ud866\udd03\ud85b\udddc\ud85c\udcad"+
-            "\ud858\uddad\ud862\ude0f\ud84d\ude77\ud840\udcee"+
-            "\ud85a\udc46\ud853\udf0e\ud858\udf4c\ud858\ude6b"+
-            "\ud840\udccc\ud840\udc8a\ud85d\ude07\ud841\udd47"+
-            "\ud841\udddf\ud84f\udfc5\ud852\udd42\ud862\udde4"+
-            "\ud846\udddb\ud84f\udcc8\ud852\udd33\ud862\uddaa"+
-            "\ud840\udea0\ud85a\udfb3\ud844\udf05\ud849\udced"+
-            "\ud85b\udd29\ud85e\ude84\ud84d\ude00\ud852\udeb1"+
-            "\ud849\udd13\ud840\udf7e\ud840\udf80\ud840\udf47"+
-            "\ud841\udc1f\ud852\udda4\ud841\udc87\ud84c\udfb4"+
-            "\ud842\udfff\ud848\udcfc\ud840\udee5\ud849\udd30"+
-            "\ud841\udd8e\ud84c\ude33\ud846\udd83\ud841\uddb3"+
-            "\ud84f\udc99\ud852\udea6\ud84d\udf2d\ud85a\udf13"+
-            "\ud862\udede\ud84f\udf80\ud842\udd54\ud84f\udfec"+
-            "\ud842\udfe2\ud845\udf26\ud845\udee8\ud861\udeab"+
-            "\ud845\udd96\ud845\ude13\ud862\ude9b\ud855\udf72"+
-            "\ud842\udf8f\ud84f\udfeb\ud84b\udda3\ud843\udc77"+
-            "\ud85a\udf53\ud843\udd74\ud845\udf0d\ud843\udedd"+
-            "\ud843\udd4d\ud862\uddbc\ud849\ude98\ud846\udcd7"+
-            "\ud850\udc3a\ud851\udc35\ud844\udcb4\ud84c\ude8a"+
-            "\ud862\udf66\ud844\ude4f\ud850\udda5\ud85b\udc7e"+
-            "\ud845\udc16\ud845\udc54\ud850\udf63\ud852\udff5"+
-            "\ud844\ude3c\ud868\udd50\ud850\ude78\ud845\ude3e"+
-            "\ud845\ude92\ud843\udd4e\ud85b\udc81\ud85b\udd2a"+
-            "\ud845\udfdc\ud845\udffb\ud845\udfb2\ud85b\udda6"+
-            "\ud846\udc28\ud845\uded5\ud85b\ude45\ud852\udda9"+
-            "\ud85b\udfa1\ud849\udd54\ud846\udd11\ud845\udeb8"+
-            "\ud85e\ude0e\ud840\ude04\ud846\ude34\ud856\uddcc"+
-            "\ud841\udda5\ud846\udf44\ud847\udca5\ud85a\udf28"+
-            "\ud847\uddf9\ud847\ude37\ud847\udea4\ud852\udd01"+
-            "\ud848\udc49\ud848\udd73\ud851\udcbc\ud843\udcd3"+
-            "\ud845\udf71\ud861\udc82\ud840\uddc1\ud87e\udc94"+
-            "\ud844\udf3a\ud85a\udc88\ud848\udfd0\ud849\udc71"+
-            "\ud85b\ude6e\ud862\ude36\ud854\ude50\ud847\udf6a"+
-            "\ud85c\udcf8\ud849\ude68\ud840\ude9e\ud862\ude29"+
-            "\ud846\udc77\ud849\udfb4\ud852\udd82\ud852\udd8f"+
-            "\ud85e\ude53\ud87e\udca6\ud85b\uded2\ud841\ude56"+
-            "\ud84f\udfb7\ud84a\udc5f\ud862\udf9d\ud866\udd5d"+
-            "\ud84a\udd80\ud84a\udcc1\ud840\udd18\ud845\udf70"+
-            "\ud84b\ude0d\ud852\udddf\ud844\udf8e\ud845\udffc"+
-            "\ud84b\ude36\ud850\udc8c\ud855\udf1d\ud852\ude28"+
-            "\ud852\ude23\ud84c\udc7e\ud852\udd40\ud846\udc29"+
-            "\ud84d\udc00\ud84c\uddf7\ud84c\uddf8\ud84c\udda4"+
-            "\ud84c\udda5\ud843\ude75\ud854\udde6\ud847\ude3d"+
-            "\ud84c\ude31\ud861\uddf4\ud84c\uddc8\ud854\udf13"+
-            "\ud84a\udcf7\ud850\udf9c\ud852\ude21\ud84d\udfc2"+
-            "\ud850\uddcd\ud864\udced\ud84c\udfe6\ud85b\udda0"+
-            "\ud84d\udc6f\ud862\udedf\ud84d\uddcd\ud84d\ude3c"+
-            "\ud862\ude4a\ud840\udfc9\ud84d\ude59\ud848\udd2a"+
-            "\ud84d\udf03\ud864\udd9c\ud842\udd23\ud849\udfcd"+
-            "\ud84e\udedb\ud840\udfb5\ud846\udd58\ud84e\udf5a"+
-            "\ud84f\udefc\ud849\udc8b\ud852\udcf1\ud85a\udf51"+
-            "\ud84f\uddbc\ud84f\uddbd\ud850\udda4\ud852\udd0c"+
-            "\ud852\udd00\ud84f\udcc9\ud843\udd32\ud84c\uddf9"+
-            "\ud849\udc91\ud85b\udd25\ud85b\udda1\ud85b\uddeb"+
-            "\ud852\udd7f\ud850\udc85\ud85b\ude72\ud85b\udf74"+
-            "\ud862\udf21\ud84f\ude2f\ud84f\udf82\ud84c\udc4b"+
-            "\ud84f\ude30\ud845\udc97\ud850\udc3d\ud864\udd70"+
-            "\ud850\udd44\ud850\udc91\ud850\udd55\ud850\udc39"+
-            "\ud84f\udff0\ud84f\udfb4\ud850\udd3f\ud850\udd56"+
-            "\ud850\udd57\ud850\udd40\ud858\udddd\ud850\ude77"+
-            "\ud850\udf65\ud850\udec1\ud851\udc5a\ud852\ude27"+
-            "\ud852\ude22\ud862\udfe8\ud855\ude05\ud852\udd74"+
-            "\ud84c\udc44\ud852\udc23\ud862\udc2b\ud862\udc04"+
-            "\ud843\udc3a\ud85a\ude2e\ud850\udde2\ud845\udee7"+
-            "\ud852\ude24\ud852\uddb7\ud852\udd8d\ud852\uddfb"+
-            "\ud852\ude26\ud841\uddc3\ud84a\udcad\ud863\udeb2"+
-            "\ud852\ude8c\ud850\udd5f\ud852\ude79\ud862\udf8f"+
-            "\ud863\udc03\ud846\udc9e\ud846\udd88\ud863\uded9"+
-            "\ud846\ude4b\ud863\udeac\ud853\udf82\ud853\udd13"+
-            "\ud858\udff5\ud85a\udd11\ud85a\udd0e\ud85b\udf9f"+
-            "\ud854\udc9d\ud854\udd7d\ud847\ude1c\ud854\ude20"+
-            "\ud84c\udeac\ud862\udd64\ud862\udd68\ud845\udec1"+
-            "\ud844\udf76\ud852\ude12\ud855\udde0\ud85d\ude0c"+
-            "\ud862\udf2b\ud858\udc83\ud849\ude1c\ud856\udc57"+
-            "\ud85e\udf39\ud85c\udd26\ud864\udd0d";
-
-        static String index2[] = {
-            innerIndex0,
-            innerIndex1,
-            innerIndex2
-        };
-    }
-
-    protected static class Encoder extends DoubleByteEncoder {
-
-        private byte[] encoded = new byte[2];
-
-        public Encoder(Charset cs) {
-            super(cs,
-                  index1,
-                  index2);
-        }
-
-        protected byte[] encodeSurrogate(char high, char low) {
-                int index = searchTabSurr(high, low, unicodeSearchTab);
-
-                if (index >= 0) {
-                    int val = (int)nativeSupplementary.charAt(index / 2);
-
-                    encoded[0] = (byte)((val & 0x0000ff00)>>8);
-                    encoded[1] = (byte) (val  & 0xff);
-                    return encoded;
-                } else {
-                    // Surrogate pair cannot be mapped
-                    return null;
-                }
-        }
-
-        /**
-         * Perform a binary search within the sorted array of
-         * surrogate values to locate the position of the native
-         * two byte value equivalent encoded using Shift_JIS encoding
-         * scheme
-         */
-        protected int searchTabSurr(char code1, char code2, String table) {
-            int i = 0, l, h;
-            for (l = 0, h = table.length() - 2; l < h; ) {
-                if (table.charAt(l) == code1 && table.charAt(l+1) == code2) {
-                     i = l;
-                     break;
-                }
-                if (table.charAt(h) == code1 && table.charAt(h+1) == code2) {
-                     i = h;
-                     break;
-                }
-                i = (l + h) / 2;
-                i = (i%2 != 0)? i - 1 : i;
-
-                if (table.charAt(i) == code1 && table.charAt(i+1) == code2)
-                    break;
-
-                int sum = (int)(table.charAt(i+2) - 0xd800) * 0x400
-                            + (int)(table.charAt(i+3) - 0xdc00) + 0x10000;
-                int sum2 = (int)(code1 - 0xd800) * 0x400
-                            + (int)(code2 - 0xdc00) + 0x10000;
-                if (sum == sum2)
-                    return (i + 2);
-
-                if (sum < sum2)
-                    l = i + 2;
-                else
-                    h = i - 2;
-            }
-            if (code1 == table.charAt(i) && code2 == table.charAt(i+1)) {
-                return i;
-            } else {
-                return -1;
-            }
-        }
-        private final static String innerIndex0=
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC6D8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8859\u8857\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u885D\u885B\u8866\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8861\u885F\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u886A\u8868\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u886F\u886D\u88A7\u0000\u8873\u8871\u0000\u0000"+
-            "\u0000\u0000\u8877\u8875\u0000\u0000\u0000\u0000"+
-            "\uC8FB\u887B\u8879\u0000\u88A2\u0000\u0000\u0000"+
-            "\u8856\u8867\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u885A\u886C\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u885C\u886E\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8870\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uC8FC\u885E\u8874\u0000\u0000"+
-            "\u0000\u0000\u0000\uC8FA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8878\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8858\u8869\u0000"+
-            "\u8872\u8860\u8876\u0000\u887A\u0000\u887C\u0000"+
-            "\u887D\u0000\u887E\u0000\u88A1\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC8F6\u886B\u0000\u0000\uC8F8\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uC8F7\u0000\u0000\u0000\u0000"+
-            "\u0000\u88A8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uC8FE\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC8F9\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uC8F5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uC8FD\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC6D9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uC7F9\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC7F3\uC7F4\uC7F5\uC7F6\uC7F7\uC7F8\uC7FA\uC7FB"+
-            "\uC7FC\uC7FD\uC7FE\uC840\uC841\uC842\uC843\uC844"+
-            "\uC845\uC846\uC847\uC848\uC849\uC84A\uC84B\uC84C"+
-            "\uC84D\uC84E\uC84F\uC850\uC851\uC852\uC853\uC854"+
-            "\uC855\uC856\uC857\uC858\uC859\uC85A\uC85C\uC85D"+
-            "\uC85E\uC85F\uC860\uC861\uC862\uC863\uC864\uC865"+
-            "\uC866\uC867\uC868\uC869\uC86A\uC86B\uC86C\uC86D"+
-            "\uC86E\uC86F\uC870\uC871\uC872\uC873\uC874\uC875"+
-            "\u0000\uC85B\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8863\u88A4"+
-            "\u8865\u88A6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC8D2\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uC8D3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC6B5\uC6B6\uC6B7\uC6B8\uC6B9\uC6BA\uC6BB\uC6BC"+
-            "\uC6BD\uC6BE\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC877\uC878\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uC876"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC6A1\uC6A2\uC6A3\uC6A4\uC6A5\uC6A6\uC6A7\uC6A8"+
-            "\uC6A9\uC6AA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uC6AB\uC6AC\uC6AD\uC6AE"+
-            "\uC6AF\uC6B0\uC6B1\uC6B2\uC6B3\uC6B4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uF9F9\uF9F8\uF9E6\uF9EF\uF9DD\uF9E8\uF9F1\uF9DF"+
-            "\uF9EC\uF9F5\uF9E3\uF9EE\uF9F7\uF9E5\uF9E9\uF9F2"+
-            "\uF9E0\uF9EB\uF9F4\uF9E2\uF9E7\uF9F0\uF9DE\uF9ED"+
-            "\uF9F6\uF9E4\uF9EA\uF9F3\uF9E1\uF9FA\uF9FB\uF9FD"+
-            "\uF9FC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC6E6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC8D6\u0000\u0000\u0000\uC8D7\u0000\uC8D8\uC8D9"+
-            "\uC8DA\u0000\uC8DB\u0000\uC8DC\uC8DD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC8DE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uC8DF\uC8E0\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC8E1\u0000\uC8E2"+
-            "\u0000\u0000\uC8E3\u0000\uC8E4\u0000\uC8E5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC8E6\u0000"+
-            "\u0000\u0000\u0000\u0000\uC8E7\u0000\uC8E8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC8E9\u0000"+
-            "\u0000\u0000\uC8EA\u0000\uC8EB\uC8EC\u0000\uC8ED"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC8EE\uC8EF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC8F0\u0000"+
-            "\u0000\u0000\u0000\uC8F1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uC6CD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC6E0\uC6E1\uC6E2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uC6E7\uC6E8\uC6E9\uC6EA\uC6EB\uC6EC\uC6ED"+
-            "\uC6EE\uC6EF\uC6F0\uC6F1\uC6F2\uC6F3\uC6F4\uC6F5"+
-            "\uC6F6\uC6F7\uC6F8\uC6F9\uC6FA\uC6FB\uC6FC\uC6FD"+
-            "\uC6FE\uC740\uC741\uC742\uC743\uC744\uC745\uC746"+
-            "\uC747\uC748\uC749\uC74A\uC74B\uC74C\uC74D\uC74E"+
-            "\uC74F\uC750\uC751\uC752\uC753\uC754\uC755\uC756"+
-            "\uC757\uC758\uC759\uC75A\uC75B\uC75C\uC75D\uC75E"+
-            "\uC75F\uC760\uC761\uC762\uC763\uC764\uC765\uC766"+
-            "\uC767\uC768\uC769\uC76A\uC76B\uC76C\uC76D\uC76E"+
-            "\uC76F\uC770\uC771\uC772\uC773\uC774\uC775\uC776"+
-            "\uC777\uC778\uC779\uC77A\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uC8D4\uC8D5\uC6DC\uC6DD\u0000"+
-            "\u0000\uC77B\uC77C\uC77D\uC77E\uC7A1\uC7A2\uC7A3"+
-            "\uC7A4\uC7A5\uC7A6\uC7A7\uC7A8\uC7A9\uC7AA\uC7AB"+
-            "\uC7AC\uC7AD\uC7AE\uC7AF\uC7B0\uC7B1\uC7B2\uC7B3"+
-            "\uC7B4\uC7B5\uC7B6\uC7B7\uC7B8\uC7B9\uC7BA\uC7BB"+
-            "\uC7BC\uC7BD\uC7BE\uC7BF\uC7C0\uC7C1\uC7C2\uC7C3"+
-            "\uC7C4\uC7C5\uC7C6\uC7C7\uC7C8\uC7C9\uC7CA\uC7CB"+
-            "\uC7CC\uC7CD\uC7CE\uC7CF\uC7D0\uC7D1\uC7D2\uC7D3"+
-            "\uC7D4\uC7D5\uC7D6\uC7D7\uC7D8\uC7D9\uC7DA\uC7DB"+
-            "\uC7DC\uC7DD\uC7DE\uC7DF\uC7E0\uC7E1\uC7E2\uC7E3"+
-            "\uC7E4\uC7E5\uC7E6\uC7E7\uC7E8\uC7E9\uC7EA\uC7EB"+
-            "\uC7EC\uC7ED\uC7EE\uC7EF\uC7F0\uC7F1\uC7F2\u0000"+
-            "\u0000\u0000\u0000\u0000\uC6E3\uC6DA\uC6DB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uC8D1\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9277\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u96DF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u89D5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u93CD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9BDF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFA68\u0000\u0000\u89DA\u8F59\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u89DB\u0000\u0000\u8F5D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u89DC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96F7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8ADA\u0000\u0000\u0000"+
-            "\u0000\u8BDC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u97DB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9E53"+
-            "\u0000\u0000\u0000\u0000\u9DAA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9BEA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8A6E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8BC8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u89E8\u0000\u89EA\u0000\u0000\u0000\u0000"+
-            "\u0000\u8C4B\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFB70\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u89ED\u0000\u0000"+
-            "\u94DD\u0000\u89EE\u0000\u0000\u0000\u0000\u9EB4"+
-            "\u8AD3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u92DB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u94DB"+
-            "\u89F9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFB7A\u0000\u0000\u0000\u89FB\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9EFC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89FC"+
-            "\u0000\u89BF\u0000\u0000\u0000\u89FE\u0000\u89E6"+
-            "\u0000\u0000\u9D46\u0000\u0000\u0000\u9DEE\u0000"+
-            "\u0000\u0000\uA07E\u0000\u0000\u0000\uA068\u0000"+
-            "\u0000\u0000\u0000\u98E9\u0000\u8B68\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DFD\u8BBE\u9FD9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8AEB\u0000\u0000\u9FD7\u0000";
-
-        private final static String innerIndex1=
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8B6A\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9C5C\u0000\u8BB1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFB5E\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9DF3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA0D0\u0000\u0000"+
-            "\u0000\uFC66\u0000\u0000\u0000\u0000\u92E9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9AEC"+
-            "\u8FAB\uFA48\u0000\u0000\u0000\u0000\u8E45\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9C6F"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9EDE\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u89EF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u96E9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9EBB\u0000\u0000"+
-            "\u0000\u0000\u94DE\u0000\u9EB8\u0000\u0000\u0000"+
-            "\u97BA\uFB65\u0000\u0000\u0000\u95D6\u0000\u0000"+
-            "\u0000\u9CBB\u0000\u0000\u97DA\u0000\u0000\u0000"+
-            "\u0000\u8F45\u0000\uFB7D\u9158\uFE64\u0000\u9856"+
-            "\u9B4D\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u935B\u95C7\u0000\u97E7\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9359\u0000\u0000"+
-            "\u0000\u91F5\u97B8\u0000\u0000\uFDA2\uFBB6\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u92FA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9357\u0000\u8BA6\u0000\u0000\u0000\u0000"+
-            "\uFBB9\u0000\u97B0\u0000\u0000\uFDC4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9CA1\u0000\u0000\u0000"+
-            "\u0000\u0000\u91F2\u91F9\u0000\u8FF1\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9745\u9853\u0000\u0000"+
-            "\uFE78\u0000\uFBC1\u9251\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9DAD\u0000\u0000\u0000\u0000\u0000"+
-            "\uFD6C\u0000\u0000\uFA6B\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9BC2\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9A7B"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8B60"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u934B\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9ABD\u0000\u0000\u0000\u0000\u91B7\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u95B4\u0000\u0000\u0000\u0000\u0000"+
-            "\uFEC5\u0000\u0000\u9EF0\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D64"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9269\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8D67\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBEA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFBEF\u0000"+
-            "\u8D68\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u93EB\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFC42\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9166\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFACD\u0000\u0000\u0000"+
-            "\u0000\u93DD\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8BCC\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8D6D\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8D6E\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96A8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFCA6\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D6F"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8D70\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFC64\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9060\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8D74\u97C3\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8AD0\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9274\u0000\u9BBE\u0000\u0000\u0000\u0000"+
-            "\u0000\u9CC8\u0000\u0000\u9CBA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8D78\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9EB9\u0000\u0000\u0000"+
-            "\u0000\u0000\u955A\u0000\u0000\u91B4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8A48\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8D7D\u0000\u0000\u8A7D\u0000\u0000\u8AC2\u0000"+
-            "\u0000\uFD4A\u0000\u8DA1\u0000\u0000\u8AD1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFCB4"+
-            "\u8B47\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u93A4\u9EDA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8A51\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8DA6\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9EC5\u0000\u0000\u0000\u0000\uFCC4"+
-            "\u0000\u0000\u0000\u0000\uA078\u0000\u94B5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFCC2\u8A6B"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DAB"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAE8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DAD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFC49\u0000"+
-            "\u93C1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u906F\u0000\u8DB0\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u947E\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90FA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9479\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8DB2\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFCEE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u997B\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8DB4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8DB7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u91B3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DBB\u8DBA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8DBC\u9044\u0000\u0000\u0000"+
-            "\uFD4C\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u93E4\u0000"+
-            "\u0000\u93E0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFD53\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DC3\u0000\u9BB8\u0000"+
-            "\u0000\u0000\uFBF0\u0000\u93E9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u93F6"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DC5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DCA\u0000\u0000\u0000"+
-            "\u0000\u0000\u8DCC\uFD5D\u93B5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFD61\u0000\u0000"+
-            "\u0000\u9CF8\u0000\u0000\u0000\u9252\u0000\u0000"+
-            "\uA0E8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9CA5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8C56\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8DD6\u0000\u97C0\u0000\u0000"+
-            "\u0000\uA0DE\u0000\u0000\u0000\u0000\u97D2\u0000"+
-            "\u0000\u0000\u0000\u0000\uFAA5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFDA3\u0000\u0000\u0000\u8DDB"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8EAF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u91B5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFD49\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFDD1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8DEB\u0000"+
-            "\u0000\u0000\u0000\u0000\u97C6\u0000\uFDCE\u0000"+
-            "\u0000\u90FC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFC59"+
-            "\u0000\u0000\u96D6\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u97C5\u8DEF\u0000\u0000\u0000\u0000\u97D7"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DF0\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u96A6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBBF\u0000\u0000"+
-            "\u0000\u0000\u8DF3\u0000\u0000\u0000\u0000\u9449"+
-            "\u0000\u8DF5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9872\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8E6B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFAFD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F50"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9DCC\uFC65"+
-            "\u0000\u8C44\u0000\u0000\u996E\u94A1\u0000\u0000"+
-            "\u0000\u0000\u0000\u8F63\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA0DA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9253"+
-            "\uFDE9\u0000\u0000\u9DB5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9879\u0000\u0000\u0000\u9D5D"+
-            "\u0000\u0000\u0000\u0000\u8D63\u9669\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9F70\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFC6A\u0000\u0000\u8AC7\u0000\u0000\u0000\u0000"+
-            "\u89D7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFE4D\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9EDD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFEFB\u98BC\uFACC\u0000\u0000\u95B0\u0000\u0000"+
-            "\u0000\u9464\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u936F\u0000\u0000\u0000\u0000\u0000\u0000\u94B9"+
-            "\u0000\u0000\u95EC\u0000\u0000\u0000\u0000\u91EE"+
-            "\u0000\u0000\u98C3\u0000\u95F6\u0000\u0000\u0000"+
-            "\u8FFD\u98C5\u0000\u0000\u0000\u0000\u9766\uFE6E"+
-            "\u0000\u0000\u97DD\u8CAA\u0000\u0000\u92D2\u0000"+
-            "\u0000\u9761\u98CB\u0000\u0000\u0000\u0000\u95F0"+
-            "\u0000\u975D\u0000\u91E3\u0000\u0000\u0000\u0000"+
-            "\u98CC\u0000\u0000\u9469\u98CD\u0000\u0000\u0000"+
-            "\u0000\u0000\u98CE\u0000\u95FC\u0000\u0000\u94A3"+
-            "\u9662\u0000\u0000\u0000\uFEB6\u0000\u9463\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u98D0\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u98D1\u0000\u0000\u0000\u0000"+
-            "\u9475\uFAE0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9472\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u98D6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8AF0\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u98DB"+
-            "\u0000\u0000\u0000\u0000\u98DD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98A8\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8A6D\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8AFB\u8AAE\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFBC9\u0000\u0000\u0000"+
-            "\u0000\u8C5D\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98E4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u98E6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98E8\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8A4D\u0000\u0000\u0000\u9257"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u95DF\u0000\u0000\uA0AC\u0000\u0000"+
-            "\u0000\u0000\u98EB\u0000\u0000\u0000\u0000\u98EC"+
-            "\u0000\u8CC3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98F4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8AB8\u0000\u0000\u0000\u9EE7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u94BC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFCD1\u0000\u0000\u0000\u0000\u0000\u0000\u9CC6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9E7E\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u98FE\uFDE8\u0000\u0000\u0000"+
-            "\u0000\u9940\u0000\u0000\u0000\u0000\u94C9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u94D3\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9946"+
-            "\u0000\u0000\u0000\u0000\u90C0\u0000\u94D1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9573"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u93C2\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9948\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u994B\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E55\u0000\u0000\u0000\u0000\u994E"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8EFE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8E59"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u94EC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u94EF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8C60\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8F74\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9955\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9544\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8CCB\u0000"+
-            "\u0000\u0000\u9956\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9959\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u995B\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8CC4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFA45\u0000\u0000"+
-            "\u0000\u90B7\u0000\u0000\u9743\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u95CD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u97C9\uFD50\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8EB9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u95C6\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9967"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8AB9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DFC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8A76\u0000\u0000\u0000\u0000\u0000\u9D51"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9973\u0000\u0000"+
-            "\u0000\u0000\u9D4F\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u997A\u9564\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u99A1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u99A5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u99A7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8EED\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99AD"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u946E"+
-            "\u8F70\u0000\uFAD0\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99B3\u0000\u0000\u0000\u0000\u0000\u0000\uA053"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u965C\u0000\u0000\u0000\u0000\uFD7A\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u97FE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u92BD\u0000\u97FD"+
-            "\u0000\u0000\u0000\u0000\u8F64\u0000\u0000\u0000"+
-            "\u0000\uFCF7\u9562\u97CD\u9E64\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u924C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8EC9\u99BC\u0000\u0000\u0000"+
-            "\u0000\u9DA5\u0000\u8F54\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8F7C\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8EA2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F7A"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u97AE\u0000"+
-            "\u0000\u0000\u0000\u96C8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u99C3\u0000\u90D6\u0000\u9CBE"+
-            "\u0000\u0000\u0000\u8F76\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9470\uFB4B\u0000\u0000\uFDCA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8EC7\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0F9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8FA9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99C7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u90D7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9EDF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
-        private final static String innerIndex2=
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u99CE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FBA"+
-            "\u0000\u0000\u0000\u0000\u0000\u8FEB\u0000\u99CF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8FC2\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u92C9\u0000\u0000\u0000\u0000\u0000"+
-            "\u97DC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95B3"+
-            "\u9C79\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u95B2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8FDB\u0000\u0000\u0000\u0000"+
-            "\u9BE3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9E7A\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9BEE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99DE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFAFA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9EE5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8A52\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u99E1\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8A67\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8BB5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8AAC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99E9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBCA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u97DE\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u95D1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u99F5\uFC4A\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9BA9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBDC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFE56\u0000\u0000"+
-            "\u0000\u0000\u0000\u9EA4\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9D49\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u95DB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u89C5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u99F8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9664\u0000\u0000"+
-            "\u0000\u0000\u9055\u0000\u0000\u96D4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u977C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u964D\u0000\u97E1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A48\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9A49\u0000\uFE7D\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u90AA\u0000\u0000"+
-            "\u0000\u0000\u9A50\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9347\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8ED8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u90C9\u0000\u0000\u0000\u0000\u0000\u9A55"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u90BC"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A58\u0000\u8BB8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u90D5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9641\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9A5A\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A5C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u97C2\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8ABB\u0000\u0000\u0000"+
-            "\u9BAA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u90F5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9A60\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9145"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8C58\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9A63\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8C49\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8BB6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFCCF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u966B"+
-            "\u9A6E\u0000\u914F\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9746\u0000\u0000\uA0E6\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u92D7\u0000"+
-            "\u9675\u0000\u0000\u93D4\u0000\u0000\u91BB\u9679"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A70\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9678\u91CD\u0000"+
-            "\u9C4A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA06F\u0000\u0000\uA06A"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u915F\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9FA5\u0000\u0000\u89BA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9ECD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A79\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9DCE\u0000\u0000"+
-            "\u0000\u8CD2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9D73\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u96B9\u0000"+
-            "\u96BC\u0000\u0000\u0000\u0000\u0000\u0000\u9CD1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u89B7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9EEE\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFB43\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9EC9\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFBD3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u91AE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9D78\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9D7B\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9EB3\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9EB2\u0000\u9DD6\u0000\u0000\u0000"+
-            "\u0000\u994F\u0000\u0000\u89CE\u0000\u0000\u0000"+
-            "\u8BC0\u0000\u9FC4\u0000\u8BD4\u0000\u0000\u8C72"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC6BF\u8BF9"+
-            "\u0000\u0000\u0000\u0000\u0000\u8946\u0000\uC6C0"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFAE5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uC87B\u8BC6\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9C57\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9AFB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u89D0\u89CF\u0000\u0000\u0000\uC6C1\u0000\u89D1"+
-            "\u0000\u89E2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u927E\u0000\u9DBA\u0000\u0000\u0000\u0000\u0000"+
-            "\uC6C2\u0000\u0000\u8C6F\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFBF8"+
-            "\u0000\u0000\u0000\u8BC7\u926B\u0000\u0000\u89D2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9FCF\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9DA9\u89D3\u0000\u0000\u99E2\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9267\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u92A4\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8C73"+
-            "\u0000\u0000\u894E\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u894F\u9278\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u91B6\u0000\u0000\u0000\u0000\u89D4"+
-            "\u0000\u9FD2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u92A7\u0000\u0000\u95A2\u0000\u0000"+
-            "\u0000\u0000\u0000\u926E\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u96EA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u926F\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u92A3\u0000\u0000\u0000\u0000\u0000"+
-            "\u8950\u0000\u0000\uFA57\u0000\u0000\u0000\u0000"+
-            "\u9866\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u89D6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98B2\u0000\u0000\u0000\u92AB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u96DE\u92AC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8C70\u0000\u9F6E\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8EF2\u0000\u0000\u0000\u9F6C\u0000\u0000"+
-            "\u0000\u0000\u0000\u89D8\u0000\u0000\u0000\u0000"+
-            "\uFA59\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u92A8\u0000"+
-            "\u0000\u0000\u0000\u0000\u9163\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8C40\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9F73\u0000"+
-            "\u92AD\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9BE9\u0000"+
-            "\u0000\u0000\u0000\u0000\u92A9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u92AA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u89D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFD56\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9FA8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8C71\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u92A1\u0000\u0000"+
-            "\u90E3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0A6\u0000\u0000\u0000\u0000\u0000\u94AB"+
-            "\u0000\uFC72\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u97C4\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u92AE\u0000\u0000\u0000"+
-            "\u0000\uFA67\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u92A2\uFA69\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9268\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8951\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFA6F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFA71\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8952\u0000\u0000\u0000"+
-            "\u0000\u945A\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uC6C3\u0000\u0000\u0000\u89DD\u0000"+
-            "\uC8A2\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uC6C4\u0000"+
-            "\u0000\u0000\u9E52\u0000\u8953\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9E55"+
-            "\u92BA\u0000\u0000\uC6C5\u0000\u0000\u8C5B\u0000"+
-            "\u0000\u0000\uFA7D\uFAA8\u9A68\uFA47\u0000\u0000"+
-            "\uFA7E\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u92BB\u0000\u0000\u0000\uFDB6"+
-            "\u0000\uFAA2\u0000\u0000\u0000\u0000\u0000\uFAA3"+
-            "\u0000\uFAA4\u9BB4\uFAA6\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u89DF\u0000\u0000\u0000\uFDDB"+
-            "\u0000\u0000\uFAA9\u0000\u8954\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFAAB\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFC7A\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u89E0\u0000\u9F4F\u0000"+
-            "\u0000\u0000\uC87D\u0000\u0000\u89E1\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAB0\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FCD"+
-            "\uA0E7\u0000\u0000\u0000\u0000\u0000\uFAB1\u89A6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9EFA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFAB2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFAB4"+
-            "\u0000\u92C4\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9F6F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8BB0\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9FAC\u0000\u0000\u0000\u0000"+
-            "\u0000\u89E3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9BD3"+
-            "\u89E4\u0000\u0000\u0000\uFAB5\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FD5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8955\u0000\u0000\u92C5\u0000\u0000\u0000"+
-            "\u8956\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFAB3\u0000\u0000"+
-            "\u0000\uFAB6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFAB7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9EDC\u0000\u0000\u0000"+
-            "\uFBC4\u9F71\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFABA\u92C7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uC6C6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9A4C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8C68\u0000\u0000\u89E5"+
-            "\u0000\u0000\u0000\u0000\u9F7D\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0A9\uFAC4\u0000\u0000\u0000\u0000"+
-            "\uC6C7\u0000\u0000\u8957\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFAAA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8958\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8BE3\u0000\u8B61"+
-            "\u0000\u0000\u0000\u0000\u9AF1\u0000\u0000\u9EB7"+
-            "\u0000\uC6C8\u0000\u0000\u0000\uFAD1\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFAD2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9EBA\uFAD4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAD9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFADB\u0000\u9CE0\u0000\u0000\u0000\uFBF7\u0000"+
-            "\uFBFA\u89E7\uA07A\uFADC\u0000\u0000\uFADD\u0000"+
-            "\u89E9\u0000\u0000\u0000\u0000\u0000\uC6C9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFAE2\u89EB\u0000\u0000\uFAE3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u90C8\u0000\u0000\u0000"+
-            "\u92DA\u8959\u9CF5\u0000\u0000\u0000\u0000\u0000"+
-            "\u895A\uFAE7\u9FA2\u0000\u0000\u0000\u0000\u0000"+
-            "\uFAEA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFAED\u8FAD"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFB59\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAEF\u96EF\u0000\u9DEC\u0000"+
-            "\u0000\u0000\u9DCA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFD6D\u0000\u89EC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB44"+
-            "\u0000\u0000\u9DE2\u0000\u8C75\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9EC0\u0000\u9E56\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9F79\u9AC7\u0000\u0000\uFAF4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98A1\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFAF8"+
-            "\u0000\u0000\u0000\u89F0\u9E47\u0000\u0000\u9DF7"+
-            "\u0000\u0000\u0000\u0000\u9FD3\u0000\u9ACA\u0000"+
-            "\u0000\u0000\u0000\u89F1\uFAF9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E5A\u0000\u89F2\u0000\u0000\u0000"+
-            "\u0000\u89F3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u925D\u8B51\u92E0\u0000\u0000"+
-            "\u89F4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FD4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8A79\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89F5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u97A7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u93BA\u0000\u0000"+
-            "\u0000\u0000\u0000\u9E58\u0000\u0000\u0000\u0000"+
-            "\u89F6\u0000\u0000\u0000\u0000\u0000\u9E57\u0000"+
-            "\u0000\u0000\u0000\u89F7\u0000\u8A41\u0000\u0000"+
-            "\u89F8\u0000\u0000\uFAF1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89FA"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB42"+
-            "\u0000\uFABF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFBA3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFAF7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9E4E\u0000\u94DC\u0000\u0000\u0000\u0000"+
-            "\u0000\u95DA\u9DF8\u9F6A\u0000\u0000\u0000\u0000"+
-            "\u0000\u8AB7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFB46\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8A46\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFB47\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9148\u0000\u0000\u0000\u92DE\u0000\u0000\u0000"+
-            "\u0000\u8B53\u9DF6\u0000\u9BDA\u0000\u0000\u0000"+
-            "\u0000\u9D7E\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89FD"+
-            "\u99E4\u0000\u0000\u0000\u0000\u0000\u9E43\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9DE9\u0000\u8F52\u0000\u0000\u0000"+
-            "\u9DF5\u9DF0\u0000\u0000\u0000\u99E7\u0000\u0000"+
-            "\u0000\u0000\u0000\u8BBD\u0000\u0000\u0000\u0000";
-
-        private final static String innerIndex3=
-            "\u0000\u0000\u0000\u0000\u0000\u9DEF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FB7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9DD0\u0000"+
-            "\u9FEB\u8DA9\u9DCF\u98E1\u0000\u9DE5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9DC8\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB4F"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9DEB\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFB54\u0000\uFB55"+
-            "\u9AA2\u0000\u8AD6\u0000\u9A5F\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9EF5\u0000\u0000"+
-            "\u0000\u8FB7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9AD2\u9E6A\u9EE8\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8BBF\u91C2\u9D62\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9260\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u925E\u91C1"+
-            "\u0000\u8AC5\u0000\u0000\u97A3\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8B6C"+
-            "\u0000\u8D7E\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9C54\u0000\u0000\u0000\u0000\u0000\u9DBD"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9CC5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u895B\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFB5C\u0000\uFB5B"+
-            "\u0000\uFB57\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98C7\u0000\u0000"+
-            "\uFB5A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9CEE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u92E2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u94A7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8CCC\u0000\u9BD4"+
-            "\u0000\u0000\uFB64\uFB76\u0000\u0000\uFB60\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99E5\u0000\u0000\u9AC2"+
-            "\u0000\u0000\u0000\u91FB\u0000\u0000\u0000\uA073"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F72"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FCC\u0000\u0000\u0000\u98A5\u92E8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9BBC\u0000\u96F3\u0000\u0000\u92E7\u0000\u0000"+
-            "\uFC67\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8B7D\u0000\u0000\u0000"+
-            "\u0000\u9BF4\u0000\u0000\u0000\u0000\u0000\u9EF7"+
-            "\u0000\u0000\u9EC1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u996F\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u96F1\u0000\u0000\u8E41\u0000"+
-            "\u0000\u0000\u0000\u0000\u954A\u0000\u0000\u0000"+
-            "\u97E6\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96F5"+
-            "\u0000\u0000\u0000\u0000\u0000\u92E6\u9F42\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFB67\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99A9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFAE6\u0000"+
-            "\u0000\u0000\u0000\uFB69\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u97E5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u967D\u0000\u0000\u0000\uFB6C\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u99A2\u0000\u0000\u0000\u0000\u0000"+
-            "\u9ABB\u0000\u0000\u0000\u9A65\u0000\u0000\u944E"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFB6E\u0000\u0000\u99DF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u98E3\u0000\u0000\u9254\u0000\u0000\u0000"+
-            "\u0000\u0000\u967B\u8AAF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8C77\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8BAF\u9EBD\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9EE6"+
-            "\u0000\u0000\uFB6F\u0000\u0000\u0000\u0000\u0000"+
-            "\u8EE1\u0000\u0000\u0000\u0000\u9B7D\u9C7E\u0000"+
-            "\u0000\u0000\u0000\uF9D9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u92EA\u0000\u0000\u0000\u0000"+
-            "\u8C78\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFB72\u0000\u0000\u0000"+
-            "\uFB71\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u895C\u0000\u98F0\u96F2\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFB74\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8BC1\u0000\u895D\u89DE\u0000\u895E"+
-            "\u0000\u0000\uC6CA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFE42\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB7B"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u895F\u0000\u8960\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9BCD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9DD3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u984C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9752\u0000\u0000\u0000"+
-            "\u0000\u0000\u95C3\u0000\u0000\u0000\u0000\u9BB6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9AB9\u0000\u0000\u0000"+
-            "\u97B3\u0000\u0000\u0000\u0000\u0000\u0000\u9F74"+
-            "\u92F1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u97DF\u0000\u0000\u0000"+
-            "\u0000\uFBA6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFBAB\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9877\u0000\u0000\u0000\u9854"+
-            "\u95C5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9D55\uFBB2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u957E\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9742\u0000\u94E6\u0000\u0000"+
-            "\u0000\u0000\u92F5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8CC5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u92FD\u0000\u0000\uFBA2\u0000\u0000\u9C51"+
-            "\u0000\u0000\u94E9\u985C\u92F0\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u944C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u916B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8B78\u0000\u0000\u0000"+
-            "\u0000\u94E2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u984F\u0000\uFBB5\u0000\u0000\u0000\u0000"+
-            "\u9271\u0000\u0000\u9365\u0000\u0000\u985B\u0000"+
-            "\u0000\u9850\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u97BC\u0000\u0000\u0000\u0000\u92F3\u0000"+
-            "\u0000\u9340\u984D\u0000\u0000\u0000\u9572\u0000"+
-            "\uFDEF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFDC1\u0000\u0000\u0000\u0000\uFBBA\u0000"+
-            "\u0000\u92EB\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFC73\u97B7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFBB4\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u90A7\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9741\u92F4"+
-            "\u0000\u0000\u0000\uFBBC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9577\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9EE2\u0000\u8F78\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uF9DC\u0000\u0000\u0000\u9672\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9EB5\u0000\u0000"+
-            "\u0000\u964B\u0000\u0000\u0000\u8CAC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA0FA"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9575\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u90DA\u0000\u0000\u9367\u0000\uFEA4\u0000"+
-            "\u0000\u0000\u90DF\u0000\u0000\u0000\u0000\u9354"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8961\u0000"+
-            "\u8BB4\u0000\u0000\u0000\u0000\u9DC0\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8E48\u0000\uFBC5\u0000"+
-            "\u0000\u0000\u0000\u0000\uFBC7\u0000\u0000\u0000"+
-            "\uC6CB\u0000\uFA79\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9E67\u0000\u0000\u0000\u0000\u0000\u8CD9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBD2\u8962\u8963"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFC7D\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9F6B\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBCC\u0000\uFEAE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFBD1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB75"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBD4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFBD6\uFBD8\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8B5D\u0000\u934C\u0000"+
-            "\u9AE2\u0000\u0000\u8BC9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFBDB\u9FC9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9F44\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u98ED\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFBDD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DF2\u8964\u0000\uFDF2\u0000\u934D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFBE7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0F2\u9868\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9F58\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8D73\u0000\u0000"+
-            "\u0000\uFBDE\u0000\u0000\u0000\u0000\u0000\uFBDF"+
-            "\u0000\u0000\u0000\u0000\u0000\u8C48\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFBE3\u0000\u0000\u0000\u0000\u8DA8\u0000\u0000"+
-            "\uFBE4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9C75\u0000\u0000\u9878"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8D60\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFBE5\u0000"+
-            "\u8D61\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8D62\uA0A1"+
-            "\u0000\u0000\u0000\u9C40\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98AD\u0000\u0000\u0000\u9EEA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8CD4\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9CEB\u0000\u0000"+
-            "\u0000\u0000\u0000\uFBE0\u0000\u0000\u9F51\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8D65\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9CF1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFC58\u0000"+
-            "\u0000\u8D66\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9654\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFBE8"+
-            "\u0000\u0000\u0000\uC6CC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9FCE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFBFC\u0000\u9AE4\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9F75\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFBF1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8D69\u0000\u0000\u0000\u0000\u0000"+
-            "\u934F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u934E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFBF4\u0000\u0000\u0000\u0000\uC6CE"+
-            "\u0000\u0000\u0000\uFBC3\u0000\u0000\u8965\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8C7A\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8C7B\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8D6A\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9353\u0000\u0000"+
-            "\u9DFB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFBFD\u0000\u0000\u0000"+
-            "\u9059\uFC40\u0000\uFC41\uFC43\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9361\uFC46\u9362\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8D6B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFC4C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u95B8\u0000\u0000"+
-            "\uC6D0\u8BCA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u987A\u0000\u0000\u0000"+
-            "\u0000\uC6D1\u0000\uFC51\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFC54\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAAF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8D6C\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFA61\u0000\u0000\uFC57"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9B70\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA051\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8C7C\u0000\u8BCB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u936E\u0000\u0000\u0000\uFCD5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFCA9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFC61\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8966\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFACB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uF9DA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u937A\u0000\uA0E0"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u936B\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFC6B\u0000"+
-            "\u0000\u0000\u0000\u0000\uA0DC\u0000\u0000\u9468"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFC6D\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D71"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFD64\u0000"+
-            "\u0000\u0000\u0000\u99BA\u0000\u0000\u0000\u9AD0"+
-            "\u9A61\uA0E5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA05B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96AC"+
-            "\u0000\u0000\u0000\u0000\u9740\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9EF1\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8C4D\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9F7E\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8D72\u0000\u0000"+
-            "\u0000\u0000\uFC76\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u96A9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA06E\u0000\u0000\uFCAA\u0000\u0000\u0000"+
-            "\uFBCD\u0000\u0000\u0000\uFC74\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA074"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA071\u0000\u0000"+
-            "\u0000\uFC79\u0000\u0000\u0000\u0000\u0000\uFC7C"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9C50\u0000\u0000"+
-            "\u9379\u9378\u0000\u0000\uA0DD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D75"+
-            "\u0000\u8D76\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9374\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D77"+
-            "\uFCA5\u0000\u0000\uFCA2\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u90C3\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA079\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8D79\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8BFC"+
-            "\u0000\uA076\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8BCD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9F5A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FF4\u0000\u0000\u9FBA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8D7A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9E45\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u93B0\u0000\uA075\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9B46\u0000\uFCAE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFCB0\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFA51"+
-            "\u0000\u0000\u0000\u0000\u0000\u8D7B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8D7C\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9ED6\u0000"+
-            "\u0000\u93AC\u0000\u0000\u0000\u9F5B\u0000\u93A9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA07C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFCB2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8AC1\u0000\u0000\u0000\u0000\u0000\u9FB4"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFCAC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9E4C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8FC5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u93AD\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9DC3\u0000"+
-            "\u0000\u0000\u8DA2\u0000\u0000\u0000\u9D4A\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFCB6\u0000\u0000\u8DA3\u9E4B\u0000\u9E4D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DA4"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8AFD\u0000\u0000\u0000\u0000\u0000"+
-            "\uFCB5\u0000\uFCC3\u93B2\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8DA5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u93A1\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8AC6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8A5B\u0000\u0000"+
-            "\u0000\u894D\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFED4"+
-            "\u0000\u0000\u0000\u0000\u8A78\u0000\u93AB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8DA7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9F45\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8A56\u0000\u0000"+
-            "\u0000\uFCBF\u0000\u0000\u0000\uFCC0\u0000\u8EE6"+
-            "\u0000\u0000\u8AA4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8943\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u93F3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFCAB\u9EA2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9DC7\u0000\u0000\u0000\uC6D2\u8BCE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFCC5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFCCB"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u93B3\u0000\uFCCA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFCC9\u8DAC\u0000"+
-            "\uFBC6\u8967\u0000\u8C7E\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFCCD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9CF3\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFCD0\u0000\u0000\u95BB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFCD3\u0000\u0000\uFCD4\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DAE";
-
-        private final static String innerIndex4=
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFCD7\u0000\u0000\u0000\u0000\u0000\u93DB\u0000"+
-            "\u0000\u0000\u0000\uFE63\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u93D5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFCDA\u0000\u0000\u0000"+
-            "\u9B71\u0000\u0000\uFCDD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8DAF\u0000\u0000\u0000\uFAF2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u93D8\u0000\u0000\u0000\uFCDF"+
-            "\u0000\u0000\u0000\u93D3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFCE1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8E76\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFC62\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u93D1\u0000"+
-            "\u0000\u0000\u8DB1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9859\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFB52\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFB53\u0000\u0000"+
-            "\u0000\u0000\u0000\uFB4D\u0000\u0000\u9CBF\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9B72"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFB50\u93BE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9DF1\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFCEB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA0BB\u0000\u9B7E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8DB3\u0000"+
-            "\u0000\u8C52\u0000\u0000\u0000\u0000\u9AE8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8EDC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9CF9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFA50\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u98E7\uFCF3\u0000\u0000\u0000\u0000\uFCF2"+
-            "\u0000\u0000\u0000\u8CCA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u93E5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9A59\u0000\u0000\u0000\u8DB5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFD4D\u0000\u0000\u0000"+
-            "\u0000\uFD5E\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F7D"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9547\uFCF6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9250\u0000\u0000\u0000\u0000\u8968\u0000"+
-            "\u8DB6\uFCFB\uA07D\u98FC\u8969\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFE4F\u0000\u0000"+
-            "\u9256\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAC9\u0000\u0000\u93E8\u0000"+
-            "\u0000\u0000\uFCF8\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9CE3\uFDA9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFC44\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9640"+
-            "\u0000\u0000\u8DB8\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9B4A\u8FB9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFCFE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u896A\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DB9\u0000\u0000\u0000"+
-            "\u917E\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u93F4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFB7C\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u93E7\u0000"+
-            "\u0000\u97EF\u0000\u0000\u0000\uFE4A\u0000\u0000"+
-            "\u0000\u0000\u0000\uFD45\u0000\u96A5\u0000\u0000"+
-            "\u0000\u0000\uFEE0\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFD48\uFD47\uFEF2\uFE6A\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DBD\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9BA1\u8CA2\u9AB7\u8EFC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9FA1\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFD51\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFAAD\u0000"+
-            "\u0000\u0000\u0000\u8DBE\u0000\u0000\u89A4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9AD9\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFD4E\u0000\u0000\u8DC0\u0000\u0000\u97F0"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u93B4\uFD44\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9FA7\u0000\u0000\u0000\u0000\u8DC2\u0000\u0000"+
-            "\u0000\u0000\u99B6\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFD52\u0000\u0000\u0000\u0000\u0000\u0000\u8DC1"+
-            "\u0000\u0000\u8E46\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0D1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9FCA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u92CF\u0000\u0000\u0000\u9CF4\u8DC4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFD41\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9B4C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFD57\uFCEF\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9CDE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFD42\u986C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u97F9\u0000\u9558\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u985E\uFE7B\u94CD\u0000\u0000"+
-            "\u0000\u0000\u0000\u93EE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8CA3\u0000\uFD5A\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u93F5\u0000\u0000\u0000"+
-            "\u0000\u0000\u93EF\u8EEA\u0000\u0000\u0000\u8F5B"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8C5E\u0000\u8DC6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DC8\u0000\u0000\u8DC7\u0000\u0000\u0000"+
-            "\u0000\u0000\u93F7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8DC9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFBF2\u0000\u0000\u0000\u0000\u9670"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DCB\u0000\u0000\u0000\uFD5C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F65"+
-            "\u0000\u0000\u0000\u8DCD\u0000\u0000\u0000\u0000"+
-            "\u0000\u9DA8\u94F9\u0000\u0000\u8DCE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u93EA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFD5F\u93F0\u9FB6\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DCF\u0000\u0000\u0000"+
-            "\u9763\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8DD0\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u93F1\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFD62\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFD65\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FDB\u0000\u0000\u0000\u0000\u93F8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8BF7"+
-            "\u0000\u0000\u0000\u0000\uFD66\u0000\u0000\u0000"+
-            "\u0000\u0000\u8BCF\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DD1\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DD2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFD71\u0000\u0000\u0000"+
-            "\u0000\uFD6F\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8DD3\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FE7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u90BD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FD0\u0000\u0000\u0000\u8BD0\u0000\uFD72"+
-            "\u0000\u9CAE\u8BD1\u0000\u0000\u8ADB\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFAE4\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u95CE\u0000\uFD76\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFB62\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DD4\u0000\u0000"+
-            "\u0000\uFD78\u0000\u0000\u0000\u0000\u0000\u8EE3"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9076"+
-            "\u0000\u0000\u98C6\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8DD5\u0000\u0000\u0000\u0000\u97D1"+
-            "\u0000\u0000\u9EB6\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAC7\u0000\u0000\uA042\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9873"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FFC\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8CA5"+
-            "\u0000\u0000\u8DD7\u0000\u0000\u92FB\u8DD8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u944F\u0000\u8DD9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u896B\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u97CE"+
-            "\u0000\u0000\u0000\uFAF3\uFDAE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFBAF\u92B7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DDA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9C5A"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFDAD\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DDC\u9444\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DDD\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0D6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8C41\u0000"+
-            "\u0000\u0000\u97D5\u0000\u944A\u0000\u0000\u0000"+
-            "\u0000\u0000\u944D\u0000\u0000\u0000\u0000\u97CB"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DDE\u0000\u0000"+
-            "\u8DDF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DE0\uFEF9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFDC0"+
-            "\uFCF9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFB7E\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u92B3\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDAF\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8DE1\u0000"+
-            "\u0000\u0000\u0000\u95D3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u89C1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFD68\u0000\u0000"+
-            "\u9CB7\u0000\u0000\u8DE3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFAC0\u8DE5\uFA64\u0000\u8947\u0000\u0000"+
-            "\u0000\u0000\u8DE4\u0000\u0000\u0000\u0000\u0000"+
-            "\u8DE7\u8DE8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFDC7\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDB0\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9445\u97D6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFCC6\u9844"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DE9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DEA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFE50\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDCC\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9DA7\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDCD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDCF\u0000\u0000\u0000"+
-            "\u0000\u95D2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DED\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFCBA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFDC5\u0000\uFDD2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9CDC\u0000\u0000"+
-            "\u0000\u0000\u0000\u95CF\u0000\u0000\u8DEE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFDD4\u0000\u0000\u0000\u0000"+
-            "\u0000\u96EC\u96EB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90B6\u0000"+
-            "\uFDC3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u98AB\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u96EE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DF4\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFDE0\u0000\u8C67\u0000\u0000"+
-            "\u8DF6\u0000\u0000\u0000\u8DF7\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FFA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u97D0"+
-            "\u0000\u0000\u0000\u0000\u8BD2\u0000\u0000\u8DF8"+
-            "\u0000\u0000\u0000\u0000\u0000\u90D9\u0000\u8C47"+
-            "\u0000\uFAF0\u0000\u0000\u0000\u0000\uFDE1\u8DF9"+
-            "\u0000\uFDE3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8DFA\u0000\uFB63\u0000\u0000\u0000\u90A6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9970\u0000\u0000\u91EB\u0000\u9770\u986F\uFDE2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u98F2\u0000\u9AFC\u896C\uFDFD\u0000\u0000"+
-            "\u995E\u0000\u0000\u0000\u95BD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDE4\u0000\u0000\u0000"+
-            "\u91E6\u0000\u0000\u0000\u0000\uFDE5\uFDE6\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFDE7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9454\u0000\u0000\u0000\u99B8\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u97E9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9346\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9863\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u95BC\u0000\uFDED\uFDF7\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9870\u96F6\u8EA9\u0000\u0000"+
-            "\u0000\u0000\u0000\u9451\u0000\u0000\u8E43\u0000"+
-            "\u8B5A\u0000\u0000\u0000\u0000\uFDEE\u0000\u0000"+
-            "\u0000\u0000\uFDF0\u0000\u0000\u0000\u0000\uFDF4"+
-            "\u0000\u9BF5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u977E\u0000\u0000\u0000\u0000"+
-            "\u0000\u9BD5\u0000\u9AC3\u0000\u97C8\uA0DB\u91D0"+
-            "\u0000\u0000\u9FE4\u0000\u8FDD\u0000\u91E9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98E0\u0000\u0000\u0000\u92CA\u0000\u9857\u0000"+
-            "\u0000\u8C51\u0000\u0000\u0000\u0000\uFDEB\u0000"+
-            "\u9B49\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9D76\u9EAF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9CCC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDEA\u0000\u0000\u8DF1"+
-            "\u0000\u0000\uFDFB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8E53\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFACF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u96F9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98BF\u9E49\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8CA7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9BCA\u0000\u0000\u0000\u0000\uFDFE\u92DC"+
-            "\u0000\u0000\u0000\u0000\u0000\uFE41\u91CC\u91E2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFE44\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8BD3\u0000\u0000\uFE47\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFE48\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9455\u0000\u0000\u0000\u0000\uFE4B\u0000\uFE4C"+
-            "\u0000\u0000\u0000\u0000\u8DBF\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9E78\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFE51\u0000\u0000\u0000\u0000\u9456"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9D61"+
-            "\u0000\u0000\u0000\u0000\u9457\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9966"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8BD5\u0000\u0000"+
-            "\u0000\u0000\uA069\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98B4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA049\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA04C\u0000\u9E65\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98B5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFE58\u0000\u9975\uFE53\uA065\u0000\uFE59\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98B7\u98B8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u98BA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98BB\u0000\u0000\u0000\u0000\u0000\u0000\u9FBC"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA04A\u0000\u0000\u9EC7\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8CA9\u0000\u0000\u98AE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u92D6\u0000\u0000\u0000\uFAE1\u0000\u91D4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFADE"+
-            "\u0000\u0000\uFE5B\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8C53\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFE5E\u0000\u0000\u0000\u0000\uFBD7\uFE5A"+
-            "\u94C5\u0000\u0000\u0000\u0000\uFACA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u98C1\u975C\u0000\uFE74\u0000\u9773\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFA46"+
-            "\u0000\u0000\u0000\u9764\u0000\u0000\u0000\uFE68"+
-            "\u0000\u964E\u0000\u9765\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8C5A\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u89A1\u95FA\u0000\u92D4\uFE69\u0000\uFB45"+
-            "\u0000\u98C8\u0000\u0000\u90EF\u0000\u98C9\u98CA"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u946D"+
-            "\u94B7\uFE6C\u0000\u0000\u946B\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u92FC\u0000\u95EB\u0000\uFE73"+
-            "\u976E\uFE5F\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFDBD\u0000\u0000\u92D5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFEB9\u0000\u0000"+
-            "\uFE71\u0000\u0000\u0000\u0000\uFBBB\u0000\u0000"+
-            "\u947A\u0000\u0000\u95FB\uFE77\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFE79\u0000\uFE75\u0000"+
-            "\u0000\u0000\u945D\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFE7C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9344\u8EA6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u92D3\u0000\u94B8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFC71\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u975E\u0000\u0000\u0000"+
-            "\u0000\u8CAD\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFEA7\u0000\u0000\u0000\u946A\u0000\u0000\u0000"+
-            "\u93E3\u0000\u0000\u98CF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA0D9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA0BF\uA04D\uA0B8\u0000\u0000\u0000\u0000\u0000"+
-            "\uA0CE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA0B7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFEA9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u89C3\u0000\u0000\u0000\u0000\uFEAB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9DF4\u896D\u0000\u0000"+
-            "\u0000\u0000\u0000\u9C7B\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u98D2\u0000\u0000\u0000\u9FA9\u0000"+
-            "\u0000\u0000\uFEB2\u0000\u0000\uFEB1\u0000\u0000"+
-            "\u0000\u97D9\u0000\uA0C4\u0000\u9476\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9978\u0000\u0000\u0000\u0000\u0000\u0000\uFEB3"+
-            "\u0000\u0000\u0000\u0000\u0000\u98D3\uFEB4\u0000"+
-            "\u0000\u0000\u98D4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FB9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9471\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98D5\uFEB8\u0000"+
-            "\u0000\u0000\uC6D4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFEBA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9E5C\u0000\u0000\uFEBB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA044\u0000\u0000\u0000\u0000"+
-            "\u98D7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u98D8\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
-        private final static String innerIndex5=
-            "\u0000\u0000\uFEBC\u0000\u0000\u0000\u0000\u9FFE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFEBD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9DDD\u0000\u0000\u0000\u0000"+
-            "\u9EE1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98DA\u9DDF\uFEBF"+
-            "\u0000\uFEBE\u0000\u0000\u9EEB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9E59\uA05C"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEC0"+
-            "\u0000\u0000\u0000\u9477\u98DC\u0000\uFEC1\u0000"+
-            "\u0000\u0000\u98DE\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFEC3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFEC8\u0000\u0000\u0000\uFEC9\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFECA"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFECB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9FC2\u0000"+
-            "\u0000\u8C6B\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u98C4\u0000\u94B0\u94B1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFED1\u0000"+
-            "\u0000\u0000\u0000\u0000\uA0C1\u0000\uFED2\u0000"+
-            "\u0000\u0000\u0000\uA0CD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFED3\u0000\u0000\u98E5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFED6\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u91E4\u0000\u0000\u0000\u0000\u8FC7"+
-            "\u94AE\u0000\u8A4F\u94B2\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8FD4\u0000\u0000\u0000\u0000"+
-            "\u98EA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFED8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9DE0\u0000\u0000\u0000\u0000\u98EE\u0000"+
-            "\u0000\u0000\u0000\u95C4\u0000\uFCE8\u0000\u0000"+
-            "\u0000\u0000\u0000\u98EF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8C6E\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFAD8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFEDC\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA0AE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9D4C\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98F1\u0000\u0000\u0000\u98F3\u0000\u94C1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u98F5\u0000\u0000\uFA4F\u96E2\u0000\u0000"+
-            "\u0000\u0000\u9450\u0000\u96A2\u0000\u0000\u98F6"+
-            "\u0000\u0000\u0000\u96E5\u0000\u0000\u0000\u0000"+
-            "\u0000\u98F7\u0000\uA046\u96E3\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u98F8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9EE4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uF9D6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u94C3\u0000\u0000\u0000\u0000\u94C2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEE1"+
-            "\u0000\uFEE9\u0000\u0000\u0000\u0000\u96E4\u0000"+
-            "\u89AC\u96DB\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEE2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u94C4\uFEE3\u0000\u0000\u0000\uFEE7"+
-            "\u9FFB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8C59\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u93C9\u0000"+
-            "\u94E8\uFB56\u0000\u0000\u0000\u90C5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA0A8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFEE5\u0000"+
-            "\u0000\u0000\u98FD\u98FB\uFEE8\u0000\u8EBF\u0000"+
-            "\u0000\u0000\u0000\u8BD8\uFEF7\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8F68\u94C6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9DEA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFC69\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9CDA\u0000"+
-            "\uFEF3\u0000\u0000\u9C72\u0000\u0000\uFEF0\u89C9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9941\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9942\u0000\u0000\u0000\uFEF5\u0000\u91D7"+
-            "\u0000\u0000\u0000\u0000\u0000\u94CC\u0000\u0000"+
-            "\u0000\uFEF8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u97A8\u0000\uFEFC\u0000"+
-            "\u0000\u0000\u0000\u0000\uFDBF\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFEFE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u96D1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u94D5\u0000\u0000\u94D0\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9944\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8C63\u0000\u0000\uA0B3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u94CF\u0000\u0000\u0000\u9FFA\u0000"+
-            "\u0000\u0000\u0000\u91E5\u0000\u9C6A\u0000\u0000"+
-            "\u0000\u8E49\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8E4C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8E4D\u0000\u0000"+
-            "\u0000\u0000\u0000\u9A73\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9947\u0000\u8CB1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8E50\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8E4F\u9949\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E51\u8E52\u0000\u0000\u0000\u0000"+
-            "\u9AB2\u89A5\u0000\u0000\u0000\u0000\u0000\u994C"+
-            "\u0000\u0000\u0000\u9FF8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E56\u994D\u91CA\u8E57\u0000\u0000"+
-            "\u0000\u0000\u94E1\u0000\u0000\u0000\u0000\u9047"+
-            "\u0000\u8FD8\u8E58\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u94EB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8E5C\u9553\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9FE5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F56"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u954F"+
-            "\u0000\u8E5E\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u996A\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9C64\u9CD9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8E5D\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9950\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9951\u0000\u0000\u8E62"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9952\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E68\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E61\u9F59\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8BB3\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F5D"+
-            "\u8E66\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8CB2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E6E\u0000\u9F64\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9953\u0000\u0000\uFAB8\u0000\u0000"+
-            "\u0000\u0000\u0000\u9954\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8E70\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9F61\u0000\u8E72\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA06B\u0000\u0000\u0000\u0000\u9F40\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u94ED\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u94EE\u0000\u0000"+
-            "\u9FBD\u0000\u0000\u0000\u8E7B\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9957\u94F7\u0000\u9F5F\u0000"+
-            "\u0000\u0000\u0000\u8E73\u0000\u0000\u9F62\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u94F6\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9958\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8E75\uF9DB"+
-            "\u0000\u0000\u0000\u0000\u9072\u0000\u94F8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u995A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0B0\u8CB3\u0000\u0000\u0000\u8E79"+
-            "\u0000\u8E78\u0000\u0000\u0000\u94F3\u0000\u0000"+
-            "\u0000\u0000\u0000\u98AF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0B2\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8E7A\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u995C\u0000\u0000"+
-            "\u0000\u0000\u0000\u8E7C\u0000\u8E7D\u0000\u0000"+
-            "\u0000\u8BD9\u0000\u0000\u89A2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9ED7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA0B6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9E42\u0000\u0000\u8EA4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8EA7\u0000\u8C76\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9542"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u987D\u0000\u0000\u0000"+
-            "\u9755\u0000\u0000\u8EA8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8EAA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u89A3\u0000\u9960"+
-            "\u9962\u0000\u0000\u94FC\u9961\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u94FA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8EAE\u8EB2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8EB0\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9963\u97AA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u94FB"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8EBB"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8CDC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9876\u0000\u8EA1"+
-            "\u0000\u0000\u0000\u0000\u8CB4\u0000\u8EB7\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9DA6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9EB0\u0000"+
-            "\u0000\u0000\u8EB8\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9D70"+
-            "\u0000\u0000\u0000\u0000\u896E\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u896F\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8970\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8971"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8972"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8973"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8974\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8975"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8EBC\u8EBD\u0000\u0000\u0000\u0000\u0000\u8EBE"+
-            "\u0000\u9DD1\u0000\u0000\u0000\u0000\u94FD\u0000"+
-            "\u0000\u0000\u8BD7\u8BDA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0E2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9FE9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFDA8"+
-            "\u0000\u0000\u0000\u8AE7\u0000\u0000\u0000\u8EC2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8EC4\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9964\u0000"+
-            "\u0000\u0000\u0000\u0000\u9965\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u954E\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u98B3"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8ECB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8BDF\u0000\u0000\u0000\u0000\u0000"+
-            "\u8ECE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8ECF\u0000\u0000"+
-            "\u9968\u0000\u0000\u0000\u0000\u9969\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u996B\u8ED1"+
-            "\u0000\u996C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8ED4\u8ED5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u996D\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA0BE\u0000\u0000\u0000\u0000"+
-            "\u0000\u8ED6\uA0BC\uA0B5\u0000\u0000\uA0B4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8BE0\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89B5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8EDD"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9E5D\u9971"+
-            "\u0000\u0000\u0000\u0000\u89AE\u9DE8\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9565\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9972\u0000\u0000\u8B5C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u89B1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA0C0\u0000\u0000\u0000\u8EDF"+
-            "\u0000\u9566\u0000\u0000\u9974\u0000\u9976\u0000"+
-            "\u0000\u0000\u9977\u0000\u9979\u0000\u0000\u9DDA"+
-            "\u0000\u0000\u8EE0\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u935C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9DE6\u0000\u8B5F\u0000\u0000\u9563"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9567\u0000\u0000\u0000\u0000\u0000"+
-            "\u9DE3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u997C\u0000"+
-            "\u0000\u997D\u997E\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8B5B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99A3\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99A4\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u99A6\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u99A8\u0000\u0000"+
-            "\u0000\u0000\u8ABE\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9E61\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u99AA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA0C8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99AB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEC4"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u98C2\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8EE8\u0000\uA0BA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFD77\u0000"+
-            "\u0000\u8EEE\u0000\u0000\u0000\u9EBF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u89C2\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99AC\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u956B\u0000\u0000\u956C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u99AF\u0000"+
-            "\u0000\u994A\u8976\u8F48\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFBEE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u99AE\u0000"+
-            "\u0000\u0000\u8EFB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8CD0"+
-            "\u0000\u0000\u0000\u0000\u8B52\u0000\u0000\u0000"+
-            "\u0000\u0000\u99B0\u0000\u0000\u0000\u0000\u8977"+
-            "\u8F41\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99B1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8F49\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFA4D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9DE4"+
-            "\u8CB5\u0000\u0000\u0000\uFBE9\u9B54\u0000\u99B2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9E68\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8F4A\u0000\u8F42\u0000\u0000\u8F51\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9846\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99B4"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8EF5\uFD55\u0000\u0000\u9CCD\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8978"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8F53\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8F6F\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8E63\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8F56\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFE76\u0000\u0000\u0000\u0000\u9FC6\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFAAC\u0000\u0000"+
-            "\u0000\u0000\u0000\u8F58\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9848\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u99B7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9665\u0000\uFA6C\u0000"+
-            "\u9DE7\u0000\u0000\u0000\u9E62\u0000\u0000\u0000"+
-            "\u96CC\u8E67\u0000\u0000\uFC75\u0000\u987E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFDB9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u97FC\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98F9\u0000\u8F66\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u956E\u0000\u9245\u0000\u0000"+
-            "\u8F60\u0000\u0000\u0000\u9ED1\u0000\u0000\u0000"+
-            "\u0000\u0000\uFECD\u0000\u99B9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8F62\u974C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u91C7"+
-            "\u955F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99BB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8E6D\u8F71\u0000\u0000\u94CB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u95B1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9AF2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u96C3\u99BD\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0CF\u0000\u0000\u0000\u8F6D\u0000"+
-            "\u0000\u99BE\u8EF4\u0000\u8F72\u95E4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99BF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9242\u0000\uFBA5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99C0\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFDB4\u8F77\u0000\u0000\u0000"+
-            "\u99C1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFAB9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8F40\uFA44\u0000\u0000\u0000"+
-            "\u0000\u0000\u99C2\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8F5C\u0000\u0000\u0000\u0000\u8CBD"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99C4"+
-            "\u99C5\u0000\u0000\u8F7B\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8CB6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8FA3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8CCE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99C6\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u96CD\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u96C7\u0000\u0000\u0000";
-
-        private final static String innerIndex6=
-            "\u0000\u0000\u8FA5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFABB\u0000\u8C61"+
-            "\u9570\u0000\u0000\u0000\u9368\u0000\u8F7E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8FAA\u0000\u0000\u0000\u0000\u0000\u0000\uA050"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u90D3\u0000\u0000\u9556\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FB8\u0000\u0000\u0000"+
-            "\u0000\u0000\u99C8\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8FAF\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u99C9\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9579\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9F49\u0000\u0000"+
-            "\u0000\u0000\u99CA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99CB"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9DD5\u8FB0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFA7A\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9E5F\u0000"+
-            "\u0000\u0000\u0000\u99CD\uA0C9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9ADB\u0000\u0000"+
-            "\u0000\uA0C6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8FB4\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0D7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA0C7\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA043\u0000"+
-            "\u0000\u0000\u8FB5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8FB2\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA061\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9E5E\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FB6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9FE8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9CB2"+
-            "\u0000\u0000\u0000\u0000\u0000\u957C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FC7\u0000\u0000\u8FBB\u8FBC\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FEC"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8FC0\u0000"+
-            "\u936A\u0000\u0000\u0000\u8BE4\u9C7C\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u95A1\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFEEC\u0000\u0000\u95A3"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8C45"+
-            "\u8CB8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FC1\u0000\u0000\u0000"+
-            "\uA052\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u99D0\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FC3\u8FC4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95A4"+
-            "\u0000\u0000\u0000\u0000\u0000\u8FC6\u0000\u9E60"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uF9D8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u95A5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9CB3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99D1"+
-            "\uFEF1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99D2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9CC2\u0000\u0000\u0000\u99D3"+
-            "\u0000\u0000\u0000\u0000\u0000\u95A7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u95A9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u95A6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9C5D"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98E2\u0000\u0000\u0000\u0000\u0000\u0000\u8FC9"+
-            "\u0000\uA0C2\u8FCA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u99D4\u0000\u0000\uA0B9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9B58\u0000\u8FCD"+
-            "\u0000\uA0D4\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FCE\u0000\u0000\u0000"+
-            "\u0000\u8BE5\u0000\u0000\u0000\u0000\u8979\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FD0"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u95B6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u99D6\u0000\u95E5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99D7\u0000\u0000\u0000\u0000\u95B5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0CA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FFD"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA058\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8FD6\u0000\u0000\u0000\u99D8\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FD3\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8FE5\u0000\u0000\u0000\u0000\u0000\u8FE9"+
-            "\u0000\u0000\u0000\u0000\u99D9\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u927C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9C45\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FDE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FDF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA04B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FE2"+
-            "\u0000\u0000\u0000\uA0CC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FE3\u8FE4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9BC4\u0000"+
-            "\u0000\u0000\u9BFC\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u964C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9AF6\u0000\u8CAE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8FE7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8FE8\u0000\u0000\u0000\u0000"+
-            "\u8BE7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u897A\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u897B\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u99DA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8FED\u0000\u0000\u0000\u95C0"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uA0CB\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9E48\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99DB\u0000\u8FF3\u0000"+
-            "\u0000\u0000\u0000\u8FF9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u95C1\u0000\uA04E\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u99DC\u0000\u0000\u0000\u0000\uA064"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8FF7\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u89B0\uA048\u0000\u0000\u0000"+
-            "\u0000\u8FFB\u8FF6\u0000\u0000\u0000\u0000\u0000"+
-            "\u9DDC\u0000\u0000\u0000\u99DD\u8BE8\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u92C1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FD6\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA0D2\u0000"+
-            "\u0000\u9040\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8AC4\u0000\u0000\u99E0\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9FF0\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FF3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9DBF\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9FF6\u0000\u95C8\u0000\u0000\u9E5A\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u99E3\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8A4A\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FF1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8AA7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u99E6\u0000\u0000\u0000\u9FF7\u0000\u9FED"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8A5C\u0000"+
-            "\u9DAE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95C9"+
-            "\u0000\u0000\u0000\u0000\u0000\u9048\u0000\u0000"+
-            "\u99E8\u0000\u0000\u0000\u0000\u0000\u9049\u0000"+
-            "\u0000\u8CBA\u0000\u0000\u90B1\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u904A\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u99EA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9BD1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u99EB\u0000\u99EC\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u99ED\u0000\u0000"+
-            "\u0000\u0000\u99EE\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u904C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u904D\u0000\u0000"+
-            "\u95CB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u97E2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u95CC\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9F78\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u897C\u897D"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u897E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u995D\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9B5A\u0000\u0000\u0000\u0000\u9050\u0000\u8C4F"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9054\u0000\uC6D6\u9AA8\u99EF"+
-            "\uFEEB\u9DA3\u9DA1\u9943\u9945\u0000\u9D7D\u0000"+
-            "\u0000\u99F0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u99F1\u0000\u99F2\u0000\u0000\u8CBC"+
-            "\u9D60\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0A3\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u905B\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9EDB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9D79\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u99F3\u0000\u0000\u0000\u9062"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9F55\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9BF9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9065\u0000\u0000\u96E0\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u98BE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9068\u0000\u0000\u0000\u0000\u0000\u906C\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u95D8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u906A\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FB2\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FAE\u0000\u0000\u9FB0\u0000\u89AD\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u906E"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9E71\u0000\u0000\u0000\u0000\u0000\u9E4A\u0000"+
-            "\u0000\u0000\u0000\u0000\u9FDC\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u89AB\u0000\u9FB8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9070\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8B63\u0000"+
-            "\u0000\u0000\u0000\u95DC\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9071\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFC5E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8949"+
-            "\u0000\u0000\u0000\u0000\u0000\u965B\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8C50\u0000"+
-            "\u0000\u0000\u94A6\u0000\u0000\u0000\u8FD5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9E73\u0000\u0000\u0000\u0000\u0000\u9075\u0000"+
-            "\u0000\u0000\u0000\u99F7\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8CBF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u99F9\u0000\u9663\u95B9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u94D4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFCFA\u0000\u0000\u0000"+
-            "\u0000\u9077\u0000\u0000\u90AB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9D4D\u0000\u0000"+
-            "\u99FA\u0000\u0000\u0000\u0000\u92E3\u0000\u97BB"+
-            "\u0000\u0000\u9078\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u99FB\u0000\u0000\u97E0\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96DC"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9CA8\u0000\u0000\u9772\u0000\u0000\u0000"+
-            "\u0000\u9440\u0000\u0000\u0000\u0000\u0000\u92F2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u99FD\u0000"+
-            "\u0000\u99FC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uF9D7\u964A\u0000\u0000\u0000\u96D8\u99FE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u904B\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFA41\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9A40\u0000\u975B\u0000\u0000"+
-            "\u0000\u0000\u0000\u9A41\u91DD\u0000\u0000\u0000"+
-            "\u0000\u0000\u93FC\u9A42\u9A43\u0000\u9659\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A44\u0000\u0000"+
-            "\u0000\u0000\u0000\u9051\u0000\u0000\u0000\u94BF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u90A2\u0000\u0000\u0000"+
-            "\u9CAB\u9776\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFC55\uFE45\u94A8\u9A45\uFA4B\u9DE1\u0000\u0000"+
-            "\u96D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9774"+
-            "\u0000\u0000\uFDF5\u0000\u0000\u0000\u92E5\u0000"+
-            "\u9645\u91DA\u0000\u90A3\u0000\u0000\uA05F\u0000"+
-            "\u0000\u0000\u0000\u90AF\u97BF\u0000\u0000\u0000"+
-            "\u914C\u0000\u0000\u0000\u0000\u967A\u0000\u0000"+
-            "\u0000\u91DE\u0000\u0000\u9A46\uFEB0\u9779\u946C"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9858\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9266\u0000\u0000\u0000"+
-            "\u93FB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A47\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9749\u0000\u0000\u9748\u0000\u934A\u0000\u9CE2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9264\u0000"+
-            "\u0000\u0000\u0000\u91DF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFB79\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u96D7\u0000\u0000\u0000\u0000"+
-            "\u9343\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFDCB\uFE7A\u0000\u91DB\u8C6A\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u97AF\u0000\u0000\u95DD\u0000\u0000\u0000"+
-            "\u9348\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9A4B"+
-            "\u0000\u0000\u0000\uFC45\u0000\u9A4D\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u91BC\u90E2\u90B4\u95E1"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A4E\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9A4F\u0000"+
-            "\u0000\u0000\uFE40\uFE43\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u96DD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9A51\u0000\u0000\u0000"+
-            "\u96A7\u0000\u0000\u90B0\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9C4E\u0000\u9443"+
-            "\u0000\u0000\u0000\u0000\u8EBA\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9A52\u0000\uFCC1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8BE9\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9CAF"+
-            "\u0000\u0000\u8BFD\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9ABC\u0000\u9AB8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9AAE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9AA7\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A53\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9D74"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8BEA\u0000\u0000\u0000\u0000\u0000\u0000\u8BEB"+
-            "\u0000\u0000\u0000\u0000\u0000\u90B2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u95E9\u95E8"+
-            "\u0000\u95E6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u90B5\u0000\u9A54\u0000\u0000\u0000\u90B3\u95E7"+
-            "\u0000\u0000\u8B50\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8BEC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9A56\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
-/*
-        private final static String innerIndex7=
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8BFB\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9A57\u0000\u0000\u0000\u0000"+
-            "\uA0AA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FA6\u0000\u0000\u0000\u99CC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9C59\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u99B5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u90BE\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FAF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95F2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90BF\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u90C1\u0000\uFEE4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90C4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u90C7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u92E4\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9F52\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u90DB\u0000\u0000\u0000\u0000"+
-            "\u0000\uA066\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u90D2\u0000\u0000\u0000\u0000\u90D4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9A5B\u95FD\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8BC4\u0000\u0000\u0000\u8C66\u0000\u90DE"+
-            "\u0000\u0000\u0000\u0000\u0000\u9CE4\u0000\u90E1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9E46\u0000\u0000"+
-            "\u0000\u9651\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB58"+
-            "\u0000\u90E6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9650\u0000\u0000\u0000\u90E7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u90E8\u9A5D\u0000\u9F7A\u0000\u0000\u0000"+
-            "\u9B5C\u0000\u9F7C\u0000\u0000\uFC52\u90E9\u0000"+
-            "\u90EA\u0000\u9A5E\u0000\u0000\u0000\u0000\u0000"+
-            "\u9F76\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u90EB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u90EC\u0000\u0000\u0000\u0000\u0000\u8BEE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90EE\u0000"+
-            "\u0000\u0000\u91C6\u0000\u0000\u90F2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFCBC\u8A74\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9657"+
-            "\u0000\u0000\u0000\u9CEF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9FDF\u0000"+
-            "\u0000\u0000\u0000\u90F7\u90F6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9B5E"+
-            "\u0000\u0000\u0000\u90F8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90F9\u0000"+
-            "\u8CC9\u0000\u0000\u0000\uFA6A\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8BEF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9FE0\u0000\u0000\u9142"+
-            "\u0000\u9A62\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9569\u0000\u0000\u0000\u9144"+
-            "\u9143\u0000\u9141\u0000\u0000\u0000\u8BF0\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9660\u0000\u8BF1\u0000"+
-            "\u99F6\u9149\u0000\u0000\u0000\u0000\u914A\u0000"+
-            "\u0000\u0000\u0000\u0000\u914B\u0000\u0000\u0000"+
-            "\u0000\u9A64\u0000\u0000\u0000\u8ABF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9A66\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9A67\u0000\u0000\u9A69\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9A6A"+
-            "\u9652\u914D\u0000\u9666\u0000\u0000\u0000\u0000"+
-            "\u9F7B\u0000\u9A6B\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA06C\u0000\u0000\u9667\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A6C\u0000\u0000"+
-            "\u0000\u0000\u9A6D\u8BF2\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u966A\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFCEA\u0000\u0000\u0000"+
-            "\u0000\u0000\u966C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u91C4\u0000\u0000\u0000\u9677\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99F4\u9A6F\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FAB\u0000\u0000\u0000\u0000\u0000"+
-            "\u8CBE\u8EC1\u0000\u0000\u0000\u0000\u9555\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9152\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9153\u0000\u0000\u0000"+
-            "\u9155\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u955D"+
-            "\u0000\u9671\u0000\u0000\u0000\u0000\u9C6D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9673"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9154\u9A71\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9156\u0000\u0000\u0000\u966D\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9557\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u89C6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89C7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8A6A\u0000\u0000\u0000\u8B57\u0000"+
-            "\u0000\u0000\u9FE1\u0000\u0000\u9B5F\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA05D"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u915B\u0000\u915C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u915E\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F5C"+
-            "\u0000\u0000\u9F57\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9F65\u0000\u0000\u0000\u0000\u0000\u9A72"+
-            "\u0000\u0000\u0000\u0000\u9160\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9F5E\u0000\u0000\u9161\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9164\u0000\u0000\u0000"+
-            "\u0000\u9F41\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9169\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9168\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9A74\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96B2"+
-            "\u0000\u9A75\u0000\uFDA5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9EE9\u0000\u8BBA\u916D\uA060"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FDE"+
-            "\u0000\u0000\u0000\u0000\u0000\u9FC3\u0000\u96B5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA067\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96B3"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A76\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u95D5\u0000\u0000\u0000\u9ECA\u0000\u0000"+
-            "\u0000\u9A77\u0000\u0000\u9A78\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9170"+
-            "\u0000\u0000\u916F\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FA3\u0000\u9171\u0000\u0000\u0000"+
-            "\u96B1\u0000\u0000\u0000\u0000\u9F63\u0000\u0000"+
-            "\u0000\u0000\u0000\u9F67\u0000\u0000\u0000\u8BB9"+
-            "\u9A7A\u0000\u0000\u0000\u0000\u0000\u8B56\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9ADA"+
-            "\u0000\u0000\u0000\u0000\u0000\u96B0\u0000\u0000"+
-            "\u0000\u0000\u9A7E\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9DDE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96AD"+
-            "\u0000\u0000\u0000\u96AE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9EA1\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9E50\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u96AF\u8BF4\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FA4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u96BD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u96F4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u96B8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFAA1\u0000\u0000\u0000"+
-            "\u0000\u91A7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA05E\u0000\u0000\u0000"+
-            "\u0000\u9A7D\u0000\u0000\u0000\u0000\u8948\u0000"+
-            "\u9EB1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9DDB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u95BF\u8A73\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9EFE\u0000\u917A\u0000"+
-            "\u0000\u0000\u0000\u917B\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9AA3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u96C2\u0000\u0000"+
-            "\u0000\u0000\u0000\u9F77\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9AA4\u0000\u0000"+
-            "\u9AA5\u0000\u0000\u0000\u91A1\u0000\u0000\u0000"+
-            "\u0000\u89B8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9173\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9AA6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u89BD\u0000\u89B9\u0000\u917D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u96BB\u0000\u0000\u0000\u9FF2\u0000\u0000\u8BF5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9AA9\u0000\u0000\u0000\u0000"+
-            "\u0000\u9F54\u0000\u0000\u9FE3\u9EED\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u91AA\u0000\u0000\u0000\u0000\u91AB\uA070\u0000"+
-            "\u9F6D\u0000\u0000\u0000\u0000\u0000\u91AC\u0000"+
-            "\u0000\u0000\u91AD\u0000\u0000\u0000\uA0FD\u0000"+
-            "\u9FE2\u0000\u91AF\u9E41\u9AAA\u0000\u0000\u91B0"+
-            "\u0000\u9AAB\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9AAC\u0000\u9A4A"+
-            "\u0000\u91B2\u0000\u0000\u8BF6\u0000\u9AAD\u89B6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9AAF\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9AB0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9AB1\u0000\u0000\u0000\u0000\u0000\u9AA1\u0000"+
-            "\u0000\u0000\u91B9\u0000\u0000\u0000\u0000\u0000"+
-            "\u91BA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u91BE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA041\u8BB7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u91C0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9AB3\u91C3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA0FC\u0000\u0000\u9FEE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9F69\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u91C8\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u91C9\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DE6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u91CB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u89C8\u0000\u0000\u0000\u0000\u0000\u8DAA"+
-            "\u0000\u0000\u0000\u0000\u0000\u9FDD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFA40\u0000\uFA42\uFA43\u0000\u0000\u0000\u0000"+
-            "\u0000\uFA49\uFA4A\u0000\uFA4C\u0000\uFA4E\u0000"+
-            "\u0000\u0000\uFA52\uFA53\uFA54\uFA55\uFA56\u0000"+
-            "\uFA58\u0000\uFA5A\uFA5B\uFA5C\uFA5D\uFA5E\u0000"+
-            "\uFA60\u0000\uFA62\uFA63\u0000\uFA65\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFA6D\uFA6E\u0000"+
-            "\uFA70\u0000\uFA72\uFA73\uFA74\uFA75\uFA76\uFA77"+
-            "\uFA78\u0000\u0000\uFA7B\uFA7C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFAA7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFAAE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFABC\u0000\uFABE\u0000\u0000\uFAC1"+
-            "\uFAC2\uFAC3\u0000\u0000\uFAC6\u0000\uFAC8\u0000"+
-            "\u0000\u0000\u0000\u0000\uFACE\u0000\u0000\u0000"+
-            "\u0000\uFAD3\u0000\u0000\uFAD6\uFAD7\u0000\u0000"+
-            "\uFADA\u0000\u0000\u0000\u0000\uFADF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFAE9"+
-            "\u0000\uFAEB\uFAEC\u0000\uFAEE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAF5\uFAF6\u0000\u0000\u0000"+
-            "\u0000\uFAFB\uFAFC\u0000\uFAFE\uFB40\uFB41\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFB49\uFB4A"+
-            "\u0000\uFB4C\u0000\uFB4E\u0000\u0000\uFB51\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFB5D\u0000\uFB5F\u0000\uFB61\u0000"+
-            "\u0000\u0000\u0000\uFB66\u0000\uFB68\u0000\uFB6A"+
-            "\uFB6B\u0000\uFB6D\u0000\u0000\u0000\u0000\u0000"+
-            "\uFB73\u0000\u0000\u0000\uFB77\uFB78\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFBA1\u0000\u0000\uFBA4"+
-            "\u0000\u0000\uFBA7\uFBA8\uFBA9\uFBAA\u0000\uFBAC"+
-            "\uFBAD\uFBAE\u0000\uFBB0\uFBB1\u0000\uFBB3\u0000"+
-            "\u0000\u0000\uFBB7\u0000\u0000\u0000\u0000\u0000"+
-            "\uFBBD\uFBBE\u0000\uFBC0\u0000\uFBC2\u0000\u0000"+
-            "\u0000\u0000\u0000\uFBC8\u0000\u0000\uFBCB\u0000"+
-            "\u0000\uFBCE\uFBCF\uFBD0\u0000\u0000\u0000\u0000"+
-            "\uFBD5\u0000\u0000\u0000\uFBD9\uFBDA\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFBE1\uFBE2\u0000\u0000"+
-            "\u0000\uFBE6\u0000\u0000\u0000\u0000\uFBEB\uFBEC"+
-            "\uFBED\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFBF5\uFBF6\u0000\u0000\u0000\u0000\uFBFB\u0000"+
-            "\u0000\uFBFE\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFC47\uFC48\u0000\u0000\uFC4B\u0000\uFC4D"+
-            "\uFC4E\u0000\uFC50\u0000\u0000\uFC53\u0000\u0000"+
-            "\uFC56\u0000\u0000\u0000\uFC5A\uFC5B\uFC5C\uFC5D"+
-            "\u0000\uFC5F\uFC60\u0000\u0000\uFC63\u0000\u0000"+
-            "\u0000\u0000\uFC68\u0000\u0000\u0000\u0000\u0000"+
-            "\uFC6E\uFC6F\uFC70\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFC77\uFC78\u0000\u0000\uFC7B\u0000\u0000"+
-            "\uFC7E\uFCA1\u0000\uFCA3\uFCA4\u0000\u0000\uFCA7"+
-            "\uFCA8\u0000\u0000\u0000\u0000\uFCAD\u0000\uFCAF"+
-            "\u0000\uFCB1\u0000\uFCB3\u0000\u0000\u0000\uFCB7"+
-            "\uFCB8\u0000\u0000\uFCBB\u0000\uFCBD\uFCBE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFCC7"+
-            "\uFCC8\u0000\u0000\u0000\uFCCC\u0000\uFCCE\u0000"+
-            "\u0000\u0000\uFCD2\u0000\u0000\u0000\uFCD6\u0000"+
-            "\uFCD8\uFCD9\u0000\uFCDB\uFCDC\u0000\uFCDE\u0000"+
-            "\uFCE0\u0000\u0000\uFCE3\uFCE4\uFCE5\uFCE6\uFCE7"+
-            "\u0000\uFCE9\u0000\u0000\uFCEC\uFCED\u0000\u0000"+
-            "\uFCF0\u0000\u0000\u0000\uFCF4\uFCF5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFCFC\uFCFD\u0000\uFD40"+
-            "\u0000\u0000\uFD43\u0000\u0000\uFD46\u0000\u0000"+
-            "\u0000\u0000\uFD4B\u0000\u0000\u0000\uFD4F\u0000"+
-            "\u0000\u0000\u0000\uFD54\u0000\u0000\u0000\uFD58"+
-            "\uFD59\u0000\uFD5B\u0000\u0000\u0000\u0000\uFD60"+
-            "\u0000\u0000\uFD63\u0000\u0000\u0000\uFD67\u0000"+
-            "\uFD69\uFD6A\uFD6B\u0000\u0000\uFD6E\u0000\uFD70"+
-            "\u0000\u0000\uFD73\uFD74\uFD75\u0000\u0000\u0000"+
-            "\uFD79\u0000\uFD7B\uFD7C\uFD7D\uFD7E\uFDA1\u0000"+
-            "\u0000\uFDA4\u0000\uFDA6\uFDA7\u0000\u0000\uFDAA"+
-            "\uFDAB\uFDAC\u0000\u0000\u0000\u0000\uFDB1\uFDB2"+
-            "\uFDB3\u0000\uFDB5\u0000\u0000\u0000\u0000\uFDBA"+
-            "\u0000\uFDBC\u0000\uFDBE\u0000\u0000\u0000\uFDC2"+
-            "\u0000\u0000\u0000\uFDC6\u0000\uFDC8\uFDC9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFDD0\u0000\u0000"+
-            "\uFDD3\u0000\uFDD5\uFDD6\uFDD7\uFDD8\uFDD9\uFDDA"+
-            "\u0000\uFDDC\uFDDD\uFDDE\uFDDF\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFDEC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFDF3\u0000\u0000\uFDF6\u0000\uFDF8\uFDF9\uFDFA"+
-            "\u0000\uFDFC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFE46\u0000\u0000\uFE49\u0000\u0000"+
-            "\u0000\u0000\uFE4E\u0000\u0000\u0000\u0000\u0000"+
-            "\uFE54\uFE55\u0000\uFE57\u0000\u0000\u0000\u0000"+
-            "\uFE5C\uFE5D\u0000\u0000\uFE60\uFE61\uFE62\u0000"+
-            "\u0000\uFE65\uFE66\uFE67\u0000\u0000\u0000\uFE6B"+
-            "\u0000\uFE6D\u0000\u0000\uFE70\u0000\uFE72\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFE7E\uFEA1\uFEA2\uFEA3\u0000\uFEA5"+
-            "\uFEA6\u0000\uFEA8\u0000\u0000\u0000\uFEAC\uFEAD"+
-            "\u0000\uFEAF\u0000\u0000\u0000\u0000\u0000\uFEB5"+
-            "\u0000\uFEB7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFEC2\u0000\u0000\u0000"+
-            "\uFEC6\uFEC7\u0000\u0000\u0000\u0000\uFECC\u0000"+
-            "\uFECE\uFECF\uFED0\u0000\u0000\u0000\u0000\uFED5"+
-            "\u0000\uFED7\u0000\uFED9\uFEDA\uFEDB\u0000\u0000"+
-            "\uFEDE\uFEDF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFEE6\u0000\u0000\u0000\uFEEA\u0000\u0000\uFEED"+
-            "\uFEEE\uFEEF\u0000\u0000\u0000\u0000\uFEF4\u0000"+
-            "\uFEF6\u0000\u0000\u0000\uFEFA\u0000\u0000\uFEFD"+
-            "\u0000\u8E40\u0000\u8E42\u0000\u8E44\u0000\u0000"+
-            "\u8E47\u0000\u0000\u8E4A\u8E4B\u0000\u0000\u8E4E"+
-            "\u0000\u0000\u0000\u0000\u0000\u8E54\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8E5B\u0000\u0000\u0000"+
-            "\u8E5F\u8E60\u0000\u0000\u0000\u8E64\u8E65\u0000"+
-            "\u0000\u0000\u0000\u8E6A\u0000\u8E6C\u0000\u0000"+
-            "\u0000\u0000\u8E71\u0000\u0000\u8E74\u0000\u0000"+
-            "\u8E77\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8EA3\u0000\u8EA5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8EAC\u8EAD\u0000\u0000\u0000"+
-            "\u8EB1\u0000\u8EB3\u0000\u8EB5\u8EB6\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8EC0"+
-            "\u0000\u0000\u8EC3\u0000\u8EC5\u8EC6\u0000\u8EC8"+
-            "\u0000\u8ECA\u0000\u8ECC\u0000\u0000\u0000\u0000"+
-            "\u0000\u8ED2\u8ED3\u0000\u0000\u0000\u8ED7\u0000"+
-            "\u8ED9\u8EDA\u8EDB\u0000\u0000\u8EDE\u0000\u0000"+
-            "\u0000\u8EE2\u0000\u8EE4\u8EE5\u0000\u8EE7\u0000"+
-            "\u8EE9\u0000\u8EEB\u8EEC\u0000\u0000\u8EEF\u8EF0"+
-            "\u8EF1\u0000\u8EF3\u0000\u0000\u8EF6\u8EF7\u8EF8"+
-            "\u8EF9\u8EFA\u0000\u0000\u8EFD\u0000\u0000\u0000"+
-            "\u0000\u8F43\u8F44\u0000\u8F46\u8F47\u0000\u0000"+
-            "\u0000\u8F4B\u8F4C\u8F4D\u8F4E\u8F4F\u0000\u0000"+
-            "\u0000\u0000\u0000\u8F55\u0000\u0000\u0000\u0000"+
-            "\u8F5A\u0000\u0000\u0000\u8F5E\u8F5F\u0000\u8F61"+
-            "\u0000\u0000\u0000\u0000\u0000\u8F67\u0000\u0000"+
-            "\u8F6A\u8F6B\u8F6C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8F73\u0000\u8F75\u0000\u0000\u0000\u8F79"+
-            "\u0000\u0000\u0000\u0000\u0000\u8FA1\u8FA2\u0000"+
-            "\u8FA4\u0000\u8FA6\u8FA7\u8FA8\u0000\u0000\u0000"+
-            "\u8FAC\u0000\u8FAE\u0000\u0000\u8FB1\u0000\u8FB3"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8FBD\u8FBE\u8FBF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FC8\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8FCF\u0000\u8FD1\u8FD2\u0000"+
-            "\u0000\u0000\u0000\u8FD7\u0000\u8FD9\u8FDA\u0000"+
-            "\u8FDC\u0000\u0000\u0000\u8FE0\u8FE1\u0000\u0000"+
-            "\u0000\u0000\u8FE6\u0000\u0000\u0000\u8FEA\u0000"+
-            "\u0000\u0000\u8FEE\u8FEF\u8FF0\u0000\u8FF2\u0000"+
-            "\u8FF4\u8FF5\u0000\u0000\u8FF8\u0000\u0000\u0000"+
-            "\u8FFC\u0000\u0000\u0000\u9041\u9042\u9043\u0000"+
-            "\u9045\u9046\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u904E\u904F\u0000\u0000\u9052\u9053\u0000"+
-            "\u0000\u9056\u9057\u9058\u0000\u905A\u0000\u905C"+
-            "\u905D\u905E\u905F\u0000\u9061\u0000\u9063\u9064"+
-            "\u0000\u9066\u9067\u0000\u9069\u0000\u906B\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9073\u9074"+
-            "\u0000\u0000\u0000\u0000\u9079\u0000\u907B\u907C"+
-            "\u907D\u907E\u90A1\u0000\u0000\u90A4\u90A5\u0000"+
-            "\u0000\u90A8\u90A9\u0000\u0000\u90AC\u90AD\u90AE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u90B8\u90B9\u90BA\u90BB\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u90C2\u0000\u0000\u0000\u90C6"+
-            "\u0000\u0000\u0000\u90CA\u90CB\u90CC\u90CD\u90CE"+
-            "\u90CF\u90D0\u90D1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u90D8\u0000\u0000\u0000\u0000\u90DD\u0000"+
-            "\u0000\u90E0\u0000\u0000\u0000\u90E4\u90E5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90ED\u0000"+
-            "\u0000\u90F0\u0000\u0000\u90F3\u90F4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u90FB\u0000\u90FD\u90FE"+
-            "\u9140\u0000\u0000\u0000\u0000\u0000\u9146\u9147"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u914E\u0000"+
-            "\u9150\u9151\u0000\u0000\u0000\u0000\u0000\u9157"+
-            "\u0000\u9159\u915A\u0000\u0000\u915D\u0000\u0000"+
-            "\u0000\u0000\u9162\u0000\u0000\u9165\u0000\u9167"+
-            "\u0000\u0000\u916A\u0000\u916C\u0000\u916E\u0000"+
-            "\u0000\u0000\u9172\u0000\u9174\u9175\u9176\u9177"+
-            "\u9178\u9179\u0000\u0000\u917C\u0000\u0000\u0000"+
-            "\u91A2\u91A3\u91A4\u91A5\u91A6\u0000\u91A8\u91A9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u91B1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u91B8\u0000"+
-            "\u0000\u0000\u0000\u91BD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u91C5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u91CE\u91CF\u0000\u91D1"+
-            "\u91D2\u91D3\u0000\u91D5\u91D6\u0000\u91D8\u91D9"+
-            "\u0000\u0000\u91DC\u0000\u0000\u0000\u91E0\u91E1"+
-            "\u0000\u0000\u0000\u0000\u0000\u91E7\u91E8\u0000"+
-            "\u91EA\u0000\u91EC\u91ED\u0000\u91EF\u91F0\u91F1"+
-            "\u0000\u91F3\u91F4\u0000\u91F6\u91F7\u91F8\u0000"+
-            "\u91FA\u0000\u91FC\u91FD\u91FE\u9240\u9241\u0000"+
-            "\u9243\u0000\u0000\u9246\u9247\u9248\u9249\u924A"+
-            "\u924B\u0000\u924D\u924E\u924F\u0000\u0000\u0000"+
-            "\u0000\u0000\u9255\u0000\u0000\u9258\u9259\u925A"+
-            "\u925B\u925C\u0000\u0000\u925F\u0000\u9261\u9262"+
-            "\u9263\u0000\u9265\u0000\u0000\u0000\u0000\u926A"+
-            "\u0000\u926C\u926D\u0000\u0000\u9270\u0000\u9272"+
-            "\u9273\u0000\u9275\u9276\u0000\u0000\u9279\u927A"+
-            "\u927B\u0000\u927D\u0000\u0000\u0000\u0000\u0000"+
-            "\u92A5\u92A6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u92B4"+
-            "\u92B5\u92B6\u0000\u92B8\u92B9\u0000\u0000\u92BC"+
-            "\u0000\u92BE\u92BF\u92C0\u0000\u92C2\u92C3\u0000"+
-            "\u0000\u92C6\u0000\u0000\u0000\u0000\u92CB\u92CC"+
-            "\u92CD\u92CE\u0000\u92D0\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u92D8\u92D9\u0000\u0000\u0000";
-        */
-        private final static String innerIndex7=
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8BFB\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9A57\u0000\u0000\u0000\u0000"+
-            "\uA0AA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FA6\u0000\u0000\u0000\u99CC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9C59\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u99B5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u90BE\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FAF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95F2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90BF\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u90C1\u0000\uFEE4\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90C4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u90C7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u92E4\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9F52\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u90DB\u0000\u0000\u0000\u0000"+
-            "\u0000\uA066\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u90D2\u0000\u0000\u0000\u0000\u90D4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9A5B\u95FD\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8BC4\u0000\u0000\u0000\u8C66\u0000\u90DE"+
-            "\u0000\u0000\u0000\u0000\u0000\u9CE4\u0000\u90E1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9E46\u0000\u0000"+
-            "\u0000\u9651\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB58"+
-            "\u0000\u90E6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9650\u0000\u0000\u0000\u90E7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u90E8\u9A5D\u0000\u9F7A\u0000\u0000\u0000"+
-            "\u9B5C\u0000\u9F7C\u0000\u0000\uFC52\u90E9\u0000"+
-            "\u90EA\u0000\u9A5E\u0000\u0000\u0000\u0000\u0000"+
-            "\u9F76\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u90EB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u90EC\u0000\u0000\u0000\u0000\u0000\u8BEE\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90EE\u0000"+
-            "\u0000\u0000\u91C6\u0000\u0000\u90F2\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFCBC\u8A74\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9657"+
-            "\u0000\u0000\u0000\u9CEF\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9FDF\u0000"+
-            "\u0000\u0000\u0000\u90F7\u90F6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9B5E"+
-            "\u0000\u0000\u0000\u90F8\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90F9\u0000"+
-            "\u8CC9\u0000\u0000\u0000\uFA6A\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8BEF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9FE0\u0000\u0000\u9142"+
-            "\u0000\u9A62\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9569\u0000\u0000\u0000\u9144"+
-            "\u9143\u0000\u9141\u0000\u0000\u0000\u8BF0\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9660\u0000\u8BF1\u0000"+
-            "\u99F6\u9149\u0000\u0000\u0000\u0000\u914A\u0000"+
-            "\u0000\u0000\u0000\u0000\u914B\u0000\u0000\u0000"+
-            "\u0000\u9A64\u0000\u0000\u0000\u8ABF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9A66\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9A67\u0000\u0000\u9A69\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9A6A"+
-            "\u9652\u914D\u0000\u9666\u0000\u0000\u0000\u0000"+
-            "\u9F7B\u0000\u9A6B\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA06C\u0000\u0000\u9667\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A6C\u0000\u0000"+
-            "\u0000\u0000\u9A6D\u8BF2\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u966A\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFCEA\u0000\u0000\u0000"+
-            "\u0000\u0000\u966C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u91C4\u0000\u0000\u0000\u9677\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99F4\u9A6F\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FAB\u0000\u0000\u0000\u0000\u0000"+
-            "\u8CBE\u8EC1\u0000\u0000\u0000\u0000\u9555\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9152\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9153\u0000\u0000\u0000"+
-            "\u9155\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u955D"+
-            "\u0000\u9671\u0000\u0000\u0000\u0000\u9C6D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9673"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9154\u9A71\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9156\u0000\u0000\u0000\u966D\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9557\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u89C6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89C7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8A6A\u0000\u0000\u0000\u8B57\u0000"+
-            "\u0000\u0000\u9FE1\u0000\u0000\u9B5F\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA05D"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u915B\u0000\u915C\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u915E\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F5C"+
-            "\u0000\u0000\u9F57\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9F65\u0000\u0000\u0000\u0000\u0000\u9A72"+
-            "\u0000\u0000\u0000\u0000\u9160\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9F5E\u0000\u0000\u9161\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9164\u0000\u0000\u0000"+
-            "\u0000\u9F41\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9169\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9168\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9A74\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96B2"+
-            "\u0000\u9A75\u0000\uFDA5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9EE9\u0000\u8BBA\u916D\uA060"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FDE"+
-            "\u0000\u0000\u0000\u0000\u0000\u9FC3\u0000\u96B5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA067\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96B3"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A76\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u95D5\u0000\u0000\u0000\u9ECA\u0000\u0000"+
-            "\u0000\u9A77\u0000\u0000\u9A78\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9170"+
-            "\u0000\u0000\u916F\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FA3\u0000\u9171\u0000\u0000\u0000"+
-            "\u96B1\u0000\u0000\u0000\u0000\u9F63\u0000\u0000"+
-            "\u0000\u0000\u0000\u9F67\u0000\u0000\u0000\u8BB9"+
-            "\u9A7A\u0000\u0000\u0000\u0000\u0000\u8B56\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9ADA"+
-            "\u0000\u0000\u0000\u0000\u0000\u96B0\u0000\u0000"+
-            "\u0000\u0000\u9A7E\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9DDE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96AD"+
-            "\u0000\u0000\u0000\u96AE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9EA1\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9E50\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u96AF\u8BF4\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9FA4\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u96BD\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u96F4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u96B8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFAA1\u0000\u0000\u0000"+
-            "\u0000\u91A7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA05E\u0000\u0000\u0000"+
-            "\u0000\u9A7D\u0000\u0000\u0000\u0000\u8948\u0000"+
-            "\u9EB1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9DDB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u95BF\u8A73\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9EFE\u0000\u917A\u0000"+
-            "\u0000\u0000\u0000\u917B\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9AA3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u96C2\u0000\u0000"+
-            "\u0000\u0000\u0000\u9F77\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9AA4\u0000\u0000"+
-            "\u9AA5\u0000\u0000\u0000\u91A1\u0000\u0000\u0000"+
-            "\u0000\u89B8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9173\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9AA6\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u89BD\u0000\u89B9\u0000\u917D\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u96BB\u0000\u0000\u0000\u9FF2\u0000\u0000\u8BF5"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9AA9\u0000\u0000\u0000\u0000"+
-            "\u0000\u9F54\u0000\u0000\u9FE3\u9EED\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u91AA\u0000\u0000\u0000\u0000\u91AB\uA070\u0000"+
-            "\u9F6D\u0000\u0000\u0000\u0000\u0000\u91AC\u0000"+
-            "\u0000\u0000\u91AD\u0000\u0000\u0000\uA0FD\u0000"+
-            "\u9FE2\u0000\u91AF\u9E41\u9AAA\u0000\u0000\u91B0"+
-            "\u0000\u9AAB\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9AAC\u0000\u9A4A"+
-            "\u0000\u91B2\u0000\u0000\u8BF6\u0000\u9AAD\u89B6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9AAF\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9AB0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9AB1\u0000\u0000\u0000\u0000\u0000\u9AA1\u0000"+
-            "\u0000\u0000\u91B9\u0000\u0000\u0000\u0000\u0000"+
-            "\u91BA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u91BE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA041\u8BB7"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u91C0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9AB3\u91C3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA0FC\u0000\u0000\u9FEE\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9F69\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u91C8\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u91C9\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DE6"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u91CB\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u89C8\u0000\u0000\uC074\u0000\u0000\u8DAA"+
-            "\u0000\u0000\u0000\u0000\u0000\u9FDD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFA40\u0000\uFA42\uFA43\u0000\uFA45\u0000\u0000"+
-            "\uFA48\uFA49\uFA4A\u0000\uFA4C\u0000\uFA4E\u0000"+
-            "\u0000\u0000\uFA52\uFA53\uFA54\uFA55\uFA56\u0000"+
-            "\uFA58\u0000\uFA5A\uFA5B\uFA5C\uFA5D\uFA5E\u0000"+
-            "\uFA60\u0000\uFA62\uFA63\u0000\uFA65\u0000\u0000"+
-            "\uFA68\u0000\u0000\uFA6B\u0000\uFA6D\uFA6E\u0000"+
-            "\uFA70\u0000\uFA72\uFA73\uFA74\uFA75\uFA76\uFA77"+
-            "\uFA78\u0000\u0000\uFA7B\uFA7C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAA5\u0000\uFAA7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFAAE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFABC\u0000\uFABE\u0000\u0000\uFAC1"+
-            "\uFAC2\uFAC3\u0000\u0000\uFAC6\u0000\uFAC8\u0000"+
-            "\u0000\u0000\uFACC\uFACD\uFACE\u0000\uFAD0\u0000"+
-            "\u0000\uFAD3\u0000\u0000\uFAD6\uFAD7\u0000\u0000"+
-            "\uFADA\u0000\u0000\u0000\u0000\uFADF\uFAE0\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uFAE8\uFAE9"+
-            "\u0000\uFAEB\uFAEC\u0000\uFAEE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uFAF5\uFAF6\u0000\u0000\u0000"+
-            "\uFAFA\uFAFB\uFAFC\uFAFD\uFAFE\uFB40\uFB41\u0000"+
-            "\uFB43\u0000\u0000\u0000\u0000\u0000\uFB49\uFB4A"+
-            "\uFB4B\uFB4C\u0000\uFB4E\u0000\u0000\uFB51\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFB5D\uFB5E\uFB5F\u0000\uFB61\u0000"+
-            "\u0000\u0000\uFB65\uFB66\u0000\uFB68\u0000\uFB6A"+
-            "\uFB6B\u0000\uFB6D\u0000\u0000\uFB70\u0000\u0000"+
-            "\uFB73\u0000\u0000\u0000\uFB77\uFB78\u0000\uFB7A"+
-            "\u0000\u0000\uFB7D\u0000\uFBA1\u0000\u0000\uFBA4"+
-            "\u0000\u0000\uFBA7\uFBA8\uFBA9\uFBAA\u0000\uFBAC"+
-            "\uFBAD\uFBAE\u0000\uFBB0\uFBB1\u0000\uFBB3\u0000"+
-            "\u0000\uFBB6\uFBB7\u0000\uFBB9\u0000\u0000\u0000"+
-            "\uFBBD\uFBBE\uFBBF\uFBC0\uFBC1\uFBC2\u0000\u0000"+
-            "\u0000\u0000\u0000\uFBC8\uFBC9\uFBCA\uFBCB\u0000"+
-            "\u0000\uFBCE\uFBCF\uFBD0\u0000\u0000\uFBD3\u0000"+
-            "\uFBD5\u0000\u0000\u0000\uFBD9\uFBDA\u0000\uFBDC"+
-            "\u0000\u0000\u0000\u0000\uFBE1\uFBE2\u0000\u0000"+
-            "\u0000\uFBE6\u0000\u0000\u0000\uFBEA\uFBEB\uFBEC"+
-            "\uFBED\u0000\uFBEF\uFBF0\u0000\u0000\u0000\u0000"+
-            "\uFBF5\uFBF6\u0000\u0000\u0000\u0000\uFBFB\u0000"+
-            "\u0000\uFBFE\u0000\u0000\uFC42\u0000\u0000\u0000"+
-            "\u0000\uFC47\uFC48\uFC49\uFC4A\uFC4B\u0000\uFC4D"+
-            "\uFC4E\u0000\uFC50\u0000\u0000\uFC53\u0000\u0000"+
-            "\uFC56\u0000\u0000\uFC59\uFC5A\uFC5B\uFC5C\uFC5D"+
-            "\u0000\uFC5F\uFC60\u0000\u0000\uFC63\uFC64\uFC65"+
-            "\uFC66\u0000\uFC68\u0000\uFC6A\u0000\u0000\u0000"+
-            "\uFC6E\uFC6F\uFC70\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uFC77\uFC78\u0000\u0000\uFC7B\u0000\u0000"+
-            "\uFC7E\uFCA1\u0000\uFCA3\uFCA4\u0000\uFCA6\uFCA7"+
-            "\uFCA8\u0000\u0000\u0000\u0000\uFCAD\u0000\uFCAF"+
-            "\u0000\uFCB1\u0000\uFCB3\uFCB4\u0000\u0000\uFCB7"+
-            "\uFCB8\u0000\u0000\uFCBB\u0000\uFCBD\uFCBE\u0000"+
-            "\u0000\u0000\uFCC2\u0000\uFCC4\u0000\u0000\uFCC7"+
-            "\uFCC8\u0000\u0000\u0000\uFCCC\u0000\uFCCE\uFCCF"+
-            "\u0000\uFCD1\uFCD2\u0000\u0000\u0000\uFCD6\u0000"+
-            "\uFCD8\uFCD9\u0000\uFCDB\uFCDC\u0000\uFCDE\u0000"+
-            "\uFCE0\u0000\u0000\uFCE3\uFCE4\uFCE5\uFCE6\uFCE7"+
-            "\u0000\uFCE9\u0000\u0000\uFCEC\uFCED\uFCEE\u0000"+
-            "\uFCF0\u0000\u0000\u0000\uFCF4\uFCF5\u0000\uFCF7"+
-            "\u0000\u0000\u0000\u0000\uFCFC\uFCFD\u0000\uFD40"+
-            "\u0000\u0000\uFD43\u0000\u0000\uFD46\u0000\u0000"+
-            "\uFD49\uFD4A\uFD4B\uFD4C\u0000\u0000\uFD4F\uFD50"+
-            "\u0000\u0000\uFD53\uFD54\u0000\u0000\u0000\uFD58"+
-            "\uFD59\u0000\uFD5B\u0000\uFD5D\u0000\u0000\uFD60"+
-            "\uFD61\u0000\uFD63\u0000\u0000\u0000\uFD67\u0000"+
-            "\uFD69\uFD6A\uFD6B\uFD6C\u0000\uFD6E\u0000\uFD70"+
-            "\u0000\u0000\uFD73\uFD74\uFD75\u0000\u0000\u0000"+
-            "\uFD79\uFD7A\uFD7B\uFD7C\uFD7D\uFD7E\uFDA1\uFDA2"+
-            "\uFDA3\uFDA4\u0000\uFDA6\uFDA7\u0000\u0000\uFDAA"+
-            "\uFDAB\uFDAC\u0000\u0000\u0000\u0000\uFDB1\uFDB2"+
-            "\uFDB3\u0000\uFDB5\u0000\u0000\u0000\u0000\uFDBA"+
-            "\u0000\uFDBC\u0000\uFDBE\u0000\u0000\u0000\uFDC2"+
-            "\u0000\uFDC4\u0000\uFDC6\u0000\uFDC8\uFDC9\uFDCA"+
-            "\u0000\u0000\u0000\uFDCE\u0000\uFDD0\uFDD1\u0000"+
-            "\uFDD3\u0000\uFDD5\uFDD6\uFDD7\uFDD8\uFDD9\uFDDA"+
-            "\u0000\uFDDC\uFDDD\uFDDE\uFDDF\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uFDE8\uFDE9\u0000"+
-            "\u0000\uFDEC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFDF3\u0000\u0000\uFDF6\u0000\uFDF8\uFDF9\uFDFA"+
-            "\u0000\uFDFC\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uFE46\u0000\u0000\uFE49\u0000\u0000"+
-            "\u0000\uFE4D\uFE4E\u0000\u0000\u0000\u0000\u0000"+
-            "\uFE54\uFE55\uFE56\uFE57\u0000\u0000\u0000\u0000"+
-            "\uFE5C\uFE5D\u0000\u0000\uFE60\uFE61\uFE62\u0000"+
-            "\uFE64\uFE65\uFE66\uFE67\u0000\u0000\u0000\uFE6B"+
-            "\u0000\uFE6D\uFE6E\u0000\uFE70\u0000\uFE72\u0000"+
-            "\u0000\u0000\u0000\u0000\uFE78\u0000\u0000\u0000"+
-            "\u0000\uFE7D\uFE7E\uFEA1\uFEA2\uFEA3\u0000\uFEA5"+
-            "\uFEA6\u0000\uFEA8\u0000\u0000\u0000\uFEAC\uFEAD"+
-            "\u0000\uFEAF\u0000\u0000\u0000\u0000\u0000\uFEB5"+
-            "\uFEB6\uFEB7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uFEC2\u0000\u0000\uFEC5"+
-            "\uFEC6\uFEC7\u0000\u0000\u0000\u0000\uFECC\u0000"+
-            "\uFECE\uFECF\uFED0\u0000\u0000\u0000\u0000\uFED5"+
-            "\u0000\uFED7\u0000\uFED9\uFEDA\uFEDB\u0000\u0000"+
-            "\uFEDE\uFEDF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uFEE6\u0000\u0000\u0000\uFEEA\u0000\u0000\uFEED"+
-            "\uFEEE\uFEEF\u0000\u0000\u0000\u0000\uFEF4\u0000"+
-            "\uFEF6\u0000\u0000\u0000\uFEFA\uFEFB\u0000\uFEFD"+
-            "\u0000\u8E40\u0000\u8E42\u0000\u8E44\u8E45\u0000"+
-            "\u8E47\u0000\u0000\u8E4A\u8E4B\u0000\u0000\u8E4E"+
-            "\u0000\u0000\u0000\u0000\u0000\u8E54\u8E55\u0000"+
-            "\u0000\u0000\u8E59\u0000\u8E5B\u0000\u0000\u0000"+
-            "\u8E5F\u8E60\u0000\u0000\u0000\u8E64\u8E65\u0000"+
-            "\u0000\u0000\u0000\u8E6A\u8E6B\u8E6C\u0000\u0000"+
-            "\u0000\u0000\u8E71\u0000\u0000\u8E74\u0000\u0000"+
-            "\u8E77\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8EA2\u8EA3\u0000\u8EA5\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8EAC\u8EAD\u0000\u8EAF\u0000"+
-            "\u8EB1\u0000\u8EB3\u0000\u8EB5\u8EB6\u0000\u0000"+
-            "\u8EB9\u0000\u0000\u0000\u0000\u0000\u0000\u8EC0"+
-            "\u0000\u0000\u8EC3\u0000\u8EC5\u8EC6\u8EC7\u8EC8"+
-            "\u8EC9\u8ECA\u0000\u8ECC\u0000\u0000\u0000\u0000"+
-            "\u0000\u8ED2\u8ED3\u0000\u0000\u0000\u8ED7\u8ED8"+
-            "\u8ED9\u8EDA\u8EDB\u0000\u0000\u8EDE\u0000\u0000"+
-            "\u0000\u8EE2\u0000\u8EE4\u8EE5\u0000\u8EE7\u0000"+
-            "\u8EE9\u0000\u8EEB\u8EEC\u8EED\u0000\u8EEF\u8EF0"+
-            "\u8EF1\u0000\u8EF3\u0000\u0000\u8EF6\u8EF7\u8EF8"+
-            "\u8EF9\u8EFA\u0000\u0000\u8EFD\u8EFE\u0000\u0000"+
-            "\u0000\u8F43\u8F44\u8F45\u8F46\u8F47\u0000\u0000"+
-            "\u0000\u8F4B\u8F4C\u8F4D\u8F4E\u8F4F\u8F50\u0000"+
-            "\u0000\u0000\u8F54\u8F55\u0000\u0000\u0000\u8F59"+
-            "\u8F5A\u0000\u0000\u8F5D\u8F5E\u8F5F\u0000\u8F61"+
-            "\u0000\u8F63\u8F64\u0000\u0000\u8F67\u0000\u0000"+
-            "\u8F6A\u8F6B\u8F6C\u0000\u0000\u0000\u8F70\u0000"+
-            "\u0000\u8F73\u8F74\u8F75\u8F76\u0000\u0000\u8F79"+
-            "\u8F7A\u0000\u8F7C\u0000\u0000\u8FA1\u8FA2\u0000"+
-            "\u8FA4\u0000\u8FA6\u8FA7\u8FA8\u8FA9\u0000\u8FAB"+
-            "\u8FAC\u0000\u8FAE\u0000\u0000\u8FB1\u0000\u8FB3"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8FBA\u0000"+
-            "\u0000\u8FBD\u8FBE\u8FBF\u0000\u0000\u8FC2\u0000"+
-            "\u0000\u0000\u0000\u0000\u8FC8\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8FCF\u0000\u8FD1\u8FD2\u0000"+
-            "\u0000\u0000\u0000\u8FD7\u0000\u8FD9\u8FDA\u8FDB"+
-            "\u8FDC\u0000\u0000\u0000\u8FE0\u8FE1\u0000\u0000"+
-            "\u0000\u0000\u8FE6\u0000\u0000\u0000\u8FEA\u8FEB"+
-            "\u0000\u0000\u8FEE\u8FEF\u8FF0\u8FF1\u8FF2\u0000"+
-            "\u8FF4\u8FF5\u0000\u0000\u8FF8\u0000\u0000\u0000"+
-            "\u8FFC\u8FFD\u0000\u0000\u9041\u9042\u9043\u9044"+
-            "\u9045\u9046\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u904E\u904F\u0000\u0000\u9052\u9053\u0000"+
-            "\u9055\u9056\u9057\u9058\u0000\u905A\u0000\u905C"+
-            "\u905D\u905E\u905F\u9060\u9061\u0000\u9063\u9064"+
-            "\u0000\u9066\u9067\u0000\u9069\u0000\u906B\u0000"+
-            "\u0000\u0000\u906F\u0000\u0000\u0000\u9073\u9074"+
-            "\u0000\u0000\u0000\u0000\u9079\u0000\u907B\u907C"+
-            "\u907D\u907E\u90A1\u0000\u0000\u90A4\u90A5\u0000"+
-            "\u0000\u90A8\u90A9\u90AA\u0000\u90AC\u90AD\u90AE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u90B7\u90B8\u90B9\u90BA\u90BB\u90BC\u0000\u0000"+
-            "\u0000\u90C0\u0000\u90C2\u0000\u0000\u0000\u90C6"+
-            "\u0000\u0000\u90C9\u90CA\u90CB\u90CC\u90CD\u90CE"+
-            "\u90CF\u90D0\u90D1\u0000\u0000\u0000\u90D5\u90D6"+
-            "\u90D7\u90D8\u0000\u0000\u0000\u0000\u90DD\u0000"+
-            "\u0000\u90E0\u0000\u0000\u0000\u90E4\u90E5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u90ED\u0000"+
-            "\u0000\u90F0\u0000\u0000\u90F3\u90F4\u90F5\u0000"+
-            "\u0000\u0000\u0000\u90FA\u90FB\u90FC\u90FD\u90FE"+
-            "\u9140\u0000\u0000\u0000\u0000\u9145\u9146\u9147"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u914E\u914F"+
-            "\u9150\u9151\u0000\u0000\u0000\u0000\u0000\u9157"+
-            "\u9158\u9159\u915A\u0000\u0000\u915D\u0000\u915F"+
-            "\u0000\u0000\u9162\u0000\u0000\u9165\u9166\u9167"+
-            "\u0000\u0000\u916A\u0000\u916C\u0000\u916E\u0000"+
-            "\u0000\u0000\u9172\u0000\u9174\u9175\u9176\u9177"+
-            "\u9178\u9179\u0000\u0000\u917C\u0000\u0000\u0000"+
-            "\u91A2\u91A3\u91A4\u91A5\u91A6\u0000\u91A8\u91A9"+
-            "\u0000\u0000\u0000\u0000\u91AE\u0000\u0000\u91B1"+
-            "\u0000\u91B3\u91B4\u91B5\u0000\u91B7\u91B8\u0000"+
-            "\u0000\u91BB\u0000\u91BD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u91C5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u91CD\u91CE\u91CF\u0000\u91D1"+
-            "\u91D2\u91D3\u0000\u91D5\u91D6\u0000\u91D8\u91D9"+
-            "\u0000\u0000\u91DC\u0000\u0000\u0000\u91E0\u91E1"+
-            "\u0000\u91E3\u0000\u0000\u0000\u91E7\u91E8\u0000"+
-            "\u91EA\u0000\u91EC\u91ED\u91EE\u91EF\u91F0\u91F1"+
-            "\u91F2\u91F3\u91F4\u91F5\u91F6\u91F7\u91F8\u91F9"+
-            "\u91FA\u0000\u91FC\u91FD\u91FE\u9240\u9241\u0000"+
-            "\u9243\u0000\u0000\u9246\u9247\u9248\u9249\u924A"+
-            "\u924B\u924C\u924D\u924E\u924F\u0000\u9251\u9252"+
-            "\u9253\u0000\u9255\u0000\u9257\u9258\u9259\u925A"+
-            "\u925B\u925C\u0000\u0000\u925F\u0000\u9261\u9262"+
-            "\u9263\u0000\u9265\u0000\u0000\u0000\u9269\u926A"+
-            "\u0000\u926C\u926D\u0000\u0000\u9270\u0000\u9272"+
-            "\u9273\u9274\u9275\u9276\u9277\u0000\u9279\u927A"+
-            "\u927B\u0000\u927D\u0000\u0000\u0000\u0000\u0000"+
-            "\u92A5\u92A6\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u92B4"+
-            "\u92B5\u92B6\u0000\u92B8\u92B9\u0000\u0000\u92BC"+
-            "\u92BD\u92BE\u92BF\u92C0\u0000\u92C2\u92C3\u0000"+
-            "\u0000\u92C6\u0000\u0000\u92C9\u0000\u92CB\u92CC"+
-            "\u92CD\u92CE\u0000\u92D0\u0000\u92D2\u0000\u0000"+
-            "\u0000\u0000\u92D7\u92D8\u92D9\u0000\u92DB\u0000";
-
-        /*
-        private final static String innerIndex8=
-            "\u92DD\u0000\u92DF\u0000\u92E1\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u92EC"+
-            "\u92ED\u92EE\u92EF\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u92F6\u92F7\u92F8\u92F9\u0000\u0000\u0000"+
-            "\u0000\u92FE\u0000\u9341\u9342\u0000\u0000\u9345"+
-            "\u0000\u0000\u0000\u9349\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u9350\u9351\u9352\u0000\u0000\u9355"+
-            "\u9356\u0000\u9358\u0000\u935A\u0000\u0000\u935D"+
-            "\u935E\u935F\u9360\u0000\u0000\u9363\u9364\u0000"+
-            "\u9366\u0000\u0000\u9369\u0000\u0000\u936C\u936D"+
-            "\u0000\u0000\u9370\u9371\u9372\u9373\u0000\u9375"+
-            "\u9376\u9377\u0000\u0000\u0000\u937B\u937C\u937D"+
-            "\u937E\u0000\u93A2\u93A3\u0000\u93A5\u93A6\u93A7"+
-            "\u93A8\u0000\u93AA\u0000\u0000\u0000\u93AE\u93AF"+
-            "\u0000\u93B1\u0000\u0000\u0000\u0000\u93B6\u93B7"+
-            "\u93B8\u93B9\u0000\u93BB\u93BC\u93BD\u0000\u93BF"+
-            "\u93C0\u0000\u0000\u93C3\u93C4\u93C5\u93C6\u93C7"+
-            "\u93C8\u0000\u93CA\u93CB\u93CC\u0000\u93CE\u93CF"+
-            "\u93D0\u0000\u93D2\u0000\u0000\u0000\u93D6\u93D7"+
-            "\u0000\u93D9\u93DA\u0000\u93DC\u0000\u93DE\u93DF"+
-            "\u0000\u93E1\u93E2\u0000\u0000\u0000\u93E6\u0000"+
-            "\u0000\u0000\u0000\u0000\u93EC\u93ED\u0000\u0000"+
-            "\u0000\u0000\u93F2\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u93F9\u93FA\u0000\u0000\u93FD\u93FE\u0000"+
-            "\u9441\u9442\u0000\u0000\u0000\u9446\u0000\u9448"+
-            "\u0000\u0000\u944B\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9452\u9453\u0000\u0000\u0000\u0000\u9458"+
-            "\u9459\u0000\u945B\u945C\u0000\u945E\u945F\u9460"+
-            "\u9461\u9462\u0000\u0000\u9465\u9466\u9467\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u946F\u0000"+
-            "\u0000\u0000\u9473\u9474\u0000\u0000\u0000\u9478"+
-            "\u0000\u0000\u947B\u947C\u947D\u0000\u0000\u94A2"+
-            "\u0000\u94A4\u94A5\u0000\u0000\u0000\u94A9\u94AA"+
-            "\u0000\u94AC\u94AD\u0000\u94AF\u0000\u0000\u0000"+
-            "\u94B3\u94B4\u0000\u94B6\u0000\u0000\u0000\u94BA"+
-            "\u94BB\u0000\u94BD\u94BE\u0000\u94C0\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u94C7\u94C8\u0000\u0000"+
-            "\u0000\u0000\u0000\u94CE\u0000\u0000\u0000\u94D2"+
-            "\u0000\u0000\u0000\u94D6\u94D7\u94D8\u94D9\u94DA"+
-            "\u0000\u0000\u0000\u0000\u94DF\u94E0\u0000\u0000"+
-            "\u94E3\u94E4\u94E5\u0000\u94E7\u0000\u0000\u94EA"+
-            "\u0000\u0000\u0000\u0000\u0000\u94F0\u94F1\u94F2"+
-            "\u0000\u94F4\u94F5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u94FE\u9540\u9541\u0000\u9543"+
-            "\u0000\u9545\u9546\u0000\u9548\u9549\u0000\u954B"+
-            "\u954C\u954D\u0000\u0000\u9550\u9551\u9552\u0000"+
-            "\u9554\u0000\u0000\u0000\u0000\u9559\u0000\u955B"+
-            "\u955C\u0000\u955E\u0000\u9560\u9561\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9568\u0000\u956A\u0000"+
-            "\u0000\u956D\u0000\u956F\u0000\u9571\u0000\u0000"+
-            "\u9574\u0000\u9576\u0000\u9578\u0000\u957A\u957B"+
-            "\u0000\u957D\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u95A8\u0000\u95AA\u95AB\u95AC\u95AD"+
-            "\u95AE\u95AF\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u95B7\u0000\u0000\u95BA\u0000\u0000\u0000"+
-            "\u95BE\u0000\u0000\u0000\u95C2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u95CA\u0000\u0000\u0000"+
-            "\u0000\u0000\u95D0\u0000\u0000\u0000\u95D4\u0000"+
-            "\u0000\u95D7\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u95DE\u0000\u95E0\u0000\u95E2\u95E3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u95EA\u0000\u0000\u95ED"+
-            "\u95EE\u95EF\u0000\u95F1\u0000\u95F3\u95F4\u95F5"+
-            "\u0000\u95F7\u95F8\u95F9\u0000\u0000\u0000\u0000"+
-            "\u95FE\u0000\u0000\u9642\u9643\u0000\u0000\u9646"+
-            "\u9647\u9648\u9649\u0000\u0000\u0000\u0000\u0000"+
-            "\u964F\u0000\u0000\u0000\u9653\u0000\u9655\u9656"+
-            "\u0000\u9658\u0000\u965A\u0000\u0000\u965D\u965E"+
-            "\u965F\u0000\u9661\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9668\u0000\u0000\u0000\u0000\u0000\u966E"+
-            "\u966F\u0000\u0000\u0000\u0000\u9674\u0000\u9676"+
-            "\u0000\u0000\u0000\u0000\u0000\u967C\u0000\u967E"+
-            "\u96A1\u0000\u96A3\u96A4\u0000\u0000\u0000\u0000"+
-            "\u0000\u96AA\u96AB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u96B4\u0000\u96B6\u96B7\u0000"+
-            "\u0000\u96BA\u0000\u0000\u0000\u96BE\u96BF\u96C0"+
-            "\u96C1\u0000\u0000\u96C4\u96C5\u96C6\u0000\u0000"+
-            "\u96C9\u96CA\u96CB\u0000\u0000\u96CE\u96CF\u96D0"+
-            "\u0000\u96D2\u96D3\u0000\u96D5\u0000\u0000\u0000"+
-            "\u0000\u96DA\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u96E1\u0000\u0000\u0000\u0000\u96E6\u96E7\u96E8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96F0"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96F8"+
-            "\u0000\u96FA\u96FB\u0000\u96FD\u96FE\u0000\u0000"+
-            "\u0000\u0000\u9744\u0000\u0000\u9747\u0000\u0000"+
-            "\u974A\u974B\u0000\u974D\u974E\u974F\u9750\u9751"+
-            "\u0000\u9753\u9754\u0000\u9756\u9757\u9758\u9759"+
-            "\u975A\u0000\u0000\u0000\u0000\u975F\u9760\u0000"+
-            "\u9762\u0000\u0000\u0000\u0000\u9767\u9768\u9769"+
-            "\u976A\u976B\u976C\u976D\u0000\u976F\u0000\u9771"+
-            "\u0000\u0000\u0000\u9775\u0000\u9777\u9778\u0000"+
-            "\u977A\u977B\u0000\u977D\u0000\u97A1\u97A2\u0000"+
-            "\u97A4\u97A5\u97A6\u0000\u0000\u97A9\u0000\u97AB"+
-            "\u97AC\u97AD\u0000\u0000\u0000\u97B1\u97B2\u0000"+
-            "\u97B4\u97B5\u97B6\u0000\u0000\u97B9\u0000\u0000"+
-            "\u0000\u97BD\u97BE\u0000\u0000\u97C1\u0000\u0000"+
-            "\u0000\u0000\u0000\u97C7\u0000\u0000\u97CA\u0000"+
-            "\u97CC\u0000\u0000\u97CF\u0000\u0000\u0000\u97D3"+
-            "\u97D4\u0000\u0000\u0000\u97D8\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u97E3"+
-            "\u97E4\u0000\u0000\u0000\u97E8\u0000\u97EA\u97EB"+
-            "\u97EC\u97ED\u97EE\u0000\u0000\u97F1\u97F2\u97F3"+
-            "\u97F4\u97F5\u97F6\u97F7\u97F8\u0000\u97FA\u97FB"+
-            "\u0000\u0000\u0000\u9840\u9841\u9842\u9843\u0000"+
-            "\u9845\u0000\u9847\u0000\u9849\u984A\u984B\u0000"+
-            "\u0000\u984E\u0000\u0000\u9851\u9852\u0000\u0000"+
-            "\u9855\u0000\u0000\u0000\u0000\u985A\u0000\u0000"+
-            "\u985D\u0000\u985F\u9860\u9861\u9862\u0000\u9864"+
-            "\u9865\u0000\u9867\u0000\u9869\u986A\u986B\u0000"+
-            "\u986D\u986E\u0000\u0000\u9871\u0000\u0000\u9874"+
-            "\u9875\u0000\u0000\u0000\u0000\u0000\u987B\u987C"+
-            "\u0000\u0000\u0000\u98A2\u98A3\u98A4\u0000\u98A6"+
-            "\u98A7\u0000\u98A9\u98AA\u0000\u98AC\u0000\u0000"+
-            "\u0000\u98B0\u98B1\u0000\u0000\u0000\u0000\u98B6"+
-            "\u0000\u0000\u98B9\u0000\u0000\u0000\u98BD\u0000"+
-            "\u0000\u98C0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u98DF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u98FA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u995F"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u99D5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9A7C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9AB4"+
-            "\u9AB5\u9AB6\u0000\u0000\u0000\u9ABA\u0000\u0000"+
-            "\u0000\u9ABE\u9ABF\u9AC0\u9AC1\u0000\u0000\u9AC4"+
-            "\u9AC5\u9AC6\u0000\u9AC8\u9AC9\u0000\u9ACB\u9ACC"+
-            "\u9ACD\u9ACE\u9ACF\u0000\u9AD1\u0000\u9AD3\u9AD4"+
-            "\u9AD5\u9AD6\u9AD7\u9AD8\u0000\u0000\u0000\u9ADC"+
-            "\u9ADD\u9ADE\u9ADF\u9AE0\u9AE1\u0000\u9AE3\u0000"+
-            "\u9AE5\u9AE6\u9AE7\u0000\u9AE9\u9AEA\u9AEB\u0000"+
-            "\u9AED\u9AEE\u9AEF\u9AF0\u0000\u0000\u9AF3\u9AF4"+
-            "\u9AF5\u0000\u9AF7\u9AF8\u9AF9\u9AFA\u0000\u0000"+
-            "\u9AFD\u9AFE\u9B40\u9B41\u9B42\u9B43\u9B44\u9B45"+
-            "\u0000\u9B47\u9B48\u0000\u0000\u9B4B\u0000\u0000"+
-            "\u9B4E\u9B4F\u9B50\u9B51\u9B52\u9B53\u0000\u9B55"+
-            "\u9B56\u9B57\u0000\u9B59\u0000\u9B5B\u0000\u9B5D"+
-            "\u0000\u0000\u9B60\u0000\u9B62\u9B63\u9B64\u9B65"+
-            "\u9B66\u9B67\u9B68\u9B69\u9B6A\u9B6B\u9B6C\u9B6D"+
-            "\u9B6E\u9B6F\u0000\u0000\u0000\u9B73\u9B74\u9B75"+
-            "\u0000\u9B77\u0000\u9B79\u9B7A\u0000\u9B7C\u0000"+
-            "\u0000\u0000\u9BA2\u9BA3\u9BA4\u9BA5\u9BA6\u9BA7"+
-            "\u9BA8\u0000\u0000\u9BAB\u9BAC\u9BAD\u9BAE\u9BAF"+
-            "\u9BB0\u9BB1\u9BB2\u9BB3\u0000\u9BB5\u0000\u9BB7"+
-            "\u0000\u9BB9\u9BBA\u9BBB\u0000\u9BBD\u0000\u9BBF"+
-            "\u9BC0\u9BC1\u0000\u9BC3\u0000\u9BC5\u0000\u9BC7"+
-            "\u9BC8\u9BC9\u0000\u9BCB\u9BCC\u0000\u9BCE\u9BCF"+
-            "\u9BD0\u0000\u9BD2\u0000\u0000\u0000\u9BD6\u9BD7"+
-            "\u9BD8\u9BD9\u0000\u9BDB\u9BDC\u9BDD\u0000\u0000"+
-            "\u9BE0\u9BE1\u9BE2\u0000\u9BE4\u9BE5\u9BE6\u9BE7"+
-            "\u9BE8\u0000\u0000\u9BEB\u0000\u9BED\u0000\u9BEF"+
-            "\u9BF0\u9BF1\u9BF2\u9BF3\u0000\u0000\u0000\u9BF7"+
-            "\u9BF8\u0000\u9BFA\u9BFB\u0000\u9BFD\u9BFE\u0000"+
-            "\u9C41\u0000\u9C43\u9C44\u0000\u9C46\u9C47\u9C48"+
-            "\u9C49\u0000\u9C4B\u9C4C\u9C4D\u0000\u9C4F\u0000"+
-            "\u0000\u9C52\u0000\u0000\u9C55\u9C56\u0000\u9C58"+
-            "\u0000\u0000\u9C5B\u0000\u0000\u9C5E\u9C5F\u9C60"+
-            "\u9C61\u0000\u9C63\u0000\u9C65\u9C66\u9C67\u0000"+
-            "\u9C69\u0000\u0000\u9C6C\u0000\u9C6E\u0000\u9C70"+
-            "\u9C71\u0000\u9C73\u9C74\u0000\u9C76\u0000\u9C78"+
-            "\u0000\u9C7A\u0000\u0000\u9C7D\u0000\u0000\u9CA2"+
-            "\u9CA3\u9CA4\u0000\u9CA6\u9CA7\u0000\u9CA9\u9CAA"+
-            "\u0000\u9CAC\u9CAD\u0000\u0000\u9CB0\u9CB1\u0000"+
-            "\u0000\u9CB4\u9CB5\u9CB6\u0000\u9CB8\u9CB9\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9CC0\u9CC1\u0000"+
-            "\u9CC3\u9CC4\u0000\u0000\u9CC7\u0000\u9CC9\u9CCA"+
-            "\u9CCB\u0000\u0000\u9CCE\u9CCF\u0000\u0000\u9CD2"+
-            "\u9CD3\u9CD4\u9CD5\u9CD6\u9CD7\u9CD8\u0000\u0000"+
-            "\u9CDB\u0000\u9CDD\u0000\u9CDF\u0000\u9CE1\u0000"+
-            "\u0000\u0000\u9CE5\u9CE6\u9CE7\u9CE8\u9CE9\u9CEA"+
-            "\u0000\u9CEC\u9CED\u0000\u0000\u9CF0\u0000\u9CF2"+
-            "\u0000\u0000\u0000\u9CF6\u9CF7\u0000\u0000\u9CFA"+
-            "\u9CFB\u9CFC\u9CFD\u9CFE\u9D40\u9D41\u9D42\u9D43"+
-            "\u9D44\u9D45\u0000\u9D47\u9D48\u0000\u0000\u9D4B"+
-            "\u0000\u0000\u9D4E\u0000\u9D50\u0000\u9D52\u9D53"+
-            "\u9D54\u0000\u9D56\u0000\u9D58\u9D59\u0000\u9D5B"+
-            "\u9D5C\u0000\u9D5E\u9D5F\u0000\u0000\u0000\u9D63"+
-            "\u9D64\u9D65\u9D66\u9D67\u9D68\u9D69\u9D6A\u9D6B"+
-            "\u9D6C\u9D6D\u9D6E\u9D6F\u0000\u9D71\u9D72\u0000"+
-            "\u0000\u9D75\u0000\u9D77\u0000\u0000\u9D7A\u0000"+
-            "\u9D7C\u0000\u0000\u0000\u9DA2\u0000\u9DA4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9DAB\u9DAC\u0000"+
-            "\u0000\u9DAF\u9DB0\u9DB1\u9DB2\u9DB3\u9DB4\u0000"+
-            "\u9DB6\u9DB7\u9DB8\u9DB9\u0000\u9DBB\u9DBC\u0000"+
-            "\u9DBE\u0000\u0000\u9DC1\u9DC2\u0000\u0000\u9DC5"+
-            "\u9DC6\u0000\u0000\u9DC9\u0000\u9DCB\u0000\u9DCD"+
-            "\u0000\u0000\u0000\u0000\u9DD2\u0000\u9DD4\u0000"+
-            "\u0000\u9DD7\u9DD8\u9DD9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9DED"+
-            "\u0000\u0000\u0000\u0000\u9DF2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9DF9\u9DFA\u0000\u9DFC\u9DFD"+
-            "\u9DFE\u9E40\u0000\u0000\u0000\u9E44\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9E4F\u0000\u9E51\u0000\u0000\u9E54\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9E5B\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9E63\u0000\u0000\u9E66"+
-            "\u0000\u0000\u9E69\u0000\u9E6B\u9E6C\u9E6D\u9E6E"+
-            "\u9E6F\u9E70\u0000\u9E72\u0000\u9E74\u9E75\u9E76"+
-            "\u9E77\u0000\u9E79\u0000\u9E7B\u9E7C\u9E7D\u0000"+
-            "\u0000\u0000\u9EA3\u0000\u9EA5\u9EA6\u9EA7\u9EA8"+
-            "\u0000\u9EAA\u9EAB\u0000\u9EAD\u9EAE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9EBC\u0000\u9EBE\u0000\u0000"+
-            "\u0000\u9EC2\u9EC3\u0000\u0000\u9EC6\u0000\u9EC8"+
-            "\u0000\u0000\u9ECB\u9ECC\u0000\u9ECE\u9ECF\u9ED0"+
-            "\u0000\u9ED2\u9ED3\u9ED4\u9ED5\u0000\u0000\u9ED8"+
-            "\u9ED9\u0000\u0000\u0000\u0000\u0000\u0000\u9EE0"+
-            "\u0000\u0000\u9EE3\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9EEC\u0000\u0000\u0000\u0000"+
-            "\u0000\u9EF2\u9EF3\u0000\u0000\u9EF6\u0000\u9EF8"+
-            "\u9EF9\u0000\u9EFB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9F43\u0000\u0000\u9F46\u9F47\u9F48\u0000"+
-            "\u9F4A\u9F4B\u9F4C\u9F4D\u0000\u0000\u9F50\u0000"+
-            "\u0000\u9F53\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9F68\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9FAA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FB3"+
-            "\u0000\u9FB5\u0000\u0000\u0000\u0000\u0000\u9FBB"+
-            "\u0000\u0000\u9FBE\u9FBF\u0000\u9FC1\u0000\u0000"+
-            "\u0000\u9FC5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9FD1\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9FEC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FF5\u0000\u0000\u0000\u9FF9\u0000\u0000"+
-            "\u0000\u0000\u0000\uA040\u0000\u0000\u0000\u0000"+
-            "\uA045\u0000\uA047\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA04F\u0000\u0000\u0000\u0000\u0000"+
-            "\uA055\uA056\u0000\u0000\uA059\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uA06D\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA07B\u0000"+
-            "\u0000\u0000\u0000\uA0A2\u0000\uA0A4\u0000\u0000"+
-            "\uA0A7\u0000\u0000\u0000\uA0AB\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0B1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA0BD\u0000"+
-            "\u0000\u0000\u0000\u0000\uA0C3\u0000\uA0C5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0D8\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\uA0E3\u0000\u0000\u0000"+
-            "\u0000\u0000\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED\uA0EE"+
-            "\uA0EF\uA0F0\uA0F1\u0000\uA0F3\uA0F4\uA0F5\uA0F6"+
-            "\uA0F7\uA0F8\u0000\u0000\uA0FB\u0000\u0000\uA0FE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8840\u8841\u8842\u8843\u8844"+
-            "\u8845\u8846\u8847\u8848\u8849\u884A\u884B\u884C"+
-            "\u884D\u884E\u884F\u8850\u8851\u8852\u8853\u8854"+
-            "\u8855\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8862\u0000\u8864"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u88A3\u0000\u88A5\u0000"+
-            "\u0000\u0000\u88A9\u88AA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8940\u8941\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u894C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u89B2\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u89BB\u89BC\u0000\u89BE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u89CA\u89CB\u89CC\u89CD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8A40\u0000\u0000"+
-            "\u8A43\u8A44\u8A45\u0000\u8A47\u0000\u8A49\u0000"+
-            "\u8A4B\u8A4C\u0000\u8A4E\u0000\u8A50\u0000\u0000"+
-            "\u8A53\u8A54\u8A55\u0000\u8A57\u8A58\u8A59\u8A5A"+
-            "\u0000\u0000\u8A5D\u8A5E\u8A5F\u8A60\u8A61\u8A62"+
-            "\u0000\u8A64\u8A65\u8A66\u0000\u8A68\u8A69\u0000"+
-            "\u0000\u8A6C\u0000\u0000\u8A6F\u8A70\u8A71\u8A72"+
-            "\u0000\u0000\u0000\u0000\u8A77\u0000\u0000\u8A7A"+
-            "\u8A7B\u8A7C\u0000\u8A7E\u8AA1\u8AA2\u8AA3\u0000"+
-            "\u8AA5\u8AA6\u0000\u8AA8\u8AA9\u8AAA\u0000\u0000"+
-            "\u8AAD\u0000\u0000\u8AB0\u0000\u8AB2\u8AB3\u8AB4"+
-            "\u8AB5\u8AB6\u0000\u0000\u0000\u0000\u0000\u8ABC"+
-            "\u8ABD\u0000\u0000\u8AC0\u0000\u0000\u8AC3\u0000"+
-            "\u0000\u0000\u0000\u0000\u8AC9\u8ACA\u8ACB\u8ACC"+
-            "\u0000\u8ACE\u8ACF\u0000\u0000\u8AD2\u0000\u8AD4"+
-            "\u8AD5\u0000\u8AD7\u8AD8\u8AD9\u0000\u0000\u8ADC"+
-            "\u0000\u0000\u8ADF\u8AE0\u8AE1\u8AE2\u8AE3\u8AE4"+
-            "\u8AE5\u8AE6\u0000\u8AE8\u8AE9\u8AEA\u0000\u8AEC"+
-            "\u8AED\u8AEE\u8AEF\u0000\u8AF1\u8AF2\u8AF3\u8AF4"+
-            "\u0000\u8AF6\u8AF7\u8AF8\u8AF9\u8AFA\u0000\u8AFC"+
-            "\u0000\u8AFE\u8B40\u8B41\u8B42\u8B43\u8B44\u8B45"+
-            "\u8B46\u0000\u8B48\u8B49\u8B4A\u8B4B\u8B4C\u8B4D"+
-            "\u8B4E\u8B4F\u0000\u0000\u0000\u0000\u0000\u8B55"+
-            "\u0000\u0000\u8B58\u8B59\u0000\u0000\u0000\u0000"+
-            "\u8B5E\u0000\u0000\u0000\u8B62\u0000\u8B64\u8B65"+
-            "\u8B66\u8B67\u0000\u8B69\u0000\u8B6B\u0000\u8B6D"+
-            "\u8B6E\u8B6F\u8B70\u8B71\u8B72\u8B73\u8B74\u8B75"+
-            "\u8B76\u8B77\u0000\u8B79\u8B7A\u8B7B\u8B7C\u0000"+
-            "\u8B7E\u8BA1\u8BA2\u8BA3\u8BA4\u8BA5\u0000\u8BA7"+
-            "\u8BA8\u8BA9\u8BAA\u8BAB\u8BAC\u8BAD\u8BAE\u0000"+
-            "\u0000\u0000\u8BB2\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8BBB\u8BBC\u0000\u0000\u0000"+
-            "\u0000\u0000\u8BC2\u8BC3\u0000\u8BC5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8BD6\u0000"+
-            "\u0000\u0000\u0000\u8BDB\u0000\u0000\u8BDE\u0000"+
-            "\u0000\u8BE1\u8BE2\u0000\u0000\u0000\u8BE6\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8BED\u0000\u0000"+
-            "\u0000\u0000\u0000\u8BF3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8BFA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8C42\u8C43\u0000\u0000\u8C46\u0000\u0000"+
-            "\u0000\u8C4A\u0000\u8C4C\u0000\u8C4E\u0000\u0000"+
-            "\u0000\u0000\u0000\u8C54\u8C55\u0000\u8C57\u0000"+
-            "\u0000\u0000\u0000\u8C5C\u0000\u0000\u8C5F\u0000"+
-            "\u0000\u0000\u0000\u8C64\u8C65\u0000\u0000\u0000"+
-            "\u8C69\u0000\u0000\u8C6C\u8C6D\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8C74\u0000\u0000\u0000\u0000"+
-            "\u8C79\u0000\u0000\u0000\u8C7D\u0000\u8CA1\u0000"+
-            "\u0000\u8CA4\u0000\u0000\u0000\u8CA8\u0000\u0000"+
-            "\u8CAB\u0000\u0000\u0000\u8CAF\u8CB0\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8CB7\u0000\u8CB9\u0000"+
-            "\u8CBB\u0000\u0000\u0000\u0000\u8CC0\u8CC1\u8CC2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8CCF\u0000\u8CD1\u0000"+
-            "\u8CD3\u0000\u8CD5\u8CD6\u8CD7\u8CD8\u0000\u8CDA"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DE2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8DEC\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DFB\u0000\u0000"+
-            "\u8DFE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC879\uC87A\u0000"+
-            "\uC87C\u0000\uC87E\uC8A1\u0000\uC8A3\uC8A4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8BF8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uC8D0\u0000\u0000\u0000\u0000\uC8CF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uC6E4\u0000\uC6E5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uC8CD\u0000\uC8CE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uF9FE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-        */
-        private final static String innerIndex8=
-            "\u92DD\u0000\u92DF\u0000\u92E1\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u92E9\u0000\u0000\u92EC"+
-            "\u92ED\u92EE\u92EF\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u92F6\u92F7\u92F8\u92F9\u92FA\u0000\u0000"+
-            "\u0000\u92FE\u0000\u9341\u9342\u0000\u0000\u9345"+
-            "\u0000\u9347\u0000\u9349\u0000\u934B\u0000\u0000"+
-            "\u0000\u0000\u9350\u9351\u9352\u0000\u0000\u9355"+
-            "\u9356\u9357\u9358\u9359\u935A\u935B\u0000\u935D"+
-            "\u935E\u935F\u9360\u0000\u0000\u9363\u9364\u0000"+
-            "\u9366\u0000\u0000\u9369\u0000\u0000\u936C\u936D"+
-            "\u0000\u936F\u9370\u9371\u9372\u9373\u0000\u9375"+
-            "\u9376\u9377\u0000\u0000\u0000\u937B\u937C\u937D"+
-            "\u937E\u0000\u93A2\u93A3\u93A4\u93A5\u93A6\u93A7"+
-            "\u93A8\u0000\u93AA\u0000\u0000\u0000\u93AE\u93AF"+
-            "\u0000\u93B1\u0000\u0000\u0000\u93B5\u93B6\u93B7"+
-            "\u93B8\u93B9\u0000\u93BB\u93BC\u93BD\u0000\u93BF"+
-            "\u93C0\u93C1\u93C2\u93C3\u93C4\u93C5\u93C6\u93C7"+
-            "\u93C8\u0000\u93CA\u93CB\u93CC\u93CD\u93CE\u93CF"+
-            "\u93D0\u0000\u93D2\u0000\u93D4\u0000\u93D6\u93D7"+
-            "\u0000\u93D9\u93DA\u0000\u93DC\u93DD\u93DE\u93DF"+
-            "\u93E0\u93E1\u93E2\u0000\u93E4\u0000\u93E6\u0000"+
-            "\u0000\u93E9\u0000\u93EB\u93EC\u93ED\u0000\u0000"+
-            "\u0000\u0000\u93F2\u0000\u0000\u0000\u93F6\u0000"+
-            "\u0000\u93F9\u93FA\u0000\u0000\u93FD\u93FE\u0000"+
-            "\u9441\u9442\u0000\u0000\u0000\u9446\u0000\u9448"+
-            "\u9449\u0000\u944B\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9452\u9453\u0000\u0000\u0000\u0000\u9458"+
-            "\u9459\u0000\u945B\u945C\u0000\u945E\u945F\u9460"+
-            "\u9461\u9462\u9463\u9464\u9465\u9466\u9467\u0000"+
-            "\u9469\u0000\u0000\u0000\u0000\u946E\u946F\u9470"+
-            "\u0000\u9472\u9473\u9474\u9475\u0000\u0000\u9478"+
-            "\u9479\u0000\u947B\u947C\u947D\u947E\u94A1\u94A2"+
-            "\u94A3\u94A4\u94A5\u0000\u0000\u0000\u94A9\u94AA"+
-            "\u0000\u94AC\u94AD\u0000\u94AF\u0000\u0000\u0000"+
-            "\u94B3\u94B4\u94B5\u94B6\u0000\u0000\u94B9\u94BA"+
-            "\u94BB\u94BC\u94BD\u94BE\u0000\u94C0\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u94C7\u94C8\u94C9\u0000"+
-            "\u0000\u0000\u0000\u94CE\u0000\u0000\u94D1\u94D2"+
-            "\u94D3\u0000\u0000\u94D6\u94D7\u94D8\u94D9\u94DA"+
-            "\u94DB\u0000\u94DD\u94DE\u94DF\u94E0\u0000\u0000"+
-            "\u94E3\u94E4\u94E5\u0000\u94E7\u0000\u0000\u94EA"+
-            "\u0000\u94EC\u0000\u0000\u94EF\u94F0\u94F1\u94F2"+
-            "\u0000\u94F4\u94F5\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u94FE\u9540\u9541\u0000\u9543"+
-            "\u9544\u9545\u9546\u0000\u9548\u9549\u0000\u954B"+
-            "\u954C\u954D\u0000\u0000\u9550\u9551\u9552\u0000"+
-            "\u9554\u0000\u0000\u0000\u0000\u9559\u955A\u955B"+
-            "\u955C\u0000\u955E\u0000\u9560\u9561\u9562\u0000"+
-            "\u9564\u0000\u0000\u0000\u9568\u0000\u956A\u0000"+
-            "\u0000\u956D\u0000\u956F\u0000\u9571\u0000\u9573"+
-            "\u9574\u0000\u9576\u0000\u9578\u0000\u957A\u957B"+
-            "\u0000\u957D\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u95A8\u0000\u95AA\u95AB\u95AC\u95AD"+
-            "\u95AE\u95AF\u95B0\u0000\u95B2\u95B3\u95B4\u0000"+
-            "\u0000\u95B7\u0000\u0000\u95BA\u0000\u0000\u0000"+
-            "\u95BE\u0000\u0000\u0000\u95C2\u0000\u0000\u0000"+
-            "\u95C6\u95C7\u0000\u0000\u95CA\u0000\u0000\u95CD"+
-            "\u0000\u0000\u95D0\u95D1\u0000\u0000\u95D4\u0000"+
-            "\u95D6\u95D7\u0000\u0000\u0000\u95DB\u0000\u0000"+
-            "\u95DE\u95DF\u95E0\u0000\u95E2\u95E3\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u95EA\u0000\u95EC\u95ED"+
-            "\u95EE\u95EF\u95F0\u95F1\u0000\u95F3\u95F4\u95F5"+
-            "\u95F6\u95F7\u95F8\u95F9\u0000\u0000\u95FC\u0000"+
-            "\u95FE\u0000\u9641\u9642\u9643\u0000\u0000\u9646"+
-            "\u9647\u9648\u9649\u0000\u0000\u0000\u964D\u0000"+
-            "\u964F\u0000\u0000\u0000\u9653\u0000\u9655\u9656"+
-            "\u0000\u9658\u0000\u965A\u0000\u965C\u965D\u965E"+
-            "\u965F\u0000\u9661\u9662\u0000\u9664\u0000\u0000"+
-            "\u0000\u9668\u9669\u0000\u966B\u0000\u0000\u966E"+
-            "\u966F\u0000\u0000\u0000\u0000\u9674\u9675\u9676"+
-            "\u0000\u9678\u9679\u0000\u0000\u967C\u0000\u967E"+
-            "\u96A1\u0000\u96A3\u96A4\u0000\u96A6\u0000\u96A8"+
-            "\u0000\u96AA\u96AB\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u96B4\u0000\u96B6\u96B7\u0000"+
-            "\u96B9\u96BA\u0000\u96BC\u0000\u96BE\u96BF\u96C0"+
-            "\u96C1\u0000\u0000\u96C4\u96C5\u96C6\u0000\u96C8"+
-            "\u96C9\u96CA\u96CB\u0000\u0000\u96CE\u96CF\u96D0"+
-            "\u0000\u96D2\u96D3\u96D4\u96D5\u96D6\u0000\u0000"+
-            "\u0000\u96DA\u0000\u0000\u0000\u0000\u96DF\u0000"+
-            "\u96E1\u0000\u0000\u0000\u0000\u96E6\u96E7\u96E8"+
-            "\u96E9\u0000\u0000\u0000\u0000\u0000\u0000\u96F0"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u96F7\u96F8"+
-            "\u0000\u96FA\u96FB\u0000\u96FD\u96FE\u0000\u0000"+
-            "\u0000\u9743\u9744\u9745\u9746\u9747\u0000\u0000"+
-            "\u974A\u974B\u0000\u974D\u974E\u974F\u9750\u9751"+
-            "\u0000\u9753\u9754\u0000\u9756\u9757\u9758\u9759"+
-            "\u975A\u0000\u0000\u975D\u0000\u975F\u9760\u9761"+
-            "\u9762\u0000\u0000\u0000\u9766\u9767\u9768\u9769"+
-            "\u976A\u976B\u976C\u976D\u0000\u976F\u0000\u9771"+
-            "\u0000\u0000\u0000\u9775\u0000\u9777\u9778\u0000"+
-            "\u977A\u977B\u977C\u977D\u0000\u97A1\u97A2\u0000"+
-            "\u97A4\u97A5\u97A6\u0000\u0000\u97A9\u0000\u97AB"+
-            "\u97AC\u97AD\u97AE\u0000\u97B0\u97B1\u97B2\u0000"+
-            "\u97B4\u97B5\u97B6\u0000\u97B8\u97B9\u97BA\u0000"+
-            "\u0000\u97BD\u97BE\u0000\u97C0\u97C1\u97C2\u97C3"+
-            "\u0000\u97C5\u97C6\u97C7\u0000\u97C9\u97CA\u0000"+
-            "\u97CC\u97CD\u0000\u97CF\u0000\u0000\u97D2\u97D3"+
-            "\u97D4\u0000\u0000\u97D7\u97D8\u0000\u97DA\u97DB"+
-            "\u97DC\u97DD\u97DE\u0000\u0000\u97E1\u0000\u97E3"+
-            "\u97E4\u0000\u0000\u97E7\u97E8\u0000\u97EA\u97EB"+
-            "\u97EC\u97ED\u97EE\u0000\u0000\u97F1\u97F2\u97F3"+
-            "\u97F4\u97F5\u97F6\u97F7\u97F8\u0000\u97FA\u97FB"+
-            "\u0000\u97FD\u97FE\u9840\u9841\u9842\u9843\u0000"+
-            "\u9845\u0000\u9847\u0000\u9849\u984A\u984B\u0000"+
-            "\u0000\u984E\u0000\u0000\u9851\u9852\u9853\u0000"+
-            "\u9855\u9856\u0000\u0000\u0000\u985A\u0000\u0000"+
-            "\u985D\u0000\u985F\u9860\u9861\u9862\u0000\u9864"+
-            "\u9865\u0000\u9867\u0000\u9869\u986A\u986B\u0000"+
-            "\u986D\u986E\u0000\u0000\u9871\u9872\u0000\u9874"+
-            "\u9875\u0000\u0000\u0000\u9879\u0000\u987B\u987C"+
-            "\u0000\u0000\u0000\u98A2\u98A3\u98A4\u0000\u98A6"+
-            "\u98A7\u98A8\u98A9\u98AA\u0000\u98AC\u0000\u0000"+
-            "\u0000\u98B0\u98B1\u0000\u0000\u0000\u0000\u98B6"+
-            "\u0000\u0000\u98B9\u0000\u0000\u98BC\u98BD\u0000"+
-            "\u0000\u98C0\u0000\u0000\u98C3\u0000\u98C5\u0000"+
-            "\u0000\u0000\u0000\u0000\u98CB\u98CC\u98CD\u98CE"+
-            "\u0000\u98D0\u98D1\u0000\u0000\u0000\u0000\u98D6"+
-            "\u0000\u0000\u98D9\u0000\u98DB\u0000\u98DD\u0000"+
-            "\u98DF\u0000\u0000\u0000\u0000\u98E4\u0000\u98E6"+
-            "\u0000\u98E8\u98E9\u0000\u98EB\u98EC\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u98F4\u0000\u0000"+
-            "\u0000\u0000\u0000\u98FA\u0000\u0000\u0000\u98FE"+
-            "\u9940\u0000\u0000\u0000\u0000\u0000\u9946\u0000"+
-            "\u9948\u0000\u0000\u994B\u0000\u0000\u994E\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9955\u9956\u0000"+
-            "\u0000\u9959\u0000\u995B\u0000\u0000\u0000\u995F"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9967"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u996E\u0000"+
-            "\u0000\u0000\u0000\u9973\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u997A\u997B\u0000\u0000\u0000\u99A1"+
-            "\u0000\u0000\u0000\u99A5\u0000\u99A7\u0000\u0000"+
-            "\u0000\u0000\u0000\u99AD\u0000\u0000\u0000\u0000"+
-            "\u0000\u99B3\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u99BC\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u99C3\u0000\u0000\u0000\u99C7\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99CE\u99CF\u0000\u0000"+
-            "\u0000\u0000\u0000\u99D5\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u99DE\u0000\u0000\u99E1"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99E9"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u99F5\u0000\u0000\u99F8\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A48\u9A49\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9A50\u0000\u0000"+
-            "\u0000\u0000\u9A55\u0000\u0000\u9A58\u0000\u9A5A"+
-            "\u0000\u9A5C\u0000\u0000\u0000\u9A60\u0000\u0000"+
-            "\u9A63\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u9A6E\u0000\u9A70\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9A79\u0000"+
-            "\u9A7B\u9A7C\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9AB4"+
-            "\u9AB5\u9AB6\u0000\u0000\u0000\u9ABA\u0000\u0000"+
-            "\u9ABD\u9ABE\u9ABF\u9AC0\u9AC1\u0000\u0000\u9AC4"+
-            "\u9AC5\u9AC6\u0000\u9AC8\u9AC9\u0000\u9ACB\u9ACC"+
-            "\u9ACD\u9ACE\u9ACF\u0000\u9AD1\u0000\u9AD3\u9AD4"+
-            "\u9AD5\u9AD6\u9AD7\u9AD8\u0000\u0000\u0000\u9ADC"+
-            "\u9ADD\u9ADE\u9ADF\u9AE0\u9AE1\u0000\u9AE3\u0000"+
-            "\u9AE5\u9AE6\u9AE7\u0000\u9AE9\u9AEA\u9AEB\u9AEC"+
-            "\u9AED\u9AEE\u9AEF\u9AF0\u0000\u0000\u9AF3\u9AF4"+
-            "\u9AF5\u0000\u9AF7\u9AF8\u9AF9\u9AFA\u0000\u0000"+
-            "\u9AFD\u9AFE\u9B40\u9B41\u9B42\u9B43\u9B44\u9B45"+
-            "\u0000\u9B47\u9B48\u0000\u0000\u9B4B\u0000\u9B4D"+
-            "\u9B4E\u9B4F\u9B50\u9B51\u9B52\u9B53\u0000\u9B55"+
-            "\u9B56\u9B57\u0000\u9B59\u0000\u9B5B\u0000\u9B5D"+
-            "\u0000\u0000\u9B60\u0000\u9B62\u9B63\u9B64\u9B65"+
-            "\u9B66\u9B67\u9B68\u9B69\u9B6A\u9B6B\u9B6C\u9B6D"+
-            "\u9B6E\u9B6F\u0000\u0000\u0000\u9B73\u9B74\u9B75"+
-            "\u0000\u9B77\u0000\u9B79\u9B7A\u0000\u9B7C\u0000"+
-            "\u0000\u0000\u9BA2\u9BA3\u9BA4\u9BA5\u9BA6\u9BA7"+
-            "\u9BA8\u9BA9\u9BAA\u9BAB\u9BAC\u9BAD\u9BAE\u9BAF"+
-            "\u9BB0\u9BB1\u9BB2\u9BB3\u0000\u9BB5\u0000\u9BB7"+
-            "\u9BB8\u9BB9\u9BBA\u9BBB\u0000\u9BBD\u9BBE\u9BBF"+
-            "\u9BC0\u9BC1\u9BC2\u9BC3\u0000\u9BC5\u0000\u9BC7"+
-            "\u9BC8\u9BC9\u0000\u9BCB\u9BCC\u0000\u9BCE\u9BCF"+
-            "\u9BD0\u0000\u9BD2\u0000\u0000\u0000\u9BD6\u9BD7"+
-            "\u9BD8\u9BD9\u0000\u9BDB\u9BDC\u9BDD\u0000\u9BDF"+
-            "\u9BE0\u9BE1\u9BE2\u9BE3\u9BE4\u9BE5\u9BE6\u9BE7"+
-            "\u9BE8\u0000\u9BEA\u9BEB\u0000\u9BED\u9BEE\u9BEF"+
-            "\u9BF0\u9BF1\u9BF2\u9BF3\u0000\u0000\u0000\u9BF7"+
-            "\u9BF8\u0000\u9BFA\u9BFB\u0000\u9BFD\u9BFE\u0000"+
-            "\u9C41\u0000\u9C43\u9C44\u0000\u9C46\u9C47\u9C48"+
-            "\u9C49\u9C4A\u9C4B\u9C4C\u9C4D\u0000\u9C4F\u0000"+
-            "\u0000\u9C52\u0000\u0000\u9C55\u9C56\u0000\u9C58"+
-            "\u0000\u0000\u9C5B\u9C5C\u0000\u9C5E\u9C5F\u9C60"+
-            "\u9C61\u0000\u9C63\u0000\u9C65\u9C66\u9C67\u0000"+
-            "\u9C69\u0000\u0000\u9C6C\u0000\u9C6E\u9C6F\u9C70"+
-            "\u9C71\u0000\u9C73\u9C74\u0000\u9C76\u0000\u9C78"+
-            "\u9C79\u9C7A\u0000\u0000\u9C7D\u0000\u9CA1\u9CA2"+
-            "\u9CA3\u9CA4\u9CA5\u9CA6\u9CA7\u0000\u9CA9\u9CAA"+
-            "\u0000\u9CAC\u9CAD\u0000\u0000\u9CB0\u9CB1\u0000"+
-            "\u0000\u9CB4\u9CB5\u9CB6\u0000\u9CB8\u9CB9\u9CBA"+
-            "\u9CBB\u0000\u0000\u9CBE\u0000\u9CC0\u9CC1\u0000"+
-            "\u9CC3\u9CC4\u0000\u9CC6\u9CC7\u9CC8\u9CC9\u9CCA"+
-            "\u9CCB\u0000\u0000\u9CCE\u9CCF\u0000\u9CD1\u9CD2"+
-            "\u9CD3\u9CD4\u9CD5\u9CD6\u9CD7\u9CD8\u0000\u0000"+
-            "\u9CDB\u0000\u9CDD\u0000\u9CDF\u0000\u9CE1\u0000"+
-            "\u0000\u0000\u9CE5\u9CE6\u9CE7\u9CE8\u9CE9\u9CEA"+
-            "\u0000\u9CEC\u9CED\u0000\u0000\u9CF0\u0000\u9CF2"+
-            "\u0000\u0000\u0000\u9CF6\u9CF7\u9CF8\u0000\u9CFA"+
-            "\u9CFB\u9CFC\u9CFD\u9CFE\u9D40\u9D41\u9D42\u9D43"+
-            "\u9D44\u9D45\u9D46\u9D47\u9D48\u9D49\u0000\u9D4B"+
-            "\u0000\u0000\u9D4E\u9D4F\u9D50\u9D51\u9D52\u9D53"+
-            "\u9D54\u0000\u9D56\u0000\u9D58\u9D59\u0000\u9D5B"+
-            "\u9D5C\u9D5D\u9D5E\u9D5F\u0000\u0000\u0000\u9D63"+
-            "\u9D64\u9D65\u9D66\u9D67\u9D68\u9D69\u9D6A\u9D6B"+
-            "\u9D6C\u9D6D\u9D6E\u9D6F\u0000\u9D71\u9D72\u9D73"+
-            "\u0000\u9D75\u0000\u9D77\u9D78\u0000\u9D7A\u9D7B"+
-            "\u9D7C\u0000\u0000\u0000\u9DA2\u0000\u9DA4\u9DA5"+
-            "\u0000\u0000\u0000\u0000\u9DAA\u9DAB\u9DAC\u9DAD"+
-            "\u0000\u9DAF\u9DB0\u9DB1\u9DB2\u9DB3\u9DB4\u9DB5"+
-            "\u9DB6\u9DB7\u9DB8\u9DB9\u0000\u9DBB\u9DBC\u0000"+
-            "\u9DBE\u0000\u0000\u9DC1\u9DC2\u0000\u0000\u9DC5"+
-            "\u9DC6\u0000\u0000\u9DC9\u0000\u9DCB\u9DCC\u9DCD"+
-            "\u9DCE\u0000\u0000\u0000\u9DD2\u0000\u9DD4\u0000"+
-            "\u0000\u9DD7\u9DD8\u9DD9\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9DED"+
-            "\u9DEE\u0000\u0000\u0000\u9DF2\u9DF3\u0000\u0000"+
-            "\u0000\u0000\u0000\u9DF9\u9DFA\u0000\u9DFC\u9DFD"+
-            "\u9DFE\u9E40\u0000\u0000\u0000\u9E44\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9E4F\u0000\u9E51\u0000\u9E53\u9E54\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9E5B\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u9E63\u9E64\u0000\u9E66"+
-            "\u0000\u0000\u9E69\u0000\u9E6B\u9E6C\u9E6D\u9E6E"+
-            "\u9E6F\u9E70\u0000\u9E72\u0000\u9E74\u9E75\u9E76"+
-            "\u9E77\u0000\u9E79\u9E7A\u9E7B\u9E7C\u9E7D\u9E7E"+
-            "\u0000\u0000\u9EA3\u9EA4\u9EA5\u9EA6\u9EA7\u9EA8"+
-            "\u0000\u9EAA\u9EAB\u0000\u9EAD\u9EAE\u0000\u0000"+
-            "\u0000\u0000\u0000\u9EB4\u0000\u0000\u0000\u9EB8"+
-            "\u9EB9\u0000\u9EBB\u9EBC\u0000\u9EBE\u0000\u0000"+
-            "\u0000\u9EC2\u9EC3\u0000\u9EC5\u9EC6\u0000\u9EC8"+
-            "\u9EC9\u0000\u9ECB\u9ECC\u9ECD\u9ECE\u9ECF\u9ED0"+
-            "\u0000\u9ED2\u9ED3\u9ED4\u9ED5\u0000\u0000\u9ED8"+
-            "\u9ED9\u9EDA\u0000\u0000\u9EDD\u9EDE\u9EDF\u9EE0"+
-            "\u0000\u0000\u9EE3\u0000\u9EE5\u0000\u9EE7\u0000"+
-            "\u0000\u0000\u0000\u9EEC\u0000\u9EEE\u0000\u9EF0"+
-            "\u0000\u9EF2\u9EF3\u0000\u0000\u9EF6\u0000\u9EF8"+
-            "\u9EF9\u0000\u9EFB\u9EFC\u0000\u0000\u0000\u0000"+
-            "\u0000\u9F43\u0000\u0000\u9F46\u9F47\u9F48\u0000"+
-            "\u9F4A\u9F4B\u9F4C\u9F4D\u0000\u0000\u9F50\u0000"+
-            "\u0000\u9F53\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9F68\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u9F70\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FA5\u0000\u0000\u0000\u0000\u9FAA\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FB3"+
-            "\u0000\u9FB5\u0000\u0000\u0000\u0000\u0000\u9FBB"+
-            "\u0000\u0000\u9FBE\u9FBF\u0000\u9FC1\u0000\u0000"+
-            "\u0000\u9FC5\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u9FD1\u0000\u0000"+
-            "\u0000\u0000\u0000\u9FD7\u0000\u9FD9\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u9FEC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u9FF5\u0000\u0000\u0000\u9FF9\u0000\u0000"+
-            "\u0000\u0000\u0000\uA040\u0000\u0000\u0000\u0000"+
-            "\uA045\u0000\uA047\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uA04F\u0000\u0000\u0000\uA053\u0000"+
-            "\uA055\uA056\u0000\u0000\uA059\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA068\u0000\uA06A\u0000\u0000"+
-            "\uA06D\u0000\uA06F\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uA078\u0000\u0000\uA07B\u0000"+
-            "\u0000\uA07E\u0000\uA0A2\u0000\uA0A4\u0000\u0000"+
-            "\uA0A7\u0000\u0000\u0000\uA0AB\uA0AC\u0000\u0000"+
-            "\u0000\u0000\uA0B1\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\uA0BD\u0000"+
-            "\u0000\u0000\u0000\u0000\uA0C3\u0000\uA0C5\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0D0\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\uA0D8\u0000\uA0DA\u0000\u0000\u0000\uA0DE"+
-            "\u0000\u0000\u0000\u0000\uA0E3\u0000\u0000\uA0E6"+
-            "\u0000\uA0E8\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED\uA0EE"+
-            "\uA0EF\uA0F0\uA0F1\u0000\uA0F3\uA0F4\uA0F5\uA0F6"+
-            "\uA0F7\uA0F8\uA0F9\u0000\uA0FB\u0000\u0000\uA0FE"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8840\u8841\u8842\u8843\u8844"+
-            "\u8845\u8846\u8847\u8848\u8849\u884A\u884B\u884C"+
-            "\u884D\u884E\u884F\u8850\u8851\u8852\u8853\u8854"+
-            "\u8855\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8862\u0000\u8864"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u88A3\u0000\u88A5\u0000"+
-            "\u0000\u0000\u88A9\u88AA\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8940\u8941\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u894C\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u89B2\u0000\u0000\u0000\u0000\u89B7\u0000\u0000"+
-            "\u89BA\u89BB\u89BC\u0000\u89BE\u89BF\u0000\u0000"+
-            "\u0000\u0000\u0000\u89C5\u0000\u0000\u0000\u0000"+
-            "\u89CA\u89CB\u89CC\u89CD\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u89D5\u0000\u89D7\u0000\u0000"+
-            "\u89DA\u89DB\u89DC\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u89E6\u0000\u89E8\u0000"+
-            "\u89EA\u0000\u0000\u89ED\u89EE\u89EF\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89F9"+
-            "\u0000\u89FB\u89FC\u0000\u89FE\u8A40\u0000\u0000"+
-            "\u8A43\u8A44\u8A45\u0000\u8A47\u8A48\u8A49\u0000"+
-            "\u8A4B\u8A4C\u8A4D\u8A4E\u0000\u8A50\u8A51\u8A52"+
-            "\u8A53\u8A54\u8A55\u0000\u8A57\u8A58\u8A59\u8A5A"+
-            "\u0000\u0000\u8A5D\u8A5E\u8A5F\u8A60\u8A61\u8A62"+
-            "\u0000\u8A64\u8A65\u8A66\u8A67\u8A68\u8A69\u0000"+
-            "\u8A6B\u8A6C\u8A6D\u8A6E\u8A6F\u8A70\u8A71\u8A72"+
-            "\u0000\u0000\u0000\u8A76\u8A77\u0000\u0000\u8A7A"+
-            "\u8A7B\u8A7C\u8A7D\u8A7E\u8AA1\u8AA2\u8AA3\u0000"+
-            "\u8AA5\u8AA6\u0000\u8AA8\u8AA9\u8AAA\u0000\u8AAC"+
-            "\u8AAD\u8AAE\u0000\u8AB0\u0000\u8AB2\u8AB3\u8AB4"+
-            "\u8AB5\u8AB6\u0000\u8AB8\u8AB9\u0000\u8ABB\u8ABC"+
-            "\u8ABD\u0000\u0000\u8AC0\u0000\u8AC2\u8AC3\u0000"+
-            "\u0000\u0000\u8AC7\u0000\u8AC9\u8ACA\u8ACB\u8ACC"+
-            "\u0000\u8ACE\u8ACF\u8AD0\u8AD1\u8AD2\u8AD3\u8AD4"+
-            "\u8AD5\u0000\u8AD7\u8AD8\u8AD9\u8ADA\u0000\u8ADC"+
-            "\u0000\u0000\u8ADF\u8AE0\u8AE1\u8AE2\u8AE3\u8AE4"+
-            "\u8AE5\u8AE6\u0000\u8AE8\u8AE9\u8AEA\u8AEB\u8AEC"+
-            "\u8AED\u8AEE\u8AEF\u8AF0\u8AF1\u8AF2\u8AF3\u8AF4"+
-            "\u0000\u8AF6\u8AF7\u8AF8\u8AF9\u8AFA\u8AFB\u8AFC"+
-            "\u0000\u8AFE\u8B40\u8B41\u8B42\u8B43\u8B44\u8B45"+
-            "\u8B46\u8B47\u8B48\u8B49\u8B4A\u8B4B\u8B4C\u8B4D"+
-            "\u8B4E\u8B4F\u0000\u0000\u0000\u0000\u0000\u8B55"+
-            "\u0000\u0000\u8B58\u8B59\u0000\u0000\u0000\u0000"+
-            "\u8B5E\u0000\u8B60\u0000\u8B62\u0000\u8B64\u8B65"+
-            "\u8B66\u8B67\u8B68\u8B69\u8B6A\u8B6B\u0000\u8B6D"+
-            "\u8B6E\u8B6F\u8B70\u8B71\u8B72\u8B73\u8B74\u8B75"+
-            "\u8B76\u8B77\u0000\u8B79\u8B7A\u8B7B\u8B7C\u0000"+
-            "\u8B7E\u8BA1\u8BA2\u8BA3\u8BA4\u8BA5\u8BA6\u8BA7"+
-            "\u8BA8\u8BA9\u8BAA\u8BAB\u8BAC\u8BAD\u8BAE\u0000"+
-            "\u0000\u8BB1\u8BB2\u0000\u0000\u8BB5\u8BB6\u0000"+
-            "\u8BB8\u0000\u0000\u8BBB\u8BBC\u0000\u8BBE\u0000"+
-            "\u0000\u0000\u8BC2\u8BC3\u0000\u8BC5\u0000\u0000"+
-            "\u8BC8\u0000\u0000\u0000\u8BCC\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u8BD6\u0000"+
-            "\u0000\u0000\u0000\u8BDB\u8BDC\u0000\u8BDE\u0000"+
-            "\u0000\u8BE1\u8BE2\u0000\u0000\u0000\u8BE6\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8BED\u0000\u0000"+
-            "\u0000\u0000\u0000\u8BF3\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u8BFA\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u8C42\u8C43\u0000\u0000\u8C46\u0000\u0000"+
-            "\u0000\u8C4A\u0000\u8C4C\u0000\u8C4E\u0000\u0000"+
-            "\u0000\u0000\u0000\u8C54\u8C55\u0000\u8C57\u0000"+
-            "\u0000\u0000\u0000\u8C5C\u0000\u0000\u8C5F\u0000"+
-            "\u0000\u0000\u0000\u8C64\u8C65\u0000\u0000\u0000"+
-            "\u8C69\u0000\u0000\u8C6C\u8C6D\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u8C74\u0000\u0000\u0000\u0000"+
-            "\u8C79\u0000\u0000\u0000\u8C7D\u0000\u8CA1\u0000"+
-            "\u0000\u8CA4\u0000\u0000\u0000\u8CA8\u0000\u0000"+
-            "\u8CAB\u0000\u0000\u0000\u8CAF\u8CB0\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8CB7\u0000\u8CB9\u0000"+
-            "\u8CBB\u0000\u0000\u0000\u0000\u8CC0\u8CC1\u8CC2"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8CCF\u0000\u8CD1\u0000"+
-            "\u8CD3\u0000\u8CD5\u8CD6\u8CD7\u8CD8\u0000\u8CDA"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D63"+
-            "\u8D64\u0000\u0000\u8D67\u8D68\u0000\u0000\u0000"+
-            "\u0000\u8D6D\u8D6E\u8D6F\u8D70\u0000\u0000\u0000"+
-            "\u8D74\u0000\u0000\u0000\u8D78\u0000\u0000\u0000"+
-            "\u0000\u8D7D\u0000\u8DA1\u0000\u0000\u0000\u0000"+
-            "\u8DA6\u0000\u0000\u0000\u0000\u8DAB\u0000\u8DAD"+
-            "\u0000\u0000\u8DB0\u0000\u8DB2\u0000\u8DB4\u0000"+
-            "\u0000\u8DB7\u0000\u0000\u8DBA\u8DBB\u8DBC\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DC3\u0000\u8DC5"+
-            "\u0000\u0000\u0000\u0000\u8DCA\u0000\u8DCC\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u8DD6\u0000\u0000\u0000\u0000\u8DDB\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u8DE2\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DEB\u8DEC\u0000"+
-            "\u0000\u8DEF\u8DF0\u0000\u0000\u8DF3\u0000\u8DF5"+
-            "\u0000\u0000\u0000\u0000\u0000\u8DFB\u8DFC\u8DFD"+
-            "\u8DFE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC6CD\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uC879\uC87A\u0000"+
-            "\uC87C\u0000\uC87E\uC8A1\u0000\uC8A3\uC8A4\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8BF8"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\uC8D6\uC8D7\uC8D8\uC8D9\uC8DA\uC8DB\uC8DC\uC8DD"+
-            "\uC8DE\uC8DF\uC8E0\uC8E1\uC8E2\uC8E3\uC8E4\uC8E5"+
-            "\uC8E6\uC8E7\uC8E8\uC8E9\uC8EA\uC8EB\uC8EC\uC8ED"+
-            "\uC8EE\uC8EF\uC8F0\uC8F1\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uC8D0\u0000\u0000\u0000\u0000\uC8CF"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\uC6E4\u0000\uC6E5\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\uC8CD\u0000\uC8CE\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\uF9FE\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
-            "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
-        private final static short index1[] = {
-            1, 2, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0,
-            0, 6, 0, 0, 7, 8, 0, 9, 0, 0, 0, 0, 0, 0, 10, 11,
-            12, 0, 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
-            26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
-            42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
-            58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
-            74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
-            90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
-            106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 0,
-            0, 0, 0, 137, 138, 139, 140, 141, 142, 142, 0, 0, 0, 0, 0, 143
-        };
-
-        static String index2[] = {
-            innerIndex0,
-            innerIndex1,
-            innerIndex2,
-            innerIndex3,
-            innerIndex4,
-            innerIndex5,
-            innerIndex6,
-            innerIndex7,
-            innerIndex8
-        };
-
-        String unicodeSearchTab =
-            "\ud840\udc21\ud840\udc3e\ud840\udc46\ud840\udc4e" +
-            "\ud840\udc68\ud840\udc86\ud840\udc87\ud840\udc8a" +
-            "\ud840\udc94\ud840\udcca\ud840\udccb\ud840\udccc" +
-            "\ud840\udccd\ud840\udcd1\ud840\udcee\ud840\udd0c" +
-            "\ud840\udd0e\ud840\udd18\ud840\udda9\ud840\uddab" +
-            "\ud840\uddc1\ud840\uddd4\ud840\uddf2\ud840\ude04" +
-            "\ud840\ude0c\ud840\ude14\ud840\ude5b\ud840\ude74" +
-            "\ud840\ude75\ud840\ude99\ud840\ude9e\ud840\udea0" +
-            "\ud840\udeb7\ud840\udebf\ud840\udec0\ud840\udee5" +
-            "\ud840\udf0a\ud840\udf25\ud840\udf41\ud840\udf45" +
-            "\ud840\udf46\ud840\udf47\ud840\udf7e\ud840\udf7f" +
-            "\ud840\udf80\ud840\udfa0\ud840\udfa7\ud840\udfb5" +
-            "\ud840\udfc9\ud840\udfcb\ud840\udff5\ud840\udffc" +
-            "\ud841\udc13\ud841\udc14\ud841\udc1f\ud841\udc65" +
-            "\ud841\udc87\ud841\udc8e\ud841\udc91\ud841\udc92" +
-            "\ud841\udca3\ud841\udcd7\ud841\udcfc\ud841\udcfe" +
-            "\ud841\udd47\ud841\udd8e\ud841\udda5\ud841\uddb3" +
-            "\ud841\uddc3\ud841\uddca\ud841\uddd0\ud841\uddd5" +
-            "\ud841\udddf\ud841\udde0\ud841\uddeb\ud841\ude11" +
-            "\ud841\ude15\ud841\ude19\ud841\ude1a\ud841\ude30" +
-            "\ud841\ude56\ud841\ude76\ud841\udf0e\ud841\udf31" +
-            "\ud841\udf79\ud842\udc2c\ud842\udc73\ud842\udcd5" +
-            "\ud842\udd16\ud842\udd23\ud842\udd54\ud842\udd79" +
-            "\ud842\udde7\ud842\ude11\ud842\ude50\ud842\udeb4" +
-            "\ud842\udec2\ud842\udecd\ud842\udf0d\ud842\udf8f" +
-            "\ud842\udfa8\ud842\udfa9\ud842\udfbf\ud842\udfc6" +
-            "\ud842\udfcb\ud842\udfe2\ud842\udfeb\ud842\udffb" +
-            "\ud842\udfff\ud843\udc0b\ud843\udc0d\ud843\udc20" +
-            "\ud843\udc34\ud843\udc3a\ud843\udc3b\ud843\udc41" +
-            "\ud843\udc42\ud843\udc43\ud843\udc53\ud843\udc65" +
-            "\ud843\udc77\ud843\udc78\ud843\udc7c\ud843\udc8d" +
-            "\ud843\udc96\ud843\udc9c\ud843\udcb5\ud843\udcb8" +
-            "\ud843\udccf\ud843\udcd3\ud843\udcd4\ud843\udcd5" +
-            "\ud843\udcd6\ud843\udcdd\ud843\udced\ud843\udcff" +
-            "\ud843\udd15\ud843\udd28\ud843\udd31\ud843\udd32" +
-            "\ud843\udd46\ud843\udd47\ud843\udd48\ud843\udd49" +
-            "\ud843\udd4c\ud843\udd4d\ud843\udd4e\ud843\udd6f" +
-            "\ud843\udd71\ud843\udd74\ud843\udd7c\ud843\udd7e" +
-            "\ud843\udd7f\ud843\udd96\ud843\udd9c\ud843\udda7" +
-            "\ud843\uddb2\ud843\uddc8\ud843\ude04\ud843\ude09" +
-            "\ud843\ude0a\ud843\ude0d\ud843\ude0e\ud843\ude0f" +
-            "\ud843\ude10\ud843\ude11\ud843\ude16\ud843\ude1d" +
-            "\ud843\ude4c\ud843\ude6d\ud843\ude73\ud843\ude75" +
-            "\ud843\ude76\ud843\ude77\ud843\ude78\ud843\ude79" +
-            "\ud843\ude7a\ud843\ude7b\ud843\ude8c\ud843\ude96" +
-            "\ud843\ude98\ud843\ude9d\ud843\udea2\ud843\udeaa" +
-            "\ud843\udeab\ud843\udeac\ud843\udeb6\ud843\uded7" +
-            "\ud843\uded8\ud843\udedd\ud843\udef8\ud843\udef9" +
-            "\ud843\udefa\ud843\udefb\ud843\udf1d\ud843\udf26" +
-            "\ud843\udf2d\ud843\udf2e\ud843\udf30\ud843\udf31" +
-            "\ud843\udf3b\ud843\udf4c\ud843\udf64\ud843\udf8d" +
-            "\ud843\udf90\ud843\udfad\ud843\udfb4\ud843\udfb5" +
-            "\ud843\udfb6\ud843\udfbc\ud843\udfdf\ud843\udfea" +
-            "\ud843\udfeb\ud843\udfec\ud843\udfed\ud844\udc14" +
-            "\ud844\udc1d\ud844\udc1e\ud844\udc4f\ud844\udc5c" +
-            "\ud844\udc6f\ud844\udc75\ud844\udc76\ud844\udc77" +
-            "\ud844\udc78\ud844\udc7b\ud844\udc88\ud844\udc96" +
-            "\ud844\udc9d\ud844\udcb4\ud844\udcbf\ud844\udcc0" +
-            "\ud844\udcc1\ud844\udcc7\ud844\udcc8\ud844\udcc9" +
-            "\ud844\udccf\ud844\udcd3\ud844\udce4\ud844\udcf4" +
-            "\ud844\udcf5\ud844\udcf6\ud844\udd2f\ud844\udd3b" +
-            "\ud844\udd3d\ud844\udd45\ud844\udd48\ud844\udd4f" +
-            "\ud844\udd80\ud844\udd87\ud844\uddd9\ud844\ude3c" +
-            "\ud844\ude4f\ud844\ude7c\ud844\udea8\ud844\udea9" +
-            "\ud844\udeb0\ud844\udee3\ud844\udefe\ud844\udf02" +
-            "\ud844\udf03\ud844\udf04\ud844\udf05\ud844\udf36" +
-            "\ud844\udf3a\ud844\udf75\ud844\udf76\ud844\udf8e" +
-            "\ud844\udf98\ud844\udf9c\ud844\udfc5\ud844\udfc6" +
-            "\ud844\udfed\ud844\udffe\ud845\udc13\ud845\udc16" +
-            "\ud845\udc24\ud845\udc3f\ud845\udc52\ud845\udc54" +
-            "\ud845\udc55\ud845\udc8a\ud845\udc97\ud845\udcb6" +
-            "\ud845\udce8\ud845\udcfd\ud845\udd77\ud845\udd82" +
-            "\ud845\udd96\ud845\ude0a\ud845\ude13\ud845\ude19" +
-            "\ud845\ude3e\ud845\ude61\ud845\ude92\ud845\udeb8" +
-            "\ud845\udeba\ud845\udec0\ud845\udec1\ud845\udec2" +
-            "\ud845\uded3\ud845\uded5\ud845\udedf\ud845\udee6" +
-            "\ud845\udee7\ud845\udee8\ud845\udefa\ud845\udefb" +
-            "\ud845\udefc\ud845\udefe\ud845\udf0d\ud845\udf10" +
-            "\ud845\udf26\ud845\udf3a\ud845\udf3b\ud845\udf3c" +
-            "\ud845\udf57\ud845\udf6c\ud845\udf6d\ud845\udf6e" +
-            "\ud845\udf6f\ud845\udf70\ud845\udf71\ud845\udf73" +
-            "\ud845\udf74\ud845\udfab\ud845\udfb0\ud845\udfb1" +
-            "\ud845\udfb2\ud845\udfb3\ud845\udfb4\ud845\udfb5" +
-            "\ud845\udfc3\ud845\udfc7\ud845\udfd9\ud845\udfda" +
-            "\ud845\udfdb\ud845\udfdc\ud845\udfdf\ud845\udfef" +
-            "\ud845\udff5\ud845\udff6\ud845\udff8\ud845\udff9" +
-            "\ud845\udffa\ud845\udffb\ud845\udffc\ud846\udc20" +
-            "\ud846\udc28\ud846\udc29\ud846\udc2a\ud846\udc2d" +
-            "\ud846\udc39\ud846\udc3a\ud846\udc3b\ud846\udc40" +
-            "\ud846\udc45\ud846\udc52\ud846\udc5e\ud846\udc61" +
-            "\ud846\udc62\ud846\udc63\ud846\udc64\ud846\udc77" +
-            "\ud846\udc7b\ud846\udc83\ud846\udc84\ud846\udc85" +
-            "\ud846\udc9e\ud846\udc9f\ud846\udca0\ud846\udca1" +
-            "\ud846\udca2\ud846\udcbe\ud846\udcbf\ud846\udcd1" +
-            "\ud846\udcd6\ud846\udcd7\ud846\udcd8\ud846\udcd9" +
-            "\ud846\udcfa\ud846\udd03\ud846\udd04\ud846\udd05" +
-            "\ud846\udd10\ud846\udd11\ud846\udd12\ud846\udd15" +
-            "\ud846\udd1c\ud846\udd22\ud846\udd27\ud846\udd3b" +
-            "\ud846\udd44\ud846\udd58\ud846\udd6a\ud846\udd7c" +
-            "\ud846\udd80\ud846\udd83\ud846\udd88\ud846\udd96" +
-            "\ud846\udddb\ud846\uddf3\ud846\ude2d\ud846\ude34" +
-            "\ud846\ude45\ud846\ude4b\ud846\udf44\ud846\udfc1" +
-            "\ud846\udfc2\ud847\udc2a\ud847\udc70\ud847\udca2" +
-            "\ud847\udca5\ud847\udcac\ud847\udd46\ud847\udd90" +
-            "\ud847\uddb6\ud847\uddba\ud847\uddca\ud847\uddd1" +
-            "\ud847\uddeb\ud847\uddf9\ud847\ude1c\ud847\ude37" +
-            "\ud847\ude3d\ud847\ude89\ud847\udea4\ud847\udea8" +
-            "\ud847\udec8\ud847\uded5\ud847\udf0f\ud847\udf15" +
-            "\ud847\udf6a\ud847\udf9e\ud847\udfa1\ud847\udfe8" +
-            "\ud848\udc45\ud848\udc49\ud848\udc7e\ud848\udc9a" +
-            "\ud848\udcc7\ud848\udcfc\ud848\udd2a\ud848\udd5b" +
-            "\ud848\udd73\ud848\udd7a\ud848\udda1\ud848\uddc3" +
-            "\ud848\ude08\ud848\ude7c\ud848\udf21\ud848\udf25" +
-            "\ud848\udfbd\ud848\udfd0\ud848\udfd7\ud848\udffa" +
-            "\ud849\udc65\ud849\udc71\ud849\udc8b\ud849\udc91" +
-            "\ud849\udcb0\ud849\udced\ud849\udd13\ud849\udd1b" +
-            "\ud849\udd30\ud849\udd54\ud849\udd8d\ud849\uddaf" +
-            "\ud849\uddbe\ud849\ude1b\ud849\ude1c\ud849\ude2b" +
-            "\ud849\ude68\ud849\ude7a\ud849\ude96\ud849\ude98" +
-            "\ud849\udef4\ud849\udef5\ud849\udef6\ud849\udf12" +
-            "\ud849\udf14\ud849\udf1b\ud849\udf1f\ud849\udf2a" +
-            "\ud849\udf75\ud849\udf81\ud849\udfb4\ud849\udfb5" +
-            "\ud849\udfcd\ud84a\udc03\ud84a\udc5f\ud84a\udc60" +
-            "\ud84a\udc71\ud84a\udcad\ud84a\udcc1\ud84a\udcf7" +
-            "\ud84a\udd26\ud84a\udd39\ud84a\udd4f\ud84a\udd67" +
-            "\ud84a\udd6b\ud84a\udd80\ud84a\udd93\ud84a\ude66" +
-            "\ud84a\udecf\ud84a\uded5\ud84a\udee6\ud84a\udee8" +
-            "\ud84a\udf0e\ud84a\udf22\ud84a\udf3f\ud84a\udf43" +
-            "\ud84a\udf6a\ud84a\udfca\ud84a\udfce\ud84b\udc26" +
-            "\ud84b\udc27\ud84b\udc38\ud84b\udc4c\ud84b\udc51" +
-            "\ud84b\udc55\ud84b\udc62\ud84b\udc88\ud84b\udc9b" +
-            "\ud84b\udca1\ud84b\udca9\ud84b\udcb2\ud84b\udcb7" +
-            "\ud84b\udcc2\ud84b\udcc6\ud84b\udcc9\ud84b\udd07" +
-            "\ud84b\udd08\ud84b\udd12\ud84b\udd44\ud84b\udd4c" +
-            "\ud84b\udd67\ud84b\udd8d\ud84b\udd95\ud84b\udda0" +
-            "\ud84b\udda3\ud84b\udda4\ud84b\uddb7\ud84b\uddee" +
-            "\ud84b\ude0d\ud84b\ude36\ud84b\ude42\ud84b\ude78" +
-            "\ud84b\ude8b\ud84b\udeb3\ud84b\udeef\ud84b\udf74" +
-            "\ud84b\udfcc\ud84b\udfe3\ud84c\udc33\ud84c\udc44" +
-            "\ud84c\udc4b\ud84c\udc66\ud84c\udc7d\ud84c\udc7e" +
-            "\ud84c\udc8e\ud84c\udcb7\ud84c\udcbc\ud84c\udcda" +
-            "\ud84c\udd03\ud84c\udd3d\ud84c\udd7d\ud84c\udd82" +
-            "\ud84c\udda4\ud84c\udda5\ud84c\uddb3\ud84c\uddc8" +
-            "\ud84c\uddc9\ud84c\uddf7\ud84c\uddf8\ud84c\uddf9" +
-            "\ud84c\ude0f\ud84c\ude25\ud84c\ude2f\ud84c\ude31" +
-            "\ud84c\ude32\ud84c\ude33\ud84c\ude34\ud84c\ude62" +
-            "\ud84c\ude81\ud84c\ude89\ud84c\ude8a\ud84c\udeab" +
-            "\ud84c\udeac\ud84c\udead\ud84c\uded2\ud84c\udee0" +
-            "\ud84c\udee1\ud84c\udf00\ud84c\udf0a\ud84c\udf1f" +
-            "\ud84c\udfb4\ud84c\udfcc\ud84c\udfde\ud84c\udfe6" +
-            "\ud84c\udff4\ud84c\udff5\ud84c\udff9\ud84c\udffa" +
-            "\ud84c\udffe\ud84d\udc00\ud84d\udc3f\ud84d\udc50" +
-            "\ud84d\udc6f\ud84d\udc72\ud84d\udce5\ud84d\udd19" +
-            "\ud84d\udd30\ud84d\udd5a\ud84d\udd67\ud84d\udd95" +
-            "\ud84d\udd99\ud84d\udd9c\ud84d\uddcd\ud84d\uddce" +
-            "\ud84d\uddcf\ud84d\uddf3\ud84d\ude00\ud84d\ude1a" +
-            "\ud84d\ude3c\ud84d\ude40\ud84d\ude59\ud84d\ude5f" +
-            "\ud84d\ude77\ud84d\udea6\ud84d\udead\ud84d\udeba" +
-            "\ud84d\udedf\ud84d\udeee\ud84d\udf03\ud84d\udf16" +
-            "\ud84d\udf20\ud84d\udf2d\ud84d\udf2f\ud84d\udf3f" +
-            "\ud84d\udf66\ud84d\udf81\ud84d\udfa2\ud84d\udfbc" +
-            "\ud84d\udfc2\ud84d\udfd5\ud84d\udfd6\ud84d\udfd7" +
-            "\ud84e\udc3a\ud84e\uddc2\ud84e\udea7\ud84e\udedb" +
-            "\ud84e\udeee\ud84e\udefa\ud84e\udf5a\ud84f\udc63" +
-            "\ud84f\udc99\ud84f\udc9a\ud84f\udc9b\ud84f\udcb5" +
-            "\ud84f\udcb7\ud84f\udcc7\ud84f\udcc8\ud84f\udcc9" +
-            "\ud84f\udcfc\ud84f\udcfd\ud84f\udcfe\ud84f\udcff" +
-            "\ud84f\udd40\ud84f\udd5b\ud84f\udd7e\ud84f\udd8f" +
-            "\ud84f\uddb6\ud84f\uddb7\ud84f\uddb8\ud84f\uddb9" +
-            "\ud84f\uddba\ud84f\uddbb\ud84f\uddbc\ud84f\uddbd" +
-            "\ud84f\udde3\ud84f\uddf8\ud84f\ude11\ud84f\ude2c" +
-            "\ud84f\ude2d\ud84f\ude2e\ud84f\ude2f\ud84f\ude30" +
-            "\ud84f\ude31\ud84f\ude39\ud84f\ude88\ud84f\ude89" +
-            "\ud84f\ude8a\ud84f\ude8b\ud84f\udeb9\ud84f\udebf" +
-            "\ud84f\uded7\ud84f\udef7\ud84f\udef8\ud84f\udef9" +
-            "\ud84f\udefa\ud84f\udefb\ud84f\udefc\ud84f\udf35" +
-            "\ud84f\udf41\ud84f\udf4a\ud84f\udf7f\ud84f\udf80" +
-            "\ud84f\udf81\ud84f\udf82\ud84f\udf8f\ud84f\udfb4" +
-            "\ud84f\udfb7\ud84f\udfc0\ud84f\udfc5\ud84f\udfeb" +
-            "\ud84f\udfec\ud84f\udfed\ud84f\udfee\ud84f\udfef" +
-            "\ud84f\udff0\ud850\udc11\ud850\udc39\ud850\udc3a" +
-            "\ud850\udc3b\ud850\udc3c\ud850\udc3d\ud850\udc57" +
-            "\ud850\udc85\ud850\udc8b\ud850\udc8c\ud850\udc8d" +
-            "\ud850\udc91\ud850\udcc9\ud850\udce1\ud850\udd04" +
-            "\ud850\udd0f\ud850\udd19\ud850\udd3f\ud850\udd40" +
-            "\ud850\udd44\ud850\udd4e\ud850\udd55\ud850\udd56" +
-            "\ud850\udd57\ud850\udd5c\ud850\udd5f\ud850\udd77" +
-            "\ud850\udd7a\ud850\udda3\ud850\udda4\ud850\udda5" +
-            "\ud850\uddac\ud850\uddb5\ud850\uddcd\ud850\udde2" +
-            "\ud850\uddfc\ud850\ude1b\ud850\ude4b\ud850\ude56" +
-            "\ud850\ude59\ud850\ude76\ud850\ude77\ud850\ude78" +
-            "\ud850\ude84\ud850\ude93\ud850\ude95\ud850\udea5" +
-            "\ud850\udec1\ud850\udec9\ud850\udeca\ud850\udeee" +
-            "\ud850\udefa\ud850\udf0d\ud850\udf1a\ud850\udf34" +
-            "\ud850\udf48\ud850\udf62\ud850\udf63\ud850\udf64" +
-            "\ud850\udf65\ud850\udf8c\ud850\udf96\ud850\udf9c" +
-            "\ud850\udfbd\ud850\udfc1\ud850\udfe9\ud850\udfea" +
-            "\ud850\udff2\ud850\udff8\ud851\udc04\ud851\udc35" +
-            "\ud851\udc36\ud851\udc5a\ud851\udc5b\ud851\udc73" +
-            "\ud851\udc87\ud851\udc88\ud851\udcb9\ud851\udcbc" +
-            "\ud851\udcce\ud851\udcd3\ud851\udcd6\ud851\udd05" +
-            "\ud851\udd21\ud851\udd78\ud851\uddc8\ud851\ude18" +
-            "\ud851\ude2a\ud851\ude65\ud851\ude74\ud851\ude97" +
-            "\ud851\uded4\ud851\udf06\ud851\udf25\ud851\udf2f" +
-            "\ud851\udf8f\ud851\udfe0\ud852\udc12\ud852\udc23" +
-            "\ud852\udc82\ud852\udce9\ud852\udcf0\ud852\udcf1" +
-            "\ud852\udcf2\ud852\udcf3\ud852\udcfb\ud852\udcff" +
-            "\ud852\udd00\ud852\udd01\ud852\udd0c\ud852\udd16" +
-            "\ud852\udd17\ud852\udd19\ud852\udd2f\ud852\udd33" +
-            "\ud852\udd34\ud852\udd3e\ud852\udd3f\ud852\udd40" +
-            "\ud852\udd41\ud852\udd42\ud852\udd43\ud852\udd62" +
-            "\ud852\udd63\ud852\udd74\ud852\udd75\ud852\udd76" +
-            "\ud852\udd7b\ud852\udd7f\ud852\udd82\ud852\udd88" +
-            "\ud852\udd89\ud852\udd8a\ud852\udd8b\ud852\udd8c" +
-            "\ud852\udd8d\ud852\udd8e\ud852\udd8f\ud852\udd94" +
-            "\ud852\udda4\ud852\udda7\ud852\udda9\ud852\uddab" +
-            "\ud852\uddac\ud852\uddad\ud852\uddb7\ud852\uddb8" +
-            "\ud852\uddb9\ud852\uddba\ud852\uddbb\ud852\uddc5" +
-            "\ud852\uddd0\ud852\uddda\ud852\uddde\ud852\udddf" +
-            "\ud852\udde3\ud852\udde5\ud852\uddec\ud852\udded" +
-            "\ud852\uddf6\ud852\uddf7\ud852\uddf8\ud852\uddf9" +
-            "\ud852\uddfb\ud852\ude0e\ud852\ude12\ud852\ude13" +
-            "\ud852\ude15\ud852\ude21\ud852\ude22\ud852\ude23" +
-            "\ud852\ude24\ud852\ude25\ud852\ude26\ud852\ude27" +
-            "\ud852\ude28\ud852\ude29\ud852\ude2a\ud852\ude3e" +
-            "\ud852\ude42\ud852\ude45\ud852\ude4a\ud852\ude4e" +
-            "\ud852\ude4f\ud852\ude50\ud852\ude51\ud852\ude5d" +
-            "\ud852\ude65\ud852\ude66\ud852\ude67\ud852\ude71" +
-            "\ud852\ude77\ud852\ude78\ud852\ude79\ud852\ude7a" +
-            "\ud852\ude8c\ud852\ude93\ud852\ude94\ud852\ude95" +
-            "\ud852\ude96\ud852\udea4\ud852\udea5\ud852\udea6" +
-            "\ud852\udea7\ud852\udeb1\ud852\udeb2\ud852\udeb3" +
-            "\ud852\udeba\ud852\udebb\ud852\udebc\ud852\udec0" +
-            "\ud852\udec7\ud852\udeca\ud852\uded1\ud852\udedf" +
-            "\ud852\udee2\ud852\udee9\ud852\udf6e\ud852\udff5" +
-            "\ud853\udc09\ud853\udc9e\ud853\udc9f\ud853\udcc9" +
-            "\ud853\udcd9\ud853\udd06\ud853\udd13\ud853\uddb8" +
-            "\ud853\uddea\ud853\uddeb\ud853\ude3b\ud853\ude50" +
-            "\ud853\udea5\ud853\udea7\ud853\udf0e\ud853\udf5c" +
-            "\ud853\udf82\ud853\udf86\ud853\udf97\ud853\udf9a" +
-            "\ud853\udfa9\ud853\udfb8\ud853\udfc2\ud854\udc2c" +
-            "\ud854\udc52\ud854\udc9d\ud854\udd2b\ud854\udd48" +
-            "\ud854\udd7d\ud854\udd7e\ud854\uddcd\ud854\udde3" +
-            "\ud854\udde6\ud854\udde7\ud854\ude20\ud854\ude21" +
-            "\ud854\ude50\ud854\ude99\ud854\udec7\ud854\uded8" +
-            "\ud854\udf0e\ud854\udf11\ud854\udf13\ud855\udc19" +
-            "\ud855\udc25\ud855\udc2f\ud855\udc30\ud855\udc46" +
-            "\ud855\udc6c\ud855\udc6e\ud855\udd31\ud855\udd35" +
-            "\ud855\udd3f\ud855\udd5b\ud855\udd5c\ud855\udd5d" +
-            "\ud855\udd5e\ud855\udd62\ud855\udd65\ud855\udd66" +
-            "\ud855\udd81\ud855\udd84\ud855\udd8f\ud855\uddb9" +
-            "\ud855\uddd5\ud855\udddb\ud855\udde0\ud855\ude05" +
-            "\ud855\ude35\ud855\ude51\ud855\ude83\ud855\ude95" +
-            "\ud855\udee3\ud855\udef6\ud855\udf06\ud855\udf1d" +
-            "\ud855\udf25\ud855\udf3d\ud855\udf72\ud855\udfc7" +
-            "\ud855\udfdf\ud855\udfe0\ud855\udfe1\ud856\udc57" +
-            "\ud856\udc5d\ud856\udc72\ud856\udcc8\ud856\udce1" +
-            "\ud856\udd03\ud856\udd46\ud856\udd56\ud856\uddac" +
-            "\ud856\uddcc\ud856\ude95\ud856\ude9c\ud856\udeae" +
-            "\ud856\udeaf\ud856\udee9\ud856\udf74\ud856\udf89" +
-            "\ud856\udfb3\ud856\udfb4\ud856\udfc6\ud856\udfe4" +
-            "\ud856\udfe8\ud857\udc01\ud857\udc06\ud857\udc21" +
-            "\ud857\udc4a\ud857\udc65\ud857\udc91\ud857\udca4" +
-            "\ud857\udcc0\ud857\udcc1\ud857\udcfe\ud857\udd20" +
-            "\ud857\udd30\ud857\udd43\ud857\ude0e\ud857\ude49" +
-            "\ud857\ude81\ud857\ude82\ud857\ude83\ud857\udea6" +
-            "\ud857\udebc\ud857\uded7\ud857\uded8\ud857\udf1a" +
-            "\ud857\udf4b\ud857\udfe1\ud857\udfe2\ud858\udc29" +
-            "\ud858\udc48\ud858\udc64\ud858\udc83\ud858\udc97" +
-            "\ud858\udca4\ud858\udca5\ud858\udd02\ud858\udd21" +
-            "\ud858\udd59\ud858\udd5a\ud858\udd5b\ud858\udd5c" +
-            "\ud858\uddad\ud858\uddae\ud858\uddb2\ud858\udddd" +
-            "\ud858\ude58\ud858\ude61\ud858\ude6a\ud858\ude6b" +
-            "\ud858\uded0\ud858\udf35\ud858\udf4b\ud858\udf4c" +
-            "\ud858\udf51\ud858\udfbe\ud858\udff5\ud858\udff8" +
-            "\ud859\udc02\ud859\udc10\ud859\udc11\ud859\udc12" +
-            "\ud859\udc4a\ud859\udc69\ud859\udc84\ud859\udc88" +
-            "\ud859\udc89\ud859\udc8d\ud859\udc98\ud859\udd12" +
-            "\ud859\udd72\ud859\udda0\ud859\uddad\ud859\uddbf" +
-            "\ud859\ude12\ud859\ude26\ud859\udeaf\ud859\udeb1" +
-            "\ud859\udeb5\ud859\udeda\ud859\udee8\ud859\udefc" +
-            "\ud859\udf16\ud859\udf41\ud859\udf99\ud859\udfb3" +
-            "\ud859\udfb4\ud859\udfcc\ud85a\udc1c\ud85a\udc46" +
-            "\ud85a\udc5e\ud85a\udc6e\ud85a\udc88\ud85a\udc8a" +
-            "\ud85a\udc93\ud85a\udcc7\ud85a\udd0e\ud85a\udd11" +
-            "\ud85a\udd26\ud85a\udd39\ud85a\udd51\ud85a\udda8" +
-            "\ud85a\uddb5\ud85a\uddf2\ud85a\uddfa\ud85a\ude2d" +
-            "\ud85a\ude2e\ud85a\ude34\ud85a\ude42\ud85a\ude51" +
-            "\ud85a\ude52\ud85a\udf05\ud85a\udf0a\ud85a\udf13" +
-            "\ud85a\udf15\ud85a\udf28\ud85a\udf50\ud85a\udf51" +
-            "\ud85a\udf52\ud85a\udf53\ud85a\udf5b\ud85a\udf75" +
-            "\ud85a\udf82\ud85a\udf96\ud85a\udf97\ud85a\udf9d" +
-            "\ud85a\udfb3\ud85a\udfc0\ud85a\udff7\ud85b\udc21" +
-            "\ud85b\udc40\ud85b\udc7e\ud85b\udc7f\ud85b\udc80" +
-            "\ud85b\udc81\ud85b\udc82\ud85b\udca4\ud85b\udcb7" +
-            "\ud85b\udcb8\ud85b\udcbd\ud85b\udcc0\ud85b\udcc3" +
-            "\ud85b\udcd1\ud85b\udd22\ud85b\udd23\ud85b\udd24" +
-            "\ud85b\udd25\ud85b\udd26\ud85b\udd27\ud85b\udd28" +
-            "\ud85b\udd29\ud85b\udd2a\ud85b\udd51\ud85b\udd74" +
-            "\ud85b\udda0\ud85b\udda1\ud85b\udda2\ud85b\udda3" +
-            "\ud85b\udda4\ud85b\udda5\ud85b\udda6\ud85b\udda7" +
-            "\ud85b\uddae\ud85b\udddc\ud85b\uddea\ud85b\uddeb" +
-            "\ud85b\uddf0\ud85b\ude00\ud85b\ude05\ud85b\ude07" +
-            "\ud85b\ude12\ud85b\ude42\ud85b\ude43\ud85b\ude44" +
-            "\ud85b\ude45\ud85b\ude6e\ud85b\ude72\ud85b\ude77" +
-            "\ud85b\ude84\ud85b\ude99\ud85b\uded0\ud85b\uded1" +
-            "\ud85b\uded2\ud85b\uded3\ud85b\uded4\ud85b\uded5" +
-            "\ud85b\uded6\ud85b\uded7\ud85b\udf26\ud85b\udf73" +
-            "\ud85b\udf74\ud85b\udf9f\ud85b\udfa1\ud85b\udfbe" +
-            "\ud85b\udfde\ud85b\udfdf\ud85c\udc0e\ud85c\udc4b" +
-            "\ud85c\udc52\ud85c\udc53\ud85c\udc88\ud85c\udcad" +
-            "\ud85c\udcae\ud85c\udcaf\ud85c\udccd\ud85c\udcf8" +
-            "\ud85c\udd09\ud85c\udd0c\ud85c\udd0d\ud85c\udd26" +
-            "\ud85c\udd27\ud85c\udd64\ud85c\udd65\ud85c\udd75" +
-            "\ud85c\uddcd\ud85c\ude1b\ud85c\ude80\ud85c\ude85" +
-            "\ud85c\ude8b\ud85c\udeb2\ud85c\udeb6\ud85c\udee6" +
-            "\ud85c\udf9a\ud85d\udc22\ud85d\udc50\ud85d\udc84" +
-            "\ud85d\udc86\ud85d\udd74\ud85d\udda3\ud85d\udde0" +
-            "\ud85d\udde4\ud85d\uddfd\ud85d\uddfe\ud85d\ude07" +
-            "\ud85d\ude0c\ud85d\ude32\ud85d\ude39\ud85d\ude55" +
-            "\ud85d\ude56\ud85d\ude57\ud85d\ude94\ud85d\udf0f" +
-            "\ud85d\udf35\ud85d\udf36\ud85d\udf41\ud85d\udf5e" +
-            "\ud85d\udf84\ud85d\udf85\ud85d\udfcc\ud85e\udc58" +
-            "\ud85e\udc70\ud85e\udc9d\ud85e\udcb2\ud85e\udcc8" +
-            "\ud85e\udd24\ud85e\udd67\ud85e\udd7a\ud85e\udda0" +
-            "\ud85e\udddd\ud85e\uddfd\ud85e\ude0a\ud85e\ude0e" +
-            "\ud85e\ude3e\ud85e\ude53\ud85e\ude59\ud85e\ude79" +
-            "\ud85e\ude84\ud85e\udebd\ud85e\udebe\ud85e\udef4" +
-            "\ud85e\udf06\ud85e\udf0b\ud85e\udf18\ud85e\udf38" +
-            "\ud85e\udf39\ud85e\udf3a\ud85e\udf48\ud85e\udff4" +
-            "\ud85f\udc12\ud85f\udd2f\ud85f\udd53\ud85f\udd54" +
-            "\ud85f\udd66\ud85f\udd73\ud85f\udd84\ud85f\udd8f" +
-            "\ud85f\udd98\ud85f\uddbd\ud85f\udddc\ud85f\ude4d" +
-            "\ud85f\ude4f\ud85f\udff9\ud860\udc02\ud860\udc09" +
-            "\ud860\udc1e\ud860\udc23\ud860\udc24\ud860\udc48" +
-            "\ud860\udc83\ud860\udc90\ud860\udcbd\ud860\udcbe" +
-            "\ud860\udce8\ud860\udce9\ud860\udcf4\ud860\udd2e" +
-            "\ud860\udd4f\ud860\udd5d\ud860\udd6f\ud860\udd89" +
-            "\ud860\uddaf\ud860\uddbc\ud860\ude07\ud860\ude18" +
-            "\ud860\ude1a\ud860\ude56\ud860\ude7c\ud860\ude9b" +
-            "\ud860\udecd\ud860\udee2\ud860\udf06\ud860\udf18" +
-            "\ud860\udf2f\ud860\udf3a\ud860\udf65\ud860\udf6d" +
-            "\ud860\udf7d\ud860\udf8a\ud861\udc12\ud861\udc68" +
-            "\ud861\udc6c\ud861\udc73\ud861\udc82\ud861\udd01" +
-            "\ud861\udd3c\ud861\udd3d\ud861\udd6c\ud861\udde8" +
-            "\ud861\uddf4\ud861\ude00\ud861\ude0b\ud861\ude25" +
-            "\ud861\ude3b\ud861\udeaa\ud861\udeab\ud861\udebc" +
-            "\ud861\uded8\ud861\udee6\ud861\udf0f\ud861\udf13" +
-            "\ud862\udc04\ud862\udc2b\ud862\udd33\ud862\udd48" +
-            "\ud862\udd49\ud862\udd56\ud862\udd64\ud862\udd68" +
-            "\ud862\udd6c\ud862\udd7e\ud862\udd89\ud862\udda8" +
-            "\ud862\uddaa\ud862\uddab\ud862\uddb8\ud862\uddbc" +
-            "\ud862\uddc0\ud862\udddc\ud862\uddde\ud862\udde1" +
-            "\ud862\udde3\ud862\udde4\ud862\udde7\ud862\udde8" +
-            "\ud862\uddf9\ud862\uddfa\ud862\uddfb\ud862\uddfc" +
-            "\ud862\ude0f\ud862\ude16\ud862\ude25\ud862\ude29" +
-            "\ud862\ude32\ud862\ude36\ud862\ude44\ud862\ude45" +
-            "\ud862\ude46\ud862\ude47\ud862\ude48\ud862\ude49" +
-            "\ud862\ude4a\ud862\ude4b\ud862\ude59\ud862\ude5a" +
-            "\ud862\ude81\ud862\ude82\ud862\ude83\ud862\ude9a" +
-            "\ud862\ude9b\ud862\ude9c\ud862\udec0\ud862\udec6" +
-            "\ud862\udecb\ud862\udecc\ud862\udece\ud862\udede" +
-            "\ud862\udedf\ud862\udee0\ud862\udee1\ud862\udee2" +
-            "\ud862\udee3\ud862\udee5\ud862\udeea\ud862\udefc" +
-            "\ud862\udf0c\ud862\udf13\ud862\udf21\ud862\udf22" +
-            "\ud862\udf2b\ud862\udf2c\ud862\udf2d\ud862\udf2f" +
-            "\ud862\udf46\ud862\udf4c\ud862\udf4e\ud862\udf50" +
-            "\ud862\udf63\ud862\udf64\ud862\udf65\ud862\udf66" +
-            "\ud862\udf6c\ud862\udf8f\ud862\udf99\ud862\udf9c" +
-            "\ud862\udf9d\ud862\udfc2\ud862\udfc5\ud862\udfd4" +
-            "\ud862\udfd7\ud862\udfd9\ud862\udfda\ud862\udfe7" +
-            "\ud862\udfe8\ud862\udfe9\ud862\udfea\ud862\udfeb" +
-            "\ud862\udfec\ud862\udff5\ud862\udfff\ud863\udc03" +
-            "\ud863\udc09\ud863\udc1c\ud863\udc1d\ud863\udc23" +
-            "\ud863\udc26\ud863\udc2b\ud863\udc30\ud863\udc39" +
-            "\ud863\udc3b\ud863\udcca\ud863\udccd\ud863\udcd2" +
-            "\ud863\udd34\ud863\udd99\ud863\uddb9\ud863\ude0f" +
-            "\ud863\ude36\ud863\ude39\ud863\ude65\ud863\ude66" +
-            "\ud863\ude97\ud863\udeac\ud863\udeb2\ud863\udeb3" +
-            "\ud863\uded9\ud863\udee7\ud863\udfc5\ud864\udc88" +
-            "\ud864\udc8b\ud864\udc93\ud864\udcaf\ud864\udcb0" +
-            "\ud864\udcb1\ud864\udcc0\ud864\udce4\ud864\udce5" +
-            "\ud864\udcec\ud864\udced\ud864\udd0d\ud864\udd10" +
-            "\ud864\udd3c\ud864\udd4d\ud864\udd5b\ud864\udd5e" +
-            "\ud864\udd70\ud864\udd9c\ud864\udda8\ud864\uddd5" +
-            "\ud864\uddeb\ud865\udc1d\ud865\udc20\ud865\udc33" +
-            "\ud865\udc3f\ud865\udc48\ud865\udcd0\ud865\udcd9" +
-            "\ud865\udcda\ud865\udce5\ud865\udce7\ud865\udd9e" +
-            "\ud865\uddb0\ud865\uddb8\ud865\uddd7\ud865\udde9" +
-            "\ud865\uddf4\ud865\udf20\ud865\udf32\ud865\udfd4" +
-            "\ud866\udc10\ud866\udc57\ud866\udca4\ud866\udcd1" +
-            "\ud866\udcea\ud866\udcf1\ud866\udd03\ud866\udd05" +
-            "\ud866\udd2f\ud866\udd47\ud866\udd48\ud866\udd49" +
-            "\ud866\udd5d\ud866\udd6a\ud866\udd9d\ud866\uddc3" +
-            "\ud866\uddc9\ud866\ude28\ud866\ude4d\ud866\udf05" +
-            "\ud866\udf0e\ud866\udfd5\ud867\udc73\ud867\udcad" +
-            "\ud867\udd3e\ud867\udd5a\ud867\udd7c\ud867\udd98" +
-            "\ud867\udd9b\ud867\uddf6\ud867\ude06\ud867\ude2d" +
-            "\ud867\ude68\ud867\udeac\ud867\udec3\ud867\udef8" +
-            "\ud867\udf23\ud867\udf30\ud867\udfb7\ud867\udfde" +
-            "\ud868\udc14\ud868\udc87\ud868\udcb9\ud868\udce1" +
-            "\ud868\udced\ud868\udcf3\ud868\udcf8\ud868\udcfe" +
-            "\ud868\udd07\ud868\udd23\ud868\udd33\ud868\udd34" +
-            "\ud868\udd50\ud868\udd92\ud868\udd93\ud868\uddab" +
-            "\ud868\uddb4\ud868\udddf\ud868\uddf5\ud868\ude20" +
-            "\ud868\ude33\ud868\ude93\ud868\ude9f\ud868\udeb2" +
-            "\ud868\udeb4\ud868\udeb6\ud868\udeba\ud868\udebd" +
-            "\ud868\udedf\ud868\udeff\ud868\udfa9\ud869\udc34" +
-            "\ud869\udc5b\ud869\uddc6\ud869\uddcb\ud869\ude01" +
-            "\ud869\ude32\ud869\ude4a\ud869\ude5b\ud869\udea9" +
-            "\ud87e\udc25\ud87e\udc3b\ud87e\udc40\ud87e\udc78" +
-            "\ud87e\udc94\ud87e\udca6\ud87e\udccd\ud87e\udd94" +
-            "\ud87e\uddb2\ud87e\uddbc\ud87e\uddd4";
-
-        String nativeSupplementary =
-            "\u9C71\u9375\u9376\u9548\u8EC6\u8BC5"+
-            "\u8BFA\uC87C\u9AB4\u884E\u884B\uC87A"+
-            "\u8848\u8847\uA0F6\u8845\u8853\uFCAD"+
-            "\u8AAD\u9272\uFC47\u94DF\u9FD1\uFBCB"+
-            "\u927D\u98A4\u94E7\u90CB\u927B\u94D8"+
-            "\uFC5F\uFA54\u9AB5\u96DA\u9279\uFA74"+
-            "\u9275\u8DFB\u8A49\u92DF\u9B7C\uFA63"+
-            "\uFA60\u926D\uFA62\u9AB6\u976B\uFD6A"+
-            "\uFD54\u9273\u97D8\u9FBB\u9342\u9276"+
-            "\uFA65\u926C\uFA6E\u9EE0\u92C0\u92BF"+
-            "\u92BE\u9ABA\u8AB3\u9775\uFA40\uFA76"+
-            "\uFBD0\uFA7B\uFE6D\u9BB3\u89CC\u9ABE"+
-            "\uFA42\u92BC\u945C\u9BB5\u9ABF\u98A7"+
-            "\u97A4\u90FD\uFC7B\u9AC0\u92C3\u8AAA"+
-            "\u9BD0\u9550\u92C6\u98A6\u9546\uFD63"+
-            "\uFAC2\u9EC3\u89B2\u9C66\u9053\u97C1"+
-            "\u9AC4\u9AC5\u8EEF\uFAE9\u9262\u8AF7"+
-            "\u9AC6\u92E1\u9AC9\uFAC6\u97A5\u9ACB"+
-            "\uFA72\u8A5E\u94E0\u92CC\u8AE5\uFE5C"+
-            "\u9ACC\u9DF9\u8A43\u8AA6\u9ACD\u9ACE"+
-            "\uFAEE\u9BCC\u9ACF\u9AD1\u9DFA\u9D7C"+
-            "\u9AD3\u97A6\u995F\uFBF6\u9FC5\u8A59"+
-            "\u8B6B\u9AD4\u9AD5\u97A2\u8A44\u9F4A"+
-            "\u90A1\uFDA4\u8A64\u8AF2\u8AF8\u9DD8"+
-            "\u94D6\uFAFE\uFBA7\u9AD6\u9F4D\uFAF6"+
-            "\u8A57\u8B43\u8B44\u8AB6\u8AC0\u9E54"+
-            "\u9AD7\u9AD8\u9ADC\u8ACA\u9EA8\u9263"+
-            "\u9ADD\u8B65\u8B6F\u8B7E\u8F43\u92D0"+
-            "\u8AF4\u9DBE\u9AE1\uFCDE\u9DFD\u8B66"+
-            "\u8B70\u8B75\u8AE4\u8BA4\u8AED\u8A5D"+
-            "\u8B48\u9DED\u9E40\u8AEF\u8AF6\u9E76"+
-            "\u9EE3\u9ADE\u8DFE\uFAFC\u9CB1\u9E77"+
-            "\u8B64\u8B67\u974B\u9653\u9AE0\u8B4A"+
-            "\u8AF1\u8AD7\uA0AB\u8AB5\u8A5F\u8AEE"+
-            "\u9ADF\u8AFE\u8A58\u8BA3\u8BA7\u9AE3"+
-            "\u9261\u9DD7\u9E7D\u9EA7\u9EAB\u9042"+
-            "\u8B79\u8B7A\u9AE6\u9AE5\u8A7E\u9E44"+
-            "\u9AE7\u8A7C\u8B71\u9AE9\u9AEA\u9AEB"+
-            "\u8ABD\uFB4E\u9AED\u8AF9\u9E63\u8B49"+
-            "\u8ACE\u8B6E\u8AE8\u9AEE\u92CE\u8A5A"+
-            "\u8B7B\u8B7C\u9AEF\u9AF0\u8AFA\u8941"+
-            "\u8B72\u8AF3\u8BA8\u9EAE\u9E72\uFB73"+
-            "\uFB5F\u90BA\u91FE\u9EF6\u97ED\u9AF3"+
-            "\uA0EE\u967C\u9345\u986E\uFA56\u9AF5"+
-            "\uFC4B\u9AF4\uFEDE\uFCB7\u97F1\u97C7"+
-            "\u9CCB\u9240\u9CE8\u91FD\u974E\uFB68"+
-            "\u976C\u8CC2\u97E8\uFB6A\u8B74\u8EE7"+
-            "\uFDC8\u9241\u96A1\u8EF3\u9AF7\u8FA6"+
-            "\uFAD6\u9CC7\uFAD7\u9AF8\uFBA1\u8EC5"+
-            "\uFBA4\uFBC2\u9AC1\u91FA\uFEDB\u97AB"+
-            "\u9147\uFBB1\u8FEA\u94D2\uFE61\uFACE"+
-            "\u92ED\u91F3\u93C6\u935A\uFAFB\u92EF"+
-            "\uFAC8\u9847\u9366\u9855\u96E6\u9F43"+
-            "\u9FAA\u94DA\u92EE\uFCAF\uFBFB\u8EF9"+
-            "\u91F6\u9364\u94F5\u9CB6\uFBAD\u984E"+
-            "\u8F44\u96FD\u9AF9\u9AFA\u9769\u95D4"+
-            "\u984B\uFBAA\u987C\u91EA\u9DAF\u9DC5"+
-            "\u91F1\u8EB1\u97A9\uFBAC\uFCB8\u9CB9"+
-            "\uFBB0\uFCD2\u93CB\u9AFD\u91F4\u8BAC"+
-            "\uA055\u9574\u95BE\u97AD\u8EE9\u92F8"+
-            "\u97BE\u916C\u94AA\uFC63\u9DC6\u97B5"+
-            "\u92B8\u91EF\uFEA6\u9760\u9358\u9576"+
-            "\u8FAC\u91EC\u97B4\u91F7\u974A\uFB49"+
-            "\u9578\u93BC\u91D6\u9355\u9356\u9851"+
-            "\u8FF8\uFBC0\u93F2\u90D0\u9C44\u9255"+
-            "\u9363\u91A5\uA0ED\uFD6B\u9AFE\u9351"+
-            "\u8C57\uFA78\uFEA8\u9350\uFA4C\u92F7"+
-            "\u9B40\uFBCE\u9B41\uFEAD\uFBD5\u8BC2"+
-            "\u9A7C\u9B42\u9B43\u9E79\uFBD9\u9B44"+
-            "\uA0A7\u9BF3\u8C79\u935E\u89CB\u9F53"+
-            "\u93D7\uFBE1\uFED0\uFBE2\uFCE3\u9074"+
-            "\uFBE6\u9BB7\u9B45\u9B47\u9F50\u9B48"+
-            "\uFC5B\u98A9\u9CFD\u884C\u9B4B\uFBEC"+
-            "\u8C69\u9BA8\u8AD5\uFA73\uFD59\u91A2"+
-            "\uFBED\u9CA9\u8AA8\u9BC3\u8AE1\u9B4E"+
-            "\u95D0\u905F\u97EE\uFC4E\u9B4F\u9B50"+
-            "\u9EC6\uFC50\uFD73\uFDA7\u9DA2\uFA58"+
-            "\uFA5E\uA059\uFA75\uFBBE\u9CA2\u9370"+
-            "\u9371\u9377\uFEEF\u936D\uFC5D\u90B8"+
-            "\u8AFC\uFB41\u9E6B\u94E3\u8EE2\u8C7D"+
-            "\u8ED7\u9C4D\u96A3\u9B51\u8AC3\u96AA"+
-            "\uFC68\u8B6D\uFD67\u8AE9\uFCA1\u936C"+
-            "\u9B52\uFE70\uFCA8\uFCE9\u9CB4\u8AEA"+
-            "\u9B53\u9B55\u96AB\uFCA7\u9B56\u8ABC"+
-            "\u8ACB\u9B57\u89CD\u9B59\u9B5B\u93A5"+
-            "\u9B5D\u9E4F\u93A3\u8A7B\u8B42\u9750"+
-            "\u8FB3\u8A50\u9B60\u8B45\u8B46\u9DFE"+
-            "\u9B62\u937B\u93B1\u8A60\u8AD8\u9B63"+
-            "\u8A69\u8A47\u8ACC\u937C\u9B65\u9B66"+
-            "\u8A72\u8A7A\u93AF\u8AB0\u9B68\u9EA3"+
-            "\uFAEC\u8B77\u9B67\u8B59\uFCB1\uFCBB"+
-            "\u9B69\u93A8\u8AE0\u9E51\u8F5F\u9B6A"+
-            "\u9B6B\u97EC\u9B6C\uFE4E\uFDC2\u9B6D"+
-            "\u9167\uFCCC\u93B6\u90E4\u90E5\u9EF2"+
-            "\u93CA\u8BBC\u8F46\u93CF\uFCDB\uFCDC"+
-            "\u93C0\uFCE6\u96E7\uFCD8\uFCD9\uFDA6"+
-            "\u93CE\u95F1\u9CE9\uFCE4\u94AF\uFA77"+
-            "\u93CC\u905A\u8C54\u93BF\uFB51\u93B9"+
-            "\uFED7\u93B7\u93D9\u93BB\u93DA\u98A3"+
-            "\u90D1\u9B6E\uFA70\u9BEB\u9B6F\uFCFC"+
-            "\u8B40\uA07B\u8CA1\u97F7\u93E2\uFCD6"+
-            "\u9559\u93A6\uFD40\u935F\u97F2\u9C76"+
-            "\u8EF8\u8F47\u9B74\u92B4\u91ED\u96D2"+
-            "\uFD46\u8F4F\u9549\u9B75\uFA5C\u9B79"+
-            "\uFD4B\u96D3\uFD58\u945F\uA0F5\u9243"+
-            "\u97FA\u9DD9\u97F4\u924D\uFD5B\u9B7A"+
-            "\u9ED5\uFAAE\u9CC9\u9258\u8EC8\u94B4"+
-            "\u93E1\u93DF\uFCF0\u93EC\u97F6\u96CF"+
-            "\u93DE\u8ACF\u9BA2\uFD69\u9352\u98A2"+
-            "\uFD6E\u8CA4\uFA7C\u93FA\u907C\u8F67"+
-            "\u9DB7\uA0E9\uFA4E\uFDA1\u9E74\u9FBF"+
-            "\u9ECB\u9BB9\u9DD4\u97B9\u8EF1\u957B"+
-            "\u9ED2\u9753\u96A4\u8FBE\u94D9\u9058"+
-            "\uFD79\uFD7B\u8EDA\u8EFA\u9BA5\u9ED9"+
-            "\u97D4\u90BB\uFDBC\uFDC6\u9248\u92B5"+
-            "\u9DC1\u92B9\u92A6\u8F4B\u9BA6\u92B6"+
-            "\u8E40\u9ED8\u945E\u985F\u94CE\u924A"+
-            "\uFD70\u9467\u8DEC\u9BD8\u9448\uFAC1"+
-            "\u9CF7\uFDBE\u8FDA\uFDD9\uFC7E\u93F9"+
-            "\uFA43\uFAEB\uFAC3\u97D3\u95F9\u9C48"+
-            "\uFDD8\uA0D8\uFDD7\uFB4A\u9BAF\u944B"+
-            "\uFDC9\u8EAC\uFDB2\u925A\uFCBD\u92D9"+
-            "\uFDD5\u92DD\u9259\u96BA\u925B\u9BAB"+
-            "\uFDDA\uFDDE\uFDD3\u8C46\uFDD6\uFDDC"+
-            "\uFDDD\u90FE\uFEA1\u8BAD\u9CD8\u9E6D"+
-            "\uFD7C\uFB61\u96F8\u96F0\uFCF4\uFE60"+
-            "\u9852\u964F\u916E\u986D\u9864\u9453"+
-            "\uFDEC\uFB78\u95BA\u985D\u92F9\u985A"+
-            "\uFDF6\u93D0\u9862\u9BAD\u974F\u9BAE"+
-            "\u9452\u9BB0\u91D2\u97EA\uFB6B\u91B1"+
-            "\uFDF3\u92CB\u9BB1\uFCEC\u986B\u9751"+
-            "\u9871\u95EF\u9EF3\u91E8\u9BBA\uFB4C"+
-            "\u926A\uFDF8\u9861\u91E7\u93ED\u9744"+
-            "\u91E1\uFBF5\u9869\u8A62\u9BBB\u8CA8"+
-            "\u9C55\u8E77\u8AB2\u9EBC\u93E6\u93A2"+
-            "\u9BBD\u94B3\u937D\u9E66\u9459\u9BBF"+
-            "\u9458\u9EA5\u9BC7\uFE54\u8E74\u8BD6"+
-            "\u94B6\uFD74\u98C0\u94A5\u9BC8\u95ED"+
-            "\uFD7E\uFBEB\uFD7D\u976F\u9461\u9FC1"+
-            "\u95D7\uFA52\u9C58\u9F68\u9BE7\uFCCE"+
-            "\u96E8\uFA49\u97A1\u954D\u9EF8\uFE49"+
-            "\u91CE\u9771\u8CCF\uFDB1\uFC6E\u9CF2"+
-            "\u93B8\u9043\u9759\u94D7\uFE66\u947D"+
-            "\uFC6F\u9246\uFA6D\u8EF7\uFBB7\u947C"+
-            "\u92CD\u97B2\uFE65\u967E\u9758\u9B77"+
-            "\u91CF\u94A4\u9CAD\u8BAB\u96D5\uFCB3"+
-            "\u93AE\u976D\u9446\u95F7\u9C46\u955B"+
-            "\u91D1\u94F4\uFE67\u92A5\uFEDF\u8CAB"+
-            "\u9BC9\uFCED\uFDFA\uFCC8\uFE62\u91FC"+
-            "\uFE6B\uFDF9\uFCC7\u914E\u9CB8\u9767"+
-            "\u95EE\u9BB2\u9460\u94A2\u9875\u97AC"+
-            "\u91D3\u987B\u8EEB\u976A\u965E\u97EB"+
-            "\u9FF9\u95F8\uFEA2\u8FE6\uFE7E\u9DA4"+
-            "\u9768\u8EEC\u94BD\u945B\u9CF6\uFAA7"+
-            "\u9BD9\uFA5D\u9656\u9762\u94BA\uA04F"+
-            "\u92D8\u9BCB\u94BB\u9D5F\u90CF\u9465"+
-            "\u9F4C\u90D8\u9EBE\uFB6D\u95CA\u9DC2"+
-            "\u97F8\u8FFC\u9473\u9474\uFEB7\u8A4B"+
-            "\u8A55\u8B69\u8ADC\u8B76\u9BCE\u8A68"+
-            "\uA0F8\u98DF\uFEB5\u9BCF\u96FB\u9BFB"+
-            "\u9ECE\u8EE5\u9E7B\u9BD2\u8AA5\uFECE"+
-            "\u8A45\u9DFC\uFECF\u8BA5\u8C4A\u8AEC"+
-            "\uFCE0\u94AD\uFED5\u94AC\uFC5A\u9BD6"+
-            "\u8A6F\u8BA9\u8E5F\u9DCB\uFCE7\u9BD7"+
-            "\u93C8\u91F0\u8FE0\u9BDB\u90ED\u9BDC"+
-            "\uA0EC\u98FA\u9BE0\u93C7\u9249\u96E1"+
-            "\u9BE2\u9BE4\u8FE1\u9BE5\u94C0\u93C3"+
-            "\u93C5\u9079\u977B\u907E\uFEE6\uFE46"+
-            "\u9DB8\u9270\u95A8\u8CB0\u94C8\u98B9"+
-            "\u9140\uFCBE\u9157\u8BB2\uFADF\u9BE6"+
-            "\u9643\u8E44\u9C4F\uFEF4\u9BE8\u93DC"+
-            "\u966F\u8E4A\u9BED\u92F6\u9DB9\u8E4E"+
-            "\uFBCF\u9EC2\u94E5\u9BF0\u94E4\u9551"+
-            "\u8BBB\u9BF1\u94F0\u8E64\u94EA\u8F61"+
-            "\u9B64\u8E5B\u9BF2\u9FBE\u9DC9\u8E6C"+
-            "\u8F73\u8CAF\u8F75\u8E71\u8E60\u8E6A"+
-            "\u8C4C\u9552\u9554\u8AD4\u9DBB\u9543"+
-            "\u92FE\u94F2\u94F1\uA0EA\u9DD2\uA0B1"+
-            "\u91F8\u9462\u9BA4\u8EAD\u9EAD\u96D0"+
-            "\uFEEE\u8AB4\u9757\u8A77\u9BF7\u8EB5"+
-            "\uA06D\u8EB6\u9756\u9540\uA0F3\u94BE"+
-            "\u9BFA\uFDDF\u9DBC\u94FE\u8BDB\uA0FE"+
-            "\u8EC0\u9F47\u8BDE\uA0FB\u8EC3\u9649"+
-            "\uFEC2\u954C\u9BFD\u90CC\u9C60\u954B"+
-            "\u9BFE\u9C70\u9C43\u9C47\u8ECC\u8E54"+
-            "\u8EE4\u9C49\u8B5E\u955E\u955C\u9C4B"+
-            "\u8BE1\u8ED9\u9DB4\u925F\u9C4C\u8AA1"+
-            "\u8EDB\u9C56\u8AA2\u9754\u9C5E\u9ED4"+
-            "\u9568\uA0C3\u8AE6\uA0F7\u9C61\u9C5F"+
-            "\uFC4D\u9E5B\u9E69\u9C63\uFEC7\uFEC6"+
-            "\u9C67\u9C69\u8BE2\u9165\u9CE7\u8A54"+
-            "\u9C6C\u9C6E\uFE5D\u9C73\u956A\u956D"+
-            "\u8EF0\u8F4D\u8EF6\uFABC\u8CD5\uFBDA"+
-            "\u8B4C\uFD75\u9BDD\uFAF5\u9C74\u9545"+
-            "\u96C6\u8F6A\u8F4E\u9C78\uFA55\u97E4"+
-            "\u9C41\u925C\u96FA\uFB66\u8E65\u9849"+
-            "\uFBA8\u9842\u9C7A\u97FB\u90CA\u9C5B"+
-            "\u974D\u8ED3\u9561\u9F4B\u9FB5\u93D2"+
-            "\uFDAA\u9840\u9146\u9867\uFA5A\uFBA9"+
-            "\u9841\u8CD3\uFCFD\uFDAB\u91BD\u8F4C"+
-            "\u96C9\u8F55\uFBAE\u956F\u9C7D\uA0F0"+
-            "\u946F\uFDAC\u96CB\u96CE\uA056\u9CE1"+
-            "\u96C4\u8F5E\u8F6C\u8EA3\uFBB3\uFC53"+
-            "\uFDB3\u8F6B\u96CA\u8F79\u9E6F\uA0C5"+
-            "\uFC78\u8E42\u8F5A\u90C2\u8EA5\u9061"+
-            "\u924F\u9373\uFDB5\uFECC\uFBBD\u8CD6"+
-            "\u9843\u96C5\u89BC\u9CA3\u924B\u984A"+
-            "\u8FA4\uA0F1\u9EFB\u9CD2\u8FA7\uFC5C"+
-            "\u9845\u9046\u8CD1\uFEFA\u9560\u9F48"+
-            "\u9247\u90FB\u9CA4\u9571\u9CA6\u9CA7"+
-            "\u9CAA\u9ED3\u9E70\u9CAC\u8FAE\u957D"+
-            "\u9CB0\u97B6\uA0BD\u8ADF\u9EAA\u8FBD"+
-            "\u8FBF\u9369\u9BA7\uC8A4\uFEEA\u9BE1"+
-            "\u8B41\u9DB6\uA0EB\u9BA3\u8BA1\u8FC8"+
-            "\u894C\u9860\u94C7\u8B58\u95AB\u95AA"+
-            "\u9CC3\u9CC4\u93D6\u9DAC\u8BE6\u8A71"+
-            "\u8FD1\u99D5\u90F4\u8AA3\u9CCE\u9CD4"+
-            "\u9CD5\uFBC8\u9DB3\uFC70\u8FD7\u9B73"+
-            "\uFA5B\u8FD2\u9064\u98B6\u9668\u9CD6"+
-            "\u98BD\u8FDC\uFEF6\u8FD9\u9541\u97F3"+
-            "\u9BF8\u9E6C\u8FF2\u8FEE\u9CD7\u9E6E"+
-            "\u8A40\u8FEF\u8FF4\u8FF5\u95C2\u986A"+
-            "\u97CF\u9E7C\u9041\u9CDB\u9441\u9CE6"+
-            "\u9DB0\u9CEA\u9CED\u9CFA\u8B62\u8A4E"+
-            "\u9CCA\u8A66\u9CFB\u9CFC\u9CFE\u8A53"+
-            "\u9CE5\u9D40\u9D41\u9045\u8B73\u97CA"+
-            "\u9D42\u8A61\u8BAE\u8AD2\u8BA2\u9DF2"+
-            "\u9D43\u9CDF\u9D44\u8ECA\u904E\u8EB3"+
-            "\u9FF5\u9D45\u904F\u9D47\u89CA\u9CB5"+
-            "\uFBFE\u905E\u9063\u9057\u9066\u9BC0"+
-            "\uFCE5\u9162\u9067\u8FA1\u8FA2\u9D48"+
-            "\uFAD3\u905D\u90B9\u906B\u8C5C\u9069"+
-            "\uFE57\uFE55\u9073\u9BEF\u9CF0\u9D4B"+
-            "\uFED9\uFEDA\u91E0\u91D8\u9646\u9360"+
-            "\uFA53\u9CD3\u9D4E\uFB40\u8DE2\u9442"+
-            "\u9056\u9865\u8C6C\uFA4A\u9D50\u9D52"+
-            "\u95AF\u975A\u9349\u9747\uA0F4\u9778"+
-            "\u8FCF\uFC60\u8C4E\uFC56\u91DC\u9661"+
-            "\u92EC\u935D\u8EDE\u96FE\uFD4F\u95DE"+
-            "\u98B0\uA040\u97BD\u977D\u97F5\u9BAC"+
-            "\uFADA\u92C2\u97B1\u907B\u93FE\u947B"+
-            "\u9777\uFABE\uFD43\u90C6\u90A4\u90A8"+
-            "\u94A9\u90A9\u8C65\u95E0\u907D\u9265"+
-            "\uFDBA\u93C4\uFEED\u9DAB\uA0E3\u9648"+
-            "\u9D53\u8AA9\u9BC5\u965D\u975F\u965F"+
-            "\u966E\uFB5D\u9DB1\uFEA3\u9DB2\u95AE"+
-            "\uFCA3\uA0A2\u9655\u9D54\u9341\u95AD"+
-            "\u91D5\u977A\uFDFC\u8E47\u93FD\u90A5"+
-            "\u90AC\u95AC\u90AE\uFEA5\u9D56\u97E3"+
-            "\u95E2\u9466\u9647\u91B8\u9CEC\u90AD"+
-            "\u95E3\u8B4F\u8AE3\u8B4D\u95EA\u8B4E"+
-            "\u8CC1\u8BED\u91D9\uA0A4\u95F5\u95F4"+
-            "\u9FB3\uFEAF\uFE72\u927A\uFEAC\u95F3"+
-            "\u9D58\u9372\u91C5\u9642\u90CD\u95FE"+
-            "\u9159\u9C65\u97CC\u90CE\u9D59\uFCF5"+
-            "\uFEFD\u9D5B\u9D5C\u937E\u98AC\u9D5E"+
-            "\uFDD0\uFD60\u9CCF\u90DD\u90E0\u90F3"+
-            "\u98B1\u90F0\u93BD\u95B7\u9F46\u8E4B"+
-            "\u9658\u8A4C\u9D63\u9ECF\u9D65\u9D66"+
-            "\u965A\u9D64\u8A6C\u8AD9\u9D67\u8A70"+
-            "\u8BF3\u9150\u9CC1\u9D68\u93A7\u9674"+
-            "\uA0EF\u9151\u96C1\u8C64\u9676\u9D69"+
-            "\uFCA4\u9D6A\u924E\u9D6B\u9BC1\u9D6C"+
-            "\u8A65\u915D\u9D6D\u915A\u8C42\u9CC0"+
-            "\u916A\u9D6E\u9EA6\u9DCD\u9D6F\u89BB"+
-            "\u9EF9\u96B4\u9172\u9EC8\u8B55\u9D71"+
-            "\u9D72\u9ECC\u9174\u9ED0\u905C\u8ED2"+
-            "\u91A8\u9177\u96BF\u96C0\u8FB1\u96B7"+
-            "\u8C55\u9178\u89BE\u917C\uFB77\u9175"+
-            "\u91A3\u9176\u96BE\u9179\u96B6\u91A4"+
-            "\u91A6\u9D75\u9052\uA045\u91A9\u98AA"+
-            "\u8C5F\u8BAA\u9CDD\u9D77\u8940\u9EEC"+
-            "\u93AA\u9478\u9D7A\u8AC9\u8B4B\u9FEC"+
-            "\u8AE2\u9E75\u9874\u9AC8\uA047\u8BC3"+
-            "\uFC48\uFC77\u9C52\u8EFD\u8FA8\u957A"+
-            "\u8FF0";
-    }
-}
--- a/jdk/src/share/classes/sun/nio/cs/ext/MS950_HKSCS.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/nio/cs/ext/MS950_HKSCS.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -55,47 +55,35 @@
         return new Encoder(this);
     }
 
-    private static class Decoder extends HKSCS.Decoder {
-
-        private static DoubleByte.Decoder ms950Dec =
+    static class Decoder extends HKSCS.Decoder {
+        private static DoubleByte.Decoder ms950 =
             (DoubleByte.Decoder)new MS950().newDecoder();
 
-        /*
-         * Note current decoder decodes 0x8BC2 --> U+F53A
-         * ie. maps to Unicode PUA.
-         * Unaccounted discrepancy between this mapping
-         * inferred from MS950/windows-950 and the published
-         * MS HKSCS mappings which maps 0x8BC2 --> U+5C22
-         * a character defined with the Unified CJK block
-         */
-
-        protected char decodeDouble(int byte1, int byte2) {
-            char c = super.decodeDouble(byte1, byte2);
-            return (c != UNMAPPABLE_DECODING) ? c : ms950Dec.decodeDouble(byte1, byte2);
+        private static char[][] b2cBmp = new char[0x100][];
+        private static char[][] b2cSupp = new char[0x100][];
+        static {
+            initb2c(b2cBmp, HKSCSMapping.b2cBmpStr);
+            initb2c(b2cSupp, HKSCSMapping.b2cSuppStr);
         }
 
         private Decoder(Charset cs) {
-            super(cs);
+            super(cs, ms950, b2cBmp, b2cSupp);
         }
     }
 
     private static class Encoder extends HKSCS.Encoder {
-
-        private static DoubleByte.Encoder ms950Enc =
+        private static DoubleByte.Encoder ms950 =
             (DoubleByte.Encoder)new MS950().newEncoder();
 
-        /*
-         * Note current encoder encodes U+F53A --> 0x8BC2
-         * Published MS HKSCS mappings show
-         * U+5C22 <--> 0x8BC2
-         */
-        protected int encodeDouble(char ch) {
-            int r = super.encodeDouble(ch);
-            return (r != UNMAPPABLE_ENCODING) ? r : ms950Enc.encodeChar(ch);
+        static char[][] c2bBmp = new char[0x100][];
+        static char[][] c2bSupp = new char[0x100][];
+        static {
+            initc2b(c2bBmp, HKSCSMapping.b2cBmpStr, HKSCSMapping.pua);
+            initc2b(c2bSupp, HKSCSMapping.b2cSuppStr, null);
         }
 
         private Encoder(Charset cs) {
-            super(cs);
+            super(cs, ms950, c2bBmp, c2bSupp);
         }
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/nio/cs/ext/MS950_HKSCS_XP.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2002-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.nio.cs.ext;
+
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CharsetEncoder;
+import sun.nio.cs.HistoricallyNamedCharset;
+import static sun.nio.cs.CharsetMapping.*;
+
+public class MS950_HKSCS_XP extends Charset
+{
+    public MS950_HKSCS_XP() {
+        super("x-MS950-HKSCS-XP", ExtendedCharsets.aliasesFor("x-MS950-HKSCS-XP"));
+    }
+
+    public boolean contains(Charset cs) {
+        return ((cs.name().equals("US-ASCII"))
+                || (cs instanceof MS950)
+                || (cs instanceof MS950_HKSCS_XP));
+    }
+
+    public CharsetDecoder newDecoder() {
+        return new Decoder(this);
+    }
+
+    public CharsetEncoder newEncoder() {
+        return new Encoder(this);
+    }
+
+    static class Decoder extends HKSCS.Decoder {
+        private static DoubleByte.Decoder ms950 =
+            (DoubleByte.Decoder)new MS950().newDecoder();
+
+        /*
+         * Note current decoder decodes 0x8BC2 --> U+F53A
+         * ie. maps to Unicode PUA.
+         * Unaccounted discrepancy between this mapping
+         * inferred from MS950/windows-950 and the published
+         * MS HKSCS mappings which maps 0x8BC2 --> U+5C22
+         * a character defined with the Unified CJK block
+         */
+        private static char[][] b2cBmp = new char[0x100][];
+        static {
+            initb2c(b2cBmp, HKSCS_XPMapping.b2cBmpStr);
+        }
+
+        public char decodeDoubleEx(int b1, int b2) {
+            return UNMAPPABLE_DECODING;
+        }
+
+        private Decoder(Charset cs) {
+            super(cs, ms950, b2cBmp, null);
+        }
+    }
+
+    private static class Encoder extends HKSCS.Encoder {
+        private static DoubleByte.Encoder ms950 =
+            (DoubleByte.Encoder)new MS950().newEncoder();
+
+        /*
+         * Note current encoder encodes U+F53A --> 0x8BC2
+         * Published MS HKSCS mappings show
+         * U+5C22 <--> 0x8BC2
+         */
+        static char[][] c2bBmp = new char[0x100][];
+        static {
+            initc2b(c2bBmp, HKSCS_XPMapping.b2cBmpStr, null);
+        }
+
+        public int encodeSupp(int cp) {
+            return UNMAPPABLE_ENCODING;
+        }
+
+        private Encoder(Charset cs) {
+            super(cs, ms950, c2bBmp, null);
+        }
+    }
+}
--- a/jdk/src/share/classes/sun/security/pkcs11/P11SecureRandom.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11SecureRandom.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2003 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2003-2010 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
 package sun.security.pkcs11;
 
 import java.util.*;
-
+import java.io.*;
 import java.security.*;
 
 import sun.security.pkcs11.wrapper.*;
@@ -61,9 +61,28 @@
     // buffer, if mixing is used
     private byte[] mixBuffer;
 
-    // bytes remaining in buffer, if mixing is used
+    // bytes remaining in mixBuffer, if mixing is used
     private int buffered;
 
+    /*
+     * we buffer data internally for efficiency but limit the lifetime
+     * to avoid using stale bits.
+     */
+    // lifetime in ms, currently 100 ms (0.1 s)
+    private static final long MAX_IBUFFER_TIME = 100;
+
+    // size of the internal buffer
+    private static final int IBUFFER_SIZE = 32;
+
+    // internal buffer for the random bits
+    private transient byte[] iBuffer = new byte[IBUFFER_SIZE];
+
+    // number of bytes remain in iBuffer
+    private transient int ibuffered = 0;
+
+    // time that data was read into iBuffer
+    private transient long lastRead = 0L;
+
     P11SecureRandom(Token token) {
         this.token = token;
     }
@@ -104,16 +123,29 @@
         if ((bytes == null) || (bytes.length == 0)) {
             return;
         }
-        Session session = null;
-        try {
-            session = token.getOpSession();
-            token.p11.C_GenerateRandom(session.id(), bytes);
-            mix(bytes);
-        } catch (PKCS11Exception e) {
-            throw new ProviderException("nextBytes() failed", e);
-        } finally {
-            token.releaseSession(session);
+        if (bytes.length <= IBUFFER_SIZE)  {
+            int ofs = 0;
+            synchronized (iBuffer) {
+                while (ofs < bytes.length) {
+                    long time = System.currentTimeMillis();
+                    // refill the internal buffer if empty or stale
+                    if ((ibuffered == 0) ||
+                            !(time - lastRead < MAX_IBUFFER_TIME)) {
+                        lastRead = time;
+                        implNextBytes(iBuffer);
+                        ibuffered = IBUFFER_SIZE;
+                    }
+                    // copy the buffered bytes into 'bytes'
+                    while ((ofs < bytes.length) && (ibuffered > 0)) {
+                        bytes[ofs++] = iBuffer[IBUFFER_SIZE - ibuffered--];
+                    }
+                }
+            }
+        } else {
+            // avoid using the buffer - just fill bytes directly
+            implNextBytes(bytes);
         }
+
     }
 
     // see JCA spec
@@ -143,4 +175,26 @@
         }
     }
 
+    // fill up the specified buffer with random bytes, and mix them
+    private void implNextBytes(byte[] bytes) {
+        Session session = null;
+        try {
+            session = token.getOpSession();
+            token.p11.C_GenerateRandom(session.id(), bytes);
+            mix(bytes);
+        } catch (PKCS11Exception e) {
+            throw new ProviderException("nextBytes() failed", e);
+        } finally {
+            token.releaseSession(session);
+        }
+    }
+
+    private void readObject(ObjectInputStream in)
+            throws IOException, ClassNotFoundException {
+        in.defaultReadObject();
+        // assign default values to non-null transient fields
+        iBuffer = new byte[IBUFFER_SIZE];
+        ibuffered = 0;
+        lastRead = 0L;
+    }
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2003-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2003-2010 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,8 +30,7 @@
 import java.nio.ByteBuffer;
 
 import java.security.*;
-import java.security.interfaces.ECPublicKey;
-
+import java.security.interfaces.*;
 import sun.nio.ch.DirectBuffer;
 
 import sun.security.util.*;
@@ -88,7 +87,7 @@
     // mechanism id
     private final long mechanism;
 
-    // digest algorithm OID, if we do RSA padding ourselves
+    // digest algorithm OID, if we encode RSA signature ourselves
     private final ObjectIdentifier digestOID;
 
     // type, one of T_* below
@@ -103,7 +102,7 @@
     // associated session, if any
     private Session session;
 
-    // mode, on of M_* below
+    // mode, one of M_* below
     private int mode;
 
     // flag indicating whether an operation is initialized
@@ -137,6 +136,9 @@
         this.token = token;
         this.algorithm = algorithm;
         this.mechanism = mechanism;
+        byte[] buffer = null;
+        ObjectIdentifier digestOID = null;
+        MessageDigest md = null;
         switch ((int)mechanism) {
         case (int)CKM_MD2_RSA_PKCS:
         case (int)CKM_MD5_RSA_PKCS:
@@ -146,34 +148,25 @@
         case (int)CKM_SHA512_RSA_PKCS:
             keyAlgorithm = "RSA";
             type = T_UPDATE;
-            digestOID = null;
             buffer = new byte[1];
-            md = null;
             break;
         case (int)CKM_DSA_SHA1:
             keyAlgorithm = "DSA";
             type = T_UPDATE;
-            digestOID = null;
             buffer = new byte[1];
-            md = null;
             break;
         case (int)CKM_ECDSA_SHA1:
             keyAlgorithm = "EC";
             type = T_UPDATE;
-            digestOID = null;
             buffer = new byte[1];
-            md = null;
             break;
         case (int)CKM_DSA:
             keyAlgorithm = "DSA";
-            digestOID = null;
             if (algorithm.equals("DSA")) {
                 type = T_DIGEST;
                 md = MessageDigest.getInstance("SHA-1");
-                buffer = null;
             } else if (algorithm.equals("RawDSA")) {
                 type = T_RAW;
-                md = null;
                 buffer = new byte[20];
             } else {
                 throw new ProviderException(algorithm);
@@ -181,10 +174,8 @@
             break;
         case (int)CKM_ECDSA:
             keyAlgorithm = "EC";
-            digestOID = null;
             if (algorithm.equals("NONEwithECDSA")) {
                 type = T_RAW;
-                md = null;
                 buffer = new byte[RAW_ECDSA_MAX];
             } else {
                 String digestAlg;
@@ -201,14 +192,12 @@
                 }
                 type = T_DIGEST;
                 md = MessageDigest.getInstance(digestAlg);
-                buffer = null;
             }
             break;
         case (int)CKM_RSA_PKCS:
         case (int)CKM_RSA_X_509:
             keyAlgorithm = "RSA";
             type = T_DIGEST;
-            buffer = null;
             if (algorithm.equals("MD5withRSA")) {
                 md = MessageDigest.getInstance("MD5");
                 digestOID = AlgorithmId.MD5_oid;
@@ -234,6 +223,9 @@
         default:
             throw new ProviderException("Unknown mechanism: " + mechanism);
         }
+        this.buffer = buffer;
+        this.digestOID = digestOID;
+        this.md = md;
         session = token.getOpSession();
     }
 
@@ -326,9 +318,52 @@
         }
     }
 
+    private void checkRSAKeyLength(int len) throws InvalidKeyException {
+        RSAPadding padding;
+        try {
+            padding = RSAPadding.getInstance
+                (RSAPadding.PAD_BLOCKTYPE_1, (len + 7) >> 3);
+        } catch (InvalidAlgorithmParameterException iape) {
+            throw new InvalidKeyException(iape.getMessage());
+        }
+        int maxDataSize = padding.getMaxDataSize();
+        int encodedLength;
+        if (algorithm.equals("MD5withRSA") ||
+            algorithm.equals("MD2withRSA")) {
+            encodedLength = 34;
+        } else if (algorithm.equals("SHA1withRSA")) {
+            encodedLength = 35;
+        } else if (algorithm.equals("SHA256withRSA")) {
+            encodedLength = 51;
+        } else if (algorithm.equals("SHA384withRSA")) {
+            encodedLength = 67;
+        } else if (algorithm.equals("SHA512withRSA")) {
+            encodedLength = 83;
+        } else {
+            throw new ProviderException("Unknown signature algo: " + algorithm);
+        }
+        if (encodedLength > maxDataSize) {
+            throw new InvalidKeyException
+                ("Key is too short for this signature algorithm");
+        }
+    }
+
     // see JCA spec
     protected void engineInitVerify(PublicKey publicKey)
             throws InvalidKeyException {
+        if (publicKey == null) {
+            throw new InvalidKeyException("Key must not be null");
+        }
+        // Need to check RSA key length whenever a new key is set
+        if (keyAlgorithm.equals("RSA") && publicKey != p11Key) {
+            int keyLen;
+            if (publicKey instanceof P11Key) {
+                keyLen = ((P11Key) publicKey).keyLength();
+            } else {
+                keyLen = ((RSAKey) publicKey).getModulus().bitLength();
+            }
+            checkRSAKeyLength(keyLen);
+        }
         cancelOperation();
         mode = M_VERIFY;
         p11Key = P11KeyFactory.convertKey(token, publicKey, keyAlgorithm);
@@ -338,6 +373,19 @@
     // see JCA spec
     protected void engineInitSign(PrivateKey privateKey)
             throws InvalidKeyException {
+        if (privateKey == null) {
+            throw new InvalidKeyException("Key must not be null");
+        }
+        // Need to check RSA key length whenever a new key is set
+        if (keyAlgorithm.equals("RSA") && privateKey != p11Key) {
+            int keyLen;
+            if (privateKey instanceof P11Key) {
+                keyLen = ((P11Key) privateKey).keyLength;
+            } else {
+                keyLen = ((RSAKey) privateKey).getModulus().bitLength();
+            }
+            checkRSAKeyLength(keyLen);
+        }
         cancelOperation();
         mode = M_SIGN;
         p11Key = P11KeyFactory.convertKey(token, privateKey, keyAlgorithm);
--- a/jdk/src/share/classes/sun/security/provider/PolicyFile.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/security/provider/PolicyFile.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -65,6 +65,9 @@
 import javax.sound.sampled.AudioPermission;
 import javax.net.ssl.SSLPermission;
 */
+import sun.misc.JavaSecurityProtectionDomainAccess;
+import static sun.misc.JavaSecurityProtectionDomainAccess.ProtectionDomainCache;
+import sun.misc.SharedSecrets;
 import sun.security.util.Password;
 import sun.security.util.PolicyUtil;
 import sun.security.util.PropertyExpander;
@@ -1102,7 +1105,7 @@
     /**
      * Refreshes the policy object by re-reading all the policy files.
      */
-    public void refresh() {
+    @Override public void refresh() {
         init(url);
     }
 
@@ -1119,9 +1122,10 @@
      *
      * @see java.security.ProtectionDomain
      */
+    @Override
     public boolean implies(ProtectionDomain pd, Permission p) {
         PolicyInfo pi = policyInfo.get();
-        Map<ProtectionDomain, PermissionCollection> pdMap = pi.getPdMapping();
+        ProtectionDomainCache pdMap = pi.getPdMapping();
 
         PermissionCollection pc = pdMap.get(pd);
 
@@ -1167,6 +1171,7 @@
      * @return the Permissions granted to the provided
      *          <code>ProtectionDomain</code>.
      */
+    @Override
     public PermissionCollection getPermissions(ProtectionDomain domain) {
         Permissions perms = new Permissions();
 
@@ -1202,6 +1207,7 @@
      *
      * @return the set of permissions according to the policy.
      */
+    @Override
     public PermissionCollection getPermissions(CodeSource codesource) {
         return getPermissions(new Permissions(), codesource);
     }
@@ -2119,7 +2125,7 @@
             return codesource;
         }
 
-        public String toString(){
+        @Override public String toString(){
             StringBuilder sb = new StringBuilder();
             sb.append(ResourcesMgr.getString("("));
             sb.append(getCodeSource());
@@ -2255,7 +2261,7 @@
          *
          * @return false.
          */
-        public boolean implies(Permission p) {
+        @Override public boolean implies(Permission p) {
             return false;
         }
 
@@ -2272,7 +2278,7 @@
          * type (class) name, permission name, actions, and
          * certificates as this object.
          */
-        public boolean equals(Object obj) {
+        @Override public boolean equals(Object obj) {
             if (obj == this)
                 return true;
 
@@ -2320,7 +2326,7 @@
          *
          * @return a hash code value for this object.
          */
-        public int hashCode() {
+        @Override public int hashCode() {
             int hash = type.hashCode();
             if (name != null)
                 hash ^= name.hashCode();
@@ -2339,7 +2345,7 @@
          *
          * @return the empty string "".
          */
-        public String getActions() {
+        @Override public String getActions() {
             return "";
         }
 
@@ -2366,7 +2372,7 @@
          *
          * @return information about this SelfPermission.
          */
-        public String toString() {
+        @Override public String toString() {
             return "(SelfPermission " + type + " " + name + " " + actions + ")";
         }
     }
@@ -2388,7 +2394,7 @@
         final Map aliasMapping;
 
         // Maps ProtectionDomain to PermissionCollection
-        private final Map<ProtectionDomain, PermissionCollection>[] pdMapping;
+        private final ProtectionDomainCache[] pdMapping;
         private java.util.Random random;
 
         PolicyInfo(int numCaches) {
@@ -2397,16 +2403,17 @@
                 Collections.synchronizedList(new ArrayList<PolicyEntry>(2));
             aliasMapping = Collections.synchronizedMap(new HashMap(11));
 
-            pdMapping = new Map[numCaches];
+            pdMapping = new ProtectionDomainCache[numCaches];
+            JavaSecurityProtectionDomainAccess jspda
+                = SharedSecrets.getJavaSecurityProtectionDomainAccess();
             for (int i = 0; i < numCaches; i++) {
-                pdMapping[i] = Collections.synchronizedMap
-                    (new WeakHashMap<ProtectionDomain, PermissionCollection>());
+                pdMapping[i] = jspda.getProtectionDomainCache();
             }
             if (numCaches > 1) {
                 random = new java.util.Random();
             }
         }
-        Map<ProtectionDomain, PermissionCollection> getPdMapping() {
+        ProtectionDomainCache getPdMapping() {
             if (pdMapping.length == 1) {
                 return pdMapping[0];
             } else {
--- a/jdk/src/share/classes/sun/security/provider/X509Factory.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/security/provider/X509Factory.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1998-2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1998-2010 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
 package sun.security.provider;
 
 import java.io.*;
-import java.util.Collection;
 import java.util.*;
 import java.security.cert.*;
 import sun.security.x509.X509CertImpl;
@@ -37,6 +36,7 @@
 import sun.security.util.DerValue;
 import sun.security.util.Cache;
 import sun.misc.BASE64Decoder;
+import sun.security.pkcs.ParsingException;
 
 /**
  * This class defines a certificate factory for X.509 v3 certificates &
@@ -62,10 +62,6 @@
     public static final String BEGIN_CERT = "-----BEGIN CERTIFICATE-----";
     public static final String END_CERT = "-----END CERTIFICATE-----";
 
-    private static final int defaultExpectedLineLength = 80;
-
-    private static final char[] endBoundary = "-----END".toCharArray();
-
     private static final int ENC_MAX_LENGTH = 4096 * 1024; // 4 MB MAX
 
     private static final Cache certCache = Cache.newSoftMemoryCache(750);
@@ -92,13 +88,7 @@
             throw new CertificateException("Missing input stream");
         }
         try {
-            if (is.markSupported() == false) {
-                // consume the entire input stream
-                byte[] totalBytes;
-                totalBytes = getTotalBytes(new BufferedInputStream(is));
-                is = new ByteArrayInputStream(totalBytes);
-            }
-            byte[] encoding = readSequence(is);
+            byte[] encoding = readOneBlock(is);
             if (encoding != null) {
                 X509CertImpl cert = (X509CertImpl)getFromCache(certCache, encoding);
                 if (cert != null) {
@@ -108,19 +98,7 @@
                 addToCache(certCache, cert.getEncodedInternal(), cert);
                 return cert;
             } else {
-                X509CertImpl cert;
-                // determine if binary or Base64 encoding. If Base64 encoding,
-                // the certificate must be bounded at the beginning by
-                // "-----BEGIN".
-                if (isBase64(is)) {
-                    // Base64
-                    byte[] data = base64_to_binary(is);
-                    cert = new X509CertImpl(data);
-                } else {
-                    // binary
-                    cert = new X509CertImpl(new DerValue(is));
-                }
-                return intern(cert);
+                throw new IOException("Empty input");
             }
         } catch (IOException ioe) {
             throw (CertificateException)new CertificateException
@@ -129,73 +107,21 @@
     }
 
     /**
-     * Read a DER SEQUENCE from an InputStream and return the encoding.
-     * If data does not represent a SEQUENCE, it uses indefinite length
-     * encoding, or is longer than ENC_MAX_LENGTH, the stream is reset
-     * and this method returns null.
-     */
-    private static byte[] readSequence(InputStream in) throws IOException {
-        in.mark(ENC_MAX_LENGTH);
-        byte[] b = new byte[4];
-        int i = readFully(in, b, 0, b.length);
-        if ((i != b.length) || (b[0] != 0x30)) { // first byte must be SEQUENCE
-            in.reset();
-            return null;
-        }
-        i = b[1] & 0xff;
-        int totalLength;
-        if (i < 0x80) {
-            int valueLength = i;
-            totalLength = valueLength + 2;
-        } else if (i == 0x81) {
-            int valueLength = b[2] & 0xff;
-            totalLength = valueLength + 3;
-        } else if (i == 0x82) {
-            int valueLength = ((b[2] & 0xff) << 8) | (b[3] & 0xff);
-            totalLength = valueLength + 4;
-        } else { // ignore longer length forms
-            in.reset();
-            return null;
-        }
-        if (totalLength > ENC_MAX_LENGTH) {
-            in.reset();
-            return null;
-        }
-        byte[] encoding = new byte[totalLength];
-        if( totalLength < b.length ) {
-            in.reset();
-            i = readFully(in, encoding, 0, totalLength);
-            if( i != totalLength ) {
-                in.reset();
-                return null;
-            }
-        } else {
-            System.arraycopy(b, 0, encoding, 0, b.length);
-            int n = totalLength - b.length;
-            i = readFully(in, encoding, b.length, n);
-            if (i != n) {
-                in.reset();
-                return null;
-            }
-        }
-        return encoding;
-    }
-
-    /**
      * Read from the stream until length bytes have been read or EOF has
      * been reached. Return the number of bytes actually read.
      */
-    private static int readFully(InputStream in, byte[] buffer, int offset,
+    private static int readFully(InputStream in, ByteArrayOutputStream bout,
             int length) throws IOException {
         int read = 0;
+        byte[] buffer = new byte[2048];
         while (length > 0) {
-            int n = in.read(buffer, offset, length);
+            int n = in.read(buffer, 0, length<2048?length:2048);
             if (n <= 0) {
                 break;
             }
+            bout.write(buffer, 0, n);
             read += n;
             length -= n;
-            offset += n;
         }
         return read;
     }
@@ -309,21 +235,11 @@
             throw new CertificateException("Missing input stream");
         }
         try {
-            if (inStream.markSupported() == false) {
-                // consume the entire input stream
-                byte[] totalBytes;
-                totalBytes = getTotalBytes(new BufferedInputStream(inStream));
-                inStream = new ByteArrayInputStream(totalBytes);
-            }
-            // determine if binary or Base64 encoding. If Base64 encoding,
-            // each certificate must be bounded at the beginning by
-            // "-----BEGIN".
-            if (isBase64(inStream)) {
-                // Base64
-                byte[] data = base64_to_binary(inStream);
-                return new X509CertPath(new ByteArrayInputStream(data));
+            byte[] encoding = readOneBlock(inStream);
+            if (encoding != null) {
+                return new X509CertPath(new ByteArrayInputStream(encoding));
             } else {
-                return new X509CertPath(inStream);
+                throw new IOException("Empty input");
             }
         } catch (IOException ioe) {
             throw new CertificateException(ioe.getMessage());
@@ -350,21 +266,11 @@
             throw new CertificateException("Missing input stream");
         }
         try {
-            if (inStream.markSupported() == false) {
-                // consume the entire input stream
-                byte[] totalBytes;
-                totalBytes = getTotalBytes(new BufferedInputStream(inStream));
-                inStream = new ByteArrayInputStream(totalBytes);
-            }
-            // determine if binary or Base64 encoding. If Base64 encoding,
-            // each certificate must be bounded at the beginning by
-            // "-----BEGIN".
-            if (isBase64(inStream)) {
-                // Base64
-                byte[] data = base64_to_binary(inStream);
+            byte[] data = readOneBlock(inStream);
+            if (data != null) {
                 return new X509CertPath(new ByteArrayInputStream(data), encoding);
             } else {
-                return(new X509CertPath(inStream, encoding));
+                throw new IOException("Empty input");
             }
         } catch (IOException ioe) {
             throw new CertificateException(ioe.getMessage());
@@ -426,11 +332,6 @@
             throw new CertificateException("Missing input stream");
         }
         try {
-            if (is.markSupported() == false) {
-                // consume the entire input stream
-                is = new ByteArrayInputStream
-                     (getTotalBytes(new BufferedInputStream(is)));
-            }
             return parseX509orPKCS7Cert(is);
         } catch (IOException ioe) {
             throw new CertificateException(ioe);
@@ -458,13 +359,7 @@
             throw new CRLException("Missing input stream");
         }
         try {
-            if (is.markSupported() == false) {
-                // consume the entire input stream
-                byte[] totalBytes;
-                totalBytes = getTotalBytes(new BufferedInputStream(is));
-                is = new ByteArrayInputStream(totalBytes);
-            }
-            byte[] encoding = readSequence(is);
+            byte[] encoding = readOneBlock(is);
             if (encoding != null) {
                 X509CRLImpl crl = (X509CRLImpl)getFromCache(crlCache, encoding);
                 if (crl != null) {
@@ -474,19 +369,7 @@
                 addToCache(crlCache, crl.getEncodedInternal(), crl);
                 return crl;
             } else {
-                X509CRLImpl crl;
-                // determine if binary or Base64 encoding. If Base64 encoding,
-                // the CRL must be bounded at the beginning by
-                // "-----BEGIN".
-                if (isBase64(is)) {
-                    // Base64
-                    byte[] data = base64_to_binary(is);
-                    crl = new X509CRLImpl(data);
-                } else {
-                    // binary
-                    crl = new X509CRLImpl(new DerValue(is));
-                }
-                return intern(crl);
+                throw new IOException("Empty input");
             }
         } catch (IOException ioe) {
             throw new CRLException(ioe.getMessage());
@@ -504,19 +387,13 @@
      *
      * @exception CRLException on parsing errors.
      */
-    public Collection<? extends java.security.cert.CRL> engineGenerateCRLs(InputStream
-is)
-        throws CRLException
+    public Collection<? extends java.security.cert.CRL> engineGenerateCRLs(
+            InputStream is) throws CRLException
     {
         if (is == null) {
             throw new CRLException("Missing input stream");
         }
         try {
-            if (is.markSupported() == false) {
-                // consume the entire input stream
-                is = new ByteArrayInputStream
-                    (getTotalBytes(new BufferedInputStream(is)));
-            }
             return parseX509orPKCS7CRL(is);
         } catch (IOException ioe) {
             throw new CRLException(ioe.getMessage());
@@ -533,42 +410,25 @@
         throws CertificateException, IOException
     {
         Collection<X509CertImpl> coll = new ArrayList<X509CertImpl>();
-        boolean first = true;
-        while (is.available() != 0) {
-            // determine if binary or Base64 encoding. If Base64 encoding,
-            // each certificate must be bounded at the beginning by
-            // "-----BEGIN".
-            InputStream is2 = is;
-            if (isBase64(is2)) {
-                // Base64
-                is2 = new ByteArrayInputStream(base64_to_binary(is2));
+        byte[] data = readOneBlock(is);
+        if (data == null) {
+            return new ArrayList<X509CertImpl>(0);
+        }
+        try {
+            PKCS7 pkcs7 = new PKCS7(data);
+            X509Certificate[] certs = pkcs7.getCertificates();
+            // certs are optional in PKCS #7
+            if (certs != null) {
+                return Arrays.asList(certs);
+            } else {
+                // no crls provided
+                return new ArrayList<X509Certificate>(0);
             }
-            if (first)
-                is2.mark(is2.available());
-            try {
-                // treat as X.509 cert
-                coll.add(intern(new X509CertImpl(new DerValue(is2))));
-            } catch (CertificateException e) {
-                Throwable cause = e.getCause();
-                // only treat as PKCS#7 if this is the first cert parsed
-                // and the root cause of the decoding failure is an IOException
-                if (first && cause != null && (cause instanceof IOException)) {
-                    // treat as PKCS#7
-                    is2.reset();
-                    PKCS7 pkcs7 = new PKCS7(is2);
-                    X509Certificate[] certs = pkcs7.getCertificates();
-                    // certs are optional in PKCS #7
-                    if (certs != null) {
-                        return Arrays.asList(certs);
-                    } else {
-                        // no certs provided
-                        return new ArrayList<X509Certificate>(0);
-                    }
-                } else {
-                    throw e;
-                }
+        } catch (ParsingException e) {
+            while (data != null) {
+                coll.add(new X509CertImpl(data));
+                data = readOneBlock(is);
             }
-            first = false;
         }
         return coll;
     }
@@ -583,162 +443,215 @@
         throws CRLException, IOException
     {
         Collection<X509CRLImpl> coll = new ArrayList<X509CRLImpl>();
-        boolean first = true;
-        while (is.available() != 0) {
-            // determine if binary or Base64 encoding. If Base64 encoding,
-            // the CRL must be bounded at the beginning by
-            // "-----BEGIN".
-            InputStream is2 = is;
-            if (isBase64(is)) {
-                // Base64
-                is2 = new ByteArrayInputStream(base64_to_binary(is2));
+        byte[] data = readOneBlock(is);
+        if (data == null) {
+            return new ArrayList<X509CRL>(0);
+        }
+        try {
+            PKCS7 pkcs7 = new PKCS7(data);
+            X509CRL[] crls = pkcs7.getCRLs();
+            // CRLs are optional in PKCS #7
+            if (crls != null) {
+                return Arrays.asList(crls);
+            } else {
+                // no crls provided
+                return new ArrayList<X509CRL>(0);
             }
-            if (first)
-                is2.mark(is2.available());
-            try {
-                // treat as X.509 CRL
-                coll.add(new X509CRLImpl(is2));
-            } catch (CRLException e) {
-                // only treat as PKCS#7 if this is the first CRL parsed
-                if (first) {
-                    is2.reset();
-                    PKCS7 pkcs7 = new PKCS7(is2);
-                    X509CRL[] crls = pkcs7.getCRLs();
-                    // CRLs are optional in PKCS #7
-                    if (crls != null) {
-                        return Arrays.asList(crls);
-                    } else {
-                        // no crls provided
-                        return new ArrayList<X509CRL>(0);
-                    }
-                }
+        } catch (ParsingException e) {
+            while (data != null) {
+                coll.add(new X509CRLImpl(data));
+                data = readOneBlock(is);
             }
-            first = false;
         }
         return coll;
     }
 
-    /*
-     * Converts a Base64-encoded X.509 certificate or X.509 CRL or PKCS#7 data
-     * to binary encoding.
-     * In all cases, the data must be bounded at the beginning by
-     * "-----BEGIN", and must be bounded at the end by "-----END".
+    /**
+     * Returns an ASN.1 SEQUENCE from a stream, which might be a BER-encoded
+     * binary block or a PEM-style BASE64-encoded ASCII data. In the latter
+     * case, it's de-BASE64'ed before return.
+     *
+     * After the reading, the input stream pointer is after the BER block, or
+     * after the newline character after the -----END SOMETHING----- line.
+     *
+     * @param is the InputStream
+     * @returns byte block or null if end of stream
+     * @throws IOException If any parsing error
      */
-    private byte[] base64_to_binary(InputStream is)
-        throws IOException
-    {
-        long len = 0; // total length of base64 encoding, including boundaries
-
-        is.mark(is.available());
-
-        BufferedInputStream bufin = new BufferedInputStream(is);
-        BufferedReader br =
-            new BufferedReader(new InputStreamReader(bufin, "ASCII"));
+    private static byte[] readOneBlock(InputStream is) throws IOException {
 
-        // First read all of the data that is found between
-        // the "-----BEGIN" and "-----END" boundaries into a buffer.
-        String temp;
-        while (true) {
-            temp=readLine(br);
-            if (temp == null) {
-                throw new IOException("Unsupported encoding");
+        // The first character of a BLOCK.
+        int c = is.read();
+        if (c == -1) {
+            return null;
+        }
+        if (c == DerValue.tag_Sequence) {
+            ByteArrayOutputStream bout = new ByteArrayOutputStream(2048);
+            bout.write(c);
+            readBERInternal(is, bout, c);
+            return bout.toByteArray();
+        } else {
+            // Read BASE64 encoded data, might skip info at the beginning
+            char[] data = new char[2048];
+            int pos = 0;
+
+            // Step 1: Read until header is found
+            int hyphen = (c=='-') ? 1: 0;   // count of consequent hyphens
+            int last = (c=='-') ? -1: c;    // the char before hyphen
+            while (true) {
+                int next = is.read();
+                if (next == -1) {
+                    // We accept useless data after the last block,
+                    // say, empty lines.
+                    return null;
+                }
+                if (next == '-') {
+                    hyphen++;
+                } else {
+                    hyphen = 0;
+                    last = next;
+                }
+                if (hyphen == 5 && (last==-1 || last=='\r' || last=='\n')) {
+                    break;
+                }
             }
-            len += temp.length();
-            if (temp.startsWith("-----BEGIN")) {
-                break;
-            }
-        }
-        StringBuffer strBuf = new StringBuffer();
-        while ((temp=readLine(br))!=null && !temp.startsWith("-----END")) {
-            strBuf.append(temp);
-        }
-        if (temp == null) {
-            throw new IOException("Unsupported encoding");
-        } else {
-            len += temp.length();
-        }
 
-        // consume only as much as was needed
-        len += strBuf.length();
-        is.reset();
-        is.skip(len);
-
-        // Now, that data is supposed to be a single X.509 certificate or
-        // X.509 CRL or PKCS#7 formatted data... Base64 encoded.
-        // Decode into binary and return the result.
-        BASE64Decoder decoder = new BASE64Decoder();
-        return decoder.decodeBuffer(strBuf.toString());
-    }
+            // Step 2: Read the rest of header, determine the line end
+            int end;
+            while (true) {
+                int next = is.read();
+                if (next == -1) {
+                    throw new IOException("Incomplete data");
+                }
+                if (next == '\n') {
+                    end = '\n';
+                    break;
+                }
+                if (next == '\r') {
+                    next = is.read();
+                    if (next == -1) {
+                        throw new IOException("Incomplete data");
+                    }
+                    if (next == '\n') {
+                        end = '\n';
+                    } else {
+                        end = '\r';
+                        data[pos++] = (char)next;
+                    }
+                    break;
+                }
+            }
 
-    /*
-     * Reads the entire input stream into a byte array.
-     */
-    private byte[] getTotalBytes(InputStream is) throws IOException {
-        byte[] buffer = new byte[8192];
-        ByteArrayOutputStream baos = new ByteArrayOutputStream(2048);
-        int n;
-        baos.reset();
-        while ((n = is.read(buffer, 0, buffer.length)) != -1) {
-            baos.write(buffer, 0, n);
-        }
-        return baos.toByteArray();
-    }
+            // Step 3: Read the data
+            while (true) {
+                int next = is.read();
+                if (next == -1) {
+                    throw new IOException("Incomplete data");
+                }
+                if (next != '-') {
+                    data[pos++] = (char)next;
+                    if (pos >= data.length) {
+                        data = Arrays.copyOf(data, data.length+1024);
+                    }
+                } else {
+                    break;
+                }
+            }
 
-    /*
-     * Determines if input is binary or Base64 encoded.
-     */
-    private boolean isBase64(InputStream is) throws IOException {
-        if (is.available() >= 1) {
-            is.mark(1);
-            int c1 = is.read();
-            is.reset();
-            if (c1 != DerValue.tag_Sequence) {
-                return true;
-            } else {
-                return false;
+            // Step 4: Consume the footer
+            while (true) {
+                int next = is.read();
+                // Add next == '\n' for maximum safety, in case endline
+                // is not consistent.
+                if (next == -1 || next == end || next == '\n') {
+                    break;
+                }
             }
-        } else {
-            return false;
+
+            BASE64Decoder decoder = new BASE64Decoder();
+            return decoder.decodeBuffer(new String(data, 0, pos));
         }
     }
 
-    /*
-     * Read a line of text.  A line is considered to be terminated by any one
-     * of a line feed ('\n'), a carriage return ('\r'), a carriage return
-     * followed immediately by a linefeed, or an end-of-certificate marker.
+    /**
+     * Read one BER data block. This method is aware of indefinite-length BER
+     * encoding and will read all of the sub-sections in a recursive way
      *
-     * @return     A String containing the contents of the line, including
-     *             any line-termination characters, or null if the end of the
-     *             stream has been reached.
+     * @param is    Read from this InputStream
+     * @param bout  Write into this OutputStream
+     * @param tag   Tag already read (-1 mean not read)
+     * @returns     The current tag, used to check EOC in indefinite-length BER
+     * @throws IOException Any parsing error
      */
-    private String readLine(BufferedReader br) throws IOException {
-        int c;
-        int i = 0;
-        boolean isMatch = true;
-        boolean matched = false;
-        StringBuffer sb = new StringBuffer(defaultExpectedLineLength);
-        do {
-            c = br.read();
-            if (isMatch && (i < endBoundary.length)) {
-                isMatch = ((char)c != endBoundary[i++]) ? false : true;
+    private static int readBERInternal(InputStream is,
+            ByteArrayOutputStream bout, int tag) throws IOException {
+
+        if (tag == -1) {        // Not read before the call, read now
+            tag = is.read();
+            if (tag == -1) {
+                throw new IOException("BER/DER tag info absent");
+            }
+            if ((tag & 0x1f) == 0x1f) {
+                throw new IOException("Multi octets tag not supported");
+            }
+            bout.write(tag);
+        }
+
+        int n = is.read();
+        if (n == -1) {
+            throw new IOException("BER/DER length info ansent");
+        }
+        bout.write(n);
+
+        int length;
+
+        if (n == 0x80) {        // Indefinite-length encoding
+            if ((tag & 0x20) != 0x20) {
+                throw new IOException(
+                        "Non constructed encoding must have definite length");
+            }
+            while (true) {
+                int subTag = readBERInternal(is, bout, -1);
+                if (subTag == 0) {   // EOC, end of indefinite-length section
+                    break;
+                }
             }
-            if (!matched)
-                matched = (isMatch && (i == endBoundary.length));
-            sb.append((char)c);
-        } while ((c != -1) && (c != '\n') && (c != '\r'));
-
-        if (!matched && c == -1) {
-            return null;
-        }
-        if (c == '\r') {
-            br.mark(1);
-            int c2 = br.read();
-            if (c2 == '\n') {
-                sb.append((char)c);
-            } else {
-                br.reset();
+        } else {
+            if (n < 0x80) {
+                length = n;
+            } else if (n == 0x81) {
+                length = is.read();
+                if (length == -1) {
+                    throw new IOException("Incomplete BER/DER length info");
+                }
+                bout.write(length);
+            } else if (n == 0x82) {
+                int highByte = is.read();
+                int lowByte = is.read();
+                if (lowByte == -1) {
+                    throw new IOException("Incomplete BER/DER length info");
+                }
+                bout.write(highByte);
+                bout.write(lowByte);
+                length = (highByte << 8) | lowByte;
+            } else if (n == 0x83) {
+                int highByte = is.read();
+                int midByte = is.read();
+                int lowByte = is.read();
+                if (lowByte == -1) {
+                    throw new IOException("Incomplete BER/DER length info");
+                }
+                bout.write(highByte);
+                bout.write(midByte);
+                bout.write(lowByte);
+                length = (highByte << 16) | (midByte << 8) | lowByte;
+            } else { // ignore longer length forms
+                throw new IOException("Invalid BER/DER data (too huge?)");
+            }
+            if (readFully(is, bout, length) != length) {
+                throw new IOException("Incomplete BER/DER data");
             }
         }
-        return sb.toString();
+        return tag;
     }
 }
--- a/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java	Wed Jul 05 17:09:51 2017 +0200
@@ -93,13 +93,17 @@
      * Constructors
      */
     ClientHandshaker(SSLSocketImpl socket, SSLContextImpl context,
-            ProtocolList enabledProtocols) {
+            ProtocolList enabledProtocols,
+            ProtocolVersion activeProtocolVersion) {
         super(socket, context, enabledProtocols, true, true);
+        this.activeProtocolVersion = activeProtocolVersion;
     }
 
     ClientHandshaker(SSLEngineImpl engine, SSLContextImpl context,
-            ProtocolList enabledProtocols) {
+            ProtocolList enabledProtocols,
+            ProtocolVersion activeProtocolVersion) {
         super(engine, context, enabledProtocols, true, true);
+        this.activeProtocolVersion = activeProtocolVersion;
     }
 
     /*
@@ -275,7 +279,42 @@
         // sent the "client hello" but the server's not seen it.
         //
         if (state < HandshakeMessage.ht_client_hello) {
-            kickstart();
+            if (!renegotiable) {    // renegotiation is not allowed.
+                if (activeProtocolVersion.v >= ProtocolVersion.TLS10.v) {
+                    // response with a no_negotiation warning,
+                    warningSE(Alerts.alert_no_negotiation);
+
+                    // invalidate the handshake so that the caller can
+                    // dispose this object.
+                    invalidated = true;
+
+                    // If there is still unread block in the handshake
+                    // input stream, it would be truncated with the disposal
+                    // and the next handshake message will become incomplete.
+                    //
+                    // However, according to SSL/TLS specifications, no more
+                    // handshake message could immediately follow ClientHello
+                    // or HelloRequest. But in case of any improper messages,
+                    // we'd better check to ensure there is no remaining bytes
+                    // in the handshake input stream.
+                    if (input.available() > 0) {
+                        fatalSE(Alerts.alert_unexpected_message,
+                            "HelloRequest followed by an unexpected  " +
+                            "handshake message");
+                    }
+
+                } else {
+                    // For SSLv3, send the handshake_failure fatal error.
+                    // Note that SSLv3 does not define a no_negotiation alert
+                    // like TLSv1. However we cannot ignore the message
+                    // simply, otherwise the other side was waiting for a
+                    // response that would never come.
+                    fatalSE(Alerts.alert_handshake_failure,
+                        "renegotiation is not allowed");
+                }
+            } else {
+                kickstart();
+            }
         }
     }
 
--- a/jdk/src/share/classes/sun/security/ssl/Handshaker.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/security/ssl/Handshaker.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -60,9 +60,12 @@
  */
 abstract class Handshaker {
 
-    // current protocol version
+    // protocol version being established using this Handshaker
     ProtocolVersion protocolVersion;
 
+    // the currently active protocol version during a renegotiation
+    ProtocolVersion     activeProtocolVersion;
+
     // list of enabled protocols
     ProtocolList enabledProtocols;
 
@@ -124,6 +127,13 @@
     /* Class and subclass dynamic debugging support */
     static final Debug debug = Debug.getInstance("ssl");
 
+    // By default, disable the unsafe legacy session renegotiation
+    static final boolean renegotiable = Debug.getBooleanProperty(
+                    "sun.security.ssl.allowUnsafeRenegotiation", false);
+
+    // need to dispose the object when it is invalidated
+    boolean invalidated;
+
     Handshaker(SSLSocketImpl c, SSLContextImpl context,
             ProtocolList enabledProtocols, boolean needCertVerify,
             boolean isClient) {
@@ -144,6 +154,7 @@
         this.sslContext = context;
         this.isClient = isClient;
         enableNewSession = true;
+        invalidated = false;
 
         setCipherSuite(CipherSuite.C_NULL);
 
@@ -489,7 +500,9 @@
      */
     void processLoop() throws IOException {
 
-        while (input.available() > 0) {
+        // need to read off 4 bytes at least to get the handshake
+        // message type and length.
+        while (input.available() >= 4) {
             byte messageType;
             int messageLen;
 
--- a/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -433,11 +433,12 @@
             connectionState = cs_RENEGOTIATE;
         }
         if (roleIsServer) {
-            handshaker = new ServerHandshaker
-                        (this, sslContext, enabledProtocols, doClientAuth);
+            handshaker = new ServerHandshaker(this, sslContext,
+                        enabledProtocols, doClientAuth,
+                        connectionState == cs_RENEGOTIATE, protocolVersion);
         } else {
-            handshaker = new ClientHandshaker
-                        (this, sslContext, enabledProtocols);
+            handshaker = new ClientHandshaker(this, sslContext,
+                        enabledProtocols, protocolVersion);
         }
         handshaker.enabledCipherSuites = enabledCipherSuites;
         handshaker.setEnableSessionCreation(enableSessionCreation);
@@ -639,6 +640,10 @@
             break;
 
         case cs_DATA:
+            if (!Handshaker.renegotiable) {
+                throw new SSLHandshakeException("renegotiation is not allowed");
+            }
+
             // initialize the handshaker, move to cs_RENEGOTIATE
             initHandshaker();
             break;
@@ -966,7 +971,13 @@
                     handshaker.process_record(inputRecord, expectingFinished);
                     expectingFinished = false;
 
-                    if (handshaker.isDone()) {
+                    if (handshaker.invalidated) {
+                        handshaker = null;
+                        // if state is cs_RENEGOTIATE, revert it to cs_DATA
+                        if (connectionState == cs_RENEGOTIATE) {
+                            connectionState = cs_DATA;
+                        }
+                    } else if (handshaker.isDone()) {
                         sess = handshaker.getSession();
                         if (!writer.hasOutboundData()) {
                             hsStatus = HandshakeStatus.FINISHED;
--- a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	Wed Jul 05 17:09:51 2017 +0200
@@ -907,7 +907,13 @@
                     handshaker.process_record(r, expectingFinished);
                     expectingFinished = false;
 
-                    if (handshaker.isDone()) {
+                    if (handshaker.invalidated) {
+                        handshaker = null;
+                        // if state is cs_RENEGOTIATE, revert it to cs_DATA
+                        if (connectionState == cs_RENEGOTIATE) {
+                            connectionState = cs_DATA;
+                        }
+                    } else if (handshaker.isDone()) {
                         sess = handshaker.getSession();
                         handshaker = null;
                         connectionState = cs_DATA;
@@ -925,6 +931,7 @@
                             t.start();
                         }
                     }
+
                     if (needAppData || connectionState != cs_DATA) {
                         continue;
                     } else {
@@ -1083,11 +1090,12 @@
             connectionState = cs_RENEGOTIATE;
         }
         if (roleIsServer) {
-            handshaker = new ServerHandshaker
-                        (this, sslContext, enabledProtocols, doClientAuth);
+            handshaker = new ServerHandshaker(this, sslContext,
+                        enabledProtocols, doClientAuth,
+                        connectionState == cs_RENEGOTIATE, protocolVersion);
         } else {
-            handshaker = new ClientHandshaker
-                        (this, sslContext, enabledProtocols);
+            handshaker = new ClientHandshaker(this, sslContext,
+                        enabledProtocols, protocolVersion);
         }
         handshaker.enabledCipherSuites = enabledCipherSuites;
         handshaker.setEnableSessionCreation(enableSessionCreation);
@@ -1192,6 +1200,10 @@
             break;
 
         case cs_DATA:
+            if (!Handshaker.renegotiable) {
+                throw new SSLHandshakeException("renegotiation is not allowed");
+            }
+
             // initialize the handshaker, move to cs_RENEGOTIATE
             initHandshaker();
             break;
@@ -1840,6 +1852,11 @@
         return host;
     }
 
+    // ONLY used by HttpsClient to setup the URI specified hostname
+    synchronized public void setHost(String host) {
+        this.host = host;
+    }
+
     /**
      * Gets an input stream to read from the peer on the other side.
      * Data read from this stream was always integrity protected in
--- a/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java	Wed Jul 05 17:09:51 2017 +0200
@@ -69,6 +69,9 @@
     // flag to check for clientCertificateVerify message
     private boolean             needClientVerify = false;
 
+    // indicate a renegotiation handshaking
+    private boolean             isRenegotiation = false;
+
     /*
      * For exportable ciphersuites using non-exportable key sizes, we use
      * ephemeral RSA keys. We could also do anonymous RSA in the same way
@@ -96,20 +99,28 @@
      * Constructor ... use the keys found in the auth context.
      */
     ServerHandshaker(SSLSocketImpl socket, SSLContextImpl context,
-            ProtocolList enabledProtocols, byte clientAuth) {
+            ProtocolList enabledProtocols, byte clientAuth,
+            boolean isRenegotiation, ProtocolVersion activeProtocolVersion) {
+
         super(socket, context, enabledProtocols,
                         (clientAuth != SSLEngineImpl.clauth_none), false);
         doClientAuth = clientAuth;
+        this.isRenegotiation = isRenegotiation;
+        this.activeProtocolVersion = activeProtocolVersion;
     }
 
     /*
      * Constructor ... use the keys found in the auth context.
      */
     ServerHandshaker(SSLEngineImpl engine, SSLContextImpl context,
-            ProtocolList enabledProtocols, byte clientAuth) {
+            ProtocolList enabledProtocols, byte clientAuth,
+            boolean isRenegotiation, ProtocolVersion activeProtocolVersion) {
+
         super(engine, context, enabledProtocols,
                         (clientAuth != SSLEngineImpl.clauth_none), false);
         doClientAuth = clientAuth;
+        this.isRenegotiation = isRenegotiation;
+        this.activeProtocolVersion = activeProtocolVersion;
     }
 
     /*
@@ -257,6 +268,45 @@
         if (debug != null && Debug.isOn("handshake")) {
             mesg.print(System.out);
         }
+
+        // if it is a renegotiation request and renegotiation is not allowed
+        if (isRenegotiation && !renegotiable) {
+            if (activeProtocolVersion.v >= ProtocolVersion.TLS10.v) {
+                // response with a no_negotiation warning,
+                warningSE(Alerts.alert_no_negotiation);
+
+                // invalidate the handshake so that the caller can
+                // dispose this object.
+                invalidated = true;
+
+                // If there is still unread block in the handshake
+                // input stream, it would be truncated with the disposal
+                // and the next handshake message will become incomplete.
+                //
+                // However, according to SSL/TLS specifications, no more
+                // handshake message could immediately follow ClientHello
+                // or HelloRequest. But in case of any improper messages,
+                // we'd better check to ensure there is no remaining bytes
+                // in the handshake input stream.
+                if (input.available() > 0) {
+                    fatalSE(Alerts.alert_unexpected_message,
+                        "ClientHello followed by an unexpected  " +
+                        "handshake message");
+
+                }
+
+                return;
+            } else {
+                // For SSLv3, send the handshake_failure fatal error.
+                // Note that SSLv3 does not define a no_negotiation alert
+                // like TLSv1. However we cannot ignore the message
+                // simply, otherwise the other side was waiting for a
+                // response that would never come.
+                fatalSE(Alerts.alert_handshake_failure,
+                    "renegotiation is not allowed");
+            }
+        }
+
         /*
          * Always make sure this entire record has been digested before we
          * start emitting output, to ensure correct digesting order.
--- a/jdk/src/share/classes/sun/security/tools/KeyTool.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/security/tools/KeyTool.java	Wed Jul 05 17:09:51 2017 +0200
@@ -977,46 +977,35 @@
             if (filename != null) {
                 inStream = new FileInputStream(filename);
             }
-            // Read the full stream before feeding to X509Factory,
-            // otherwise, keytool -gencert | keytool -importcert
-            // might not work properly, since -gencert is slow
-            // and there's no data in the pipe at the beginning.
-            ByteArrayOutputStream bout = new ByteArrayOutputStream();
+            String importAlias = (alias!=null)?alias:keyAlias;
             try {
-                byte[] b = new byte[4096];
-                while (true) {
-                    int len = inStream.read(b);
-                    if (len < 0) break;
-                    bout.write(b, 0, len);
+                if (keyStore.entryInstanceOf(
+                        importAlias, KeyStore.PrivateKeyEntry.class)) {
+                    kssave = installReply(importAlias, inStream);
+                    if (kssave) {
+                        System.err.println(rb.getString
+                            ("Certificate reply was installed in keystore"));
+                    } else {
+                        System.err.println(rb.getString
+                            ("Certificate reply was not installed in keystore"));
+                    }
+                } else if (!keyStore.containsAlias(importAlias) ||
+                        keyStore.entryInstanceOf(importAlias,
+                            KeyStore.TrustedCertificateEntry.class)) {
+                    kssave = addTrustedCert(importAlias, inStream);
+                    if (kssave) {
+                        System.err.println(rb.getString
+                            ("Certificate was added to keystore"));
+                    } else {
+                        System.err.println(rb.getString
+                            ("Certificate was not added to keystore"));
+                    }
                 }
             } finally {
                 if (inStream != System.in) {
                     inStream.close();
                 }
             }
-            inStream = new ByteArrayInputStream(bout.toByteArray());
-            String importAlias = (alias!=null)?alias:keyAlias;
-            if (keyStore.entryInstanceOf(importAlias, KeyStore.PrivateKeyEntry.class)) {
-                kssave = installReply(importAlias, inStream);
-                if (kssave) {
-                    System.err.println(rb.getString
-                        ("Certificate reply was installed in keystore"));
-                } else {
-                    System.err.println(rb.getString
-                        ("Certificate reply was not installed in keystore"));
-                }
-            } else if (!keyStore.containsAlias(importAlias) ||
-                    keyStore.entryInstanceOf(importAlias,
-                        KeyStore.TrustedCertificateEntry.class)) {
-                kssave = addTrustedCert(importAlias, inStream);
-                if (kssave) {
-                    System.err.println(rb.getString
-                        ("Certificate was added to keystore"));
-                } else {
-                    System.err.println(rb.getString
-                        ("Certificate was not added to keystore"));
-                }
-            }
         } else if (command == IMPORTKEYSTORE) {
             doImportKeyStore();
             kssave = true;
@@ -2149,18 +2138,7 @@
                 inStream = new FileInputStream(filename);
             }
             try {
-                // Read the full stream before feeding to X509Factory,
-                // otherwise, keytool -gencert | keytool -printcert
-                // might not work properly, since -gencert is slow
-                // and there's no data in the pipe at the beginning.
-                ByteArrayOutputStream bout = new ByteArrayOutputStream();
-                byte[] b = new byte[4096];
-                while (true) {
-                    int len = inStream.read(b);
-                    if (len < 0) break;
-                    bout.write(b, 0, len);
-                }
-                printCertFromStream(new ByteArrayInputStream(bout.toByteArray()), out);
+                printCertFromStream(inStream, out);
             } finally {
                 if (inStream != System.in) {
                     inStream.close();
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java	Wed Jul 05 17:09:51 2017 +0200
@@ -446,12 +446,13 @@
             {"America/Winnipeg", CST},
             {"America/Yakutat", AKST},
             {"America/Yellowknife", MST},
-            {"Antarctica/Casey", new String[] {"Casey Time", "CAST",
-                                               "Casey Summer Time", "CAST"}},
+            {"Antarctica/Casey", WST_AUS},
             {"Antarctica/Davis", new String[] {"Davis Time", "DAVT",
                                                "Davis Summer Time", "DAVST"}},
             {"Antarctica/DumontDUrville", new String[] {"Dumont-d'Urville Time", "DDUT",
                                                         "Dumont-d'Urville Summer Time", "DDUST"}},
+            {"Antarctica/Macquarie", new String[] {"Macquarie Island Time", "MIST",
+                                                   "Macquarie Island Summer Time", "MIST"}},
             {"Antarctica/Mawson", new String[] {"Mawson Time", "MAWT",
                                                 "Mawson Summer Time", "MAWST"}},
             {"Antarctica/McMurdo", NZST},
--- a/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.cpp	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.cpp	Wed Jul 05 17:09:51 2017 +0200
@@ -40,7 +40,7 @@
 
 void bytes::malloc(size_t len_) {
   len = len_;
-  ptr = NEW(byte, len_+1);  // add trailing zero byte always
+  ptr = NEW(byte, add_size(len_, 1));  // add trailing zero byte always
   if (ptr == null) {
     // set ptr to some victim memory, to ease escape
     set(dummy, sizeof(dummy)-1);
@@ -56,7 +56,7 @@
     return;
   }
   byte* oldptr = ptr;
-  ptr = (len_ >= PSIZE_MAX) ? null : (byte*)::realloc(ptr, len_+1);
+  ptr = (len_ >= PSIZE_MAX) ? null : (byte*)::realloc(ptr, add_size(len_, 1));
   if (ptr != null)  {
     mtrace('r', oldptr, 0);
     mtrace('m', ptr, len_+1);
--- a/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp	Wed Jul 05 17:09:51 2017 +0200
@@ -507,7 +507,7 @@
 
 maybe_inline
 void unpacker::saveTo(bytes& b, byte* ptr, size_t len) {
-  b.ptr = U_NEW(byte, len+1);
+  b.ptr = U_NEW(byte, add_size(len,1));
   if (aborting()) {
     b.len = 0;
     return;
@@ -1154,7 +1154,7 @@
     *fillp = 0;  // bigbuf must contain a well-formed Utf8 string
     int length = (int)(fillp - bigbuf.ptr);
     bytes& value = cpMap[i].value.b;
-    value.set(U_NEW(byte, length+1), length);
+    value.set(U_NEW(byte, add_size(length,1)), length);
     value.copyFrom(bigbuf.ptr, length);
     CHECK;
     // Index all Utf8 strings
@@ -1626,7 +1626,7 @@
     return no_bands;
   } else {
     int nb = bs_limit - bs_base;
-    band** res = U_NEW(band*, nb+1);
+    band** res = U_NEW(band*, add_size(nb, 1));
     CHECK_(no_bands);
     for (int i = 0; i < nb; i++) {
       band* b = (band*) band_stack.get(bs_base + i);
@@ -1735,7 +1735,7 @@
             }
             // save away the case labels
             int ntags = band_stack.length() - case_base;
-            int* tags = U_NEW(int, 1+ntags);
+            int* tags = U_NEW(int, add_size(ntags, 1));
             CHECK_(lp);
             k_case.le_casetags = tags;
             *tags++ = ntags;
@@ -3139,8 +3139,8 @@
   int*     field_counts  = T_NEW(int, nclasses);
   int*     method_counts = T_NEW(int, nclasses);
   cpindex* all_indexes   = U_NEW(cpindex, nclasses*2);
-  entry**  field_ix      = U_NEW(entry*, nfields+nclasses);
-  entry**  method_ix     = U_NEW(entry*, nmethods+nclasses);
+  entry**  field_ix      = U_NEW(entry*, add_size(nfields, nclasses));
+  entry**  method_ix     = U_NEW(entry*, add_size(nmethods, nclasses));
 
   for (j = 0; j < nfields; j++) {
     entry& f = fields[j];
@@ -4132,7 +4132,7 @@
           }
           const char* suffix = ".java";
           int len = (int)(prefix.len + strlen(suffix));
-          bytes name; name.set(T_NEW(byte, len + 1), len);
+          bytes name; name.set(T_NEW(byte, add_size(len, 1)), len);
           name.strcat(prefix).strcat(suffix);
           ref = cp.ensureUtf8(name);
         }
@@ -4647,7 +4647,7 @@
       bytes& prefix = cur_class->ref(0)->value.b;
       const char* suffix = ".class";
       int len = (int)(prefix.len + strlen(suffix));
-      bytes name; name.set(T_NEW(byte, len + 1), len);
+      bytes name; name.set(T_NEW(byte, add_size(len, 1)), len);
       cur_file.name = name.strcat(prefix).strcat(suffix).strval();
     }
   } else {
@@ -4714,6 +4714,7 @@
         input.ensureSize(fleft);
       }
       rplimit = rp = input.base();
+      CHECK;
       input.setLimit(rp + fleft);
       if (!ensure_input(fleft))
         abort("EOF reading resource file");
--- a/jdk/src/share/native/java/lang/System.c	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/native/java/lang/System.c	Wed Jul 05 17:09:51 2017 +0200
@@ -67,10 +67,13 @@
         (*env)->DeleteLocalRef(env, r); \
     } else ((void) 0)
 
-#define PUTPROP_ForPlatformCString(props, key, val) \
+/*  "key" is a char type string with only ASCII character in it.
+    "val" is a nchar (typedefed in java_props.h) type string  */
+
+#define PUTPROP_ForPlatformNString(props, key, val) \
     if (1) { \
-        jstring jkey = JNU_NewStringPlatform(env, key); \
-        jstring jval = JNU_NewStringPlatform(env, val); \
+        jstring jkey = (*env)->NewStringUTF(env, key);  \
+        jstring jval = GetStringPlatform(env, val); \
         jobject r = (*env)->CallObjectMethod(env, props, putID, jkey, jval); \
         if ((*env)->ExceptionOccurred(env)) return NULL; \
         (*env)->DeleteLocalRef(env, jkey); \
@@ -150,7 +153,7 @@
             (sprops->cpu_isalist ? sprops->cpu_isalist : ""));
     PUTPROP(props, "sun.cpu.endian",  sprops->cpu_endian);
 
-    /* !!! DO NOT call PUTPROP_ForPlatformCString before this line !!!
+    /* !!! DO NOT call PUTPROP_ForPlatformNString before this line !!!
      * !!! I18n properties have not been set up yet !!!
      */
 
@@ -195,18 +198,18 @@
      */
     PUTPROP(props, "java.awt.graphicsenv", sprops->graphics_env);
     if (sprops->font_dir != NULL) {
-        PUTPROP_ForPlatformCString(props,
+        PUTPROP_ForPlatformNString(props,
                                    "sun.java2d.fontpath", sprops->font_dir);
     }
 
-    PUTPROP_ForPlatformCString(props, "java.io.tmpdir", sprops->tmp_dir);
+    PUTPROP_ForPlatformNString(props, "java.io.tmpdir", sprops->tmp_dir);
 
-    PUTPROP_ForPlatformCString(props, "user.name", sprops->user_name);
-    PUTPROP_ForPlatformCString(props, "user.home", sprops->user_home);
+    PUTPROP_ForPlatformNString(props, "user.name", sprops->user_name);
+    PUTPROP_ForPlatformNString(props, "user.home", sprops->user_home);
 
     PUTPROP(props, "user.timezone", sprops->timezone);
 
-    PUTPROP_ForPlatformCString(props, "user.dir", sprops->user_dir);
+    PUTPROP_ForPlatformNString(props, "user.dir", sprops->user_dir);
 
     /* This is a sun. property as it is currently only set for Gnome and
      * Windows desktops.
--- a/jdk/src/share/native/java/lang/java_props.h	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/native/java/lang/java_props.h	Wed Jul 05 17:09:51 2017 +0200
@@ -28,21 +28,29 @@
 
 #include <jni_util.h>
 
+/* The preferred native type for storing text on the current OS */
+#ifdef WIN32
+#include <tchar.h>
+typedef WCHAR nchar;
+#else
+typedef char nchar;
+#endif
+
 typedef struct {
     char *os_name;
     char *os_version;
     char *os_arch;
 
-    char *tmp_dir;
-    char *font_dir;
-    char *user_dir;
+    nchar *tmp_dir;
+    nchar *font_dir;
+    nchar *user_dir;
 
     char *file_separator;
     char *path_separator;
     char *line_separator;
 
-    char *user_name;
-    char *user_home;
+    nchar *user_name;
+    nchar *user_home;
 
     char *language;
     char *country;
@@ -71,5 +79,6 @@
 } java_props_t;
 
 java_props_t *GetJavaProperties(JNIEnv *env);
+jstring GetStringPlatform(JNIEnv *env, nchar* str);
 
 #endif /* _JAVA_PROPS_H */
--- a/jdk/src/share/native/java/util/zip/Deflater.c	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/native/java/util/zip/Deflater.c	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -38,7 +38,6 @@
 
 #define DEF_MEM_LEVEL 8
 
-static jfieldID strmID;
 static jfieldID levelID;
 static jfieldID strategyID;
 static jfieldID setParamsID;
@@ -49,7 +48,6 @@
 JNIEXPORT void JNICALL
 Java_java_util_zip_Deflater_initIDs(JNIEnv *env, jclass cls)
 {
-    strmID = (*env)->GetFieldID(env, cls, "strm", "J");
     levelID = (*env)->GetFieldID(env, cls, "level", "I");
     strategyID = (*env)->GetFieldID(env, cls, "strategy", "I");
     setParamsID = (*env)->GetFieldID(env, cls, "setParams", "Z");
@@ -94,7 +92,7 @@
 }
 
 JNIEXPORT void JNICALL
-Java_java_util_zip_Deflater_setDictionary(JNIEnv *env, jclass cls, jlong strm,
+Java_java_util_zip_Deflater_setDictionary(JNIEnv *env, jclass cls, jlong addr,
                                           jarray b, jint off, jint len)
 {
     Bytef *buf = (*env)->GetPrimitiveArrayCritical(env, b, 0);
@@ -102,7 +100,7 @@
     if (buf == 0) {/* out of memory */
         return;
     }
-    res = deflateSetDictionary((z_stream *)jlong_to_ptr(strm), buf + off, len);
+    res = deflateSetDictionary((z_stream *)jlong_to_ptr(addr), buf + off, len);
     (*env)->ReleasePrimitiveArrayCritical(env, b, buf, 0);
     switch (res) {
     case Z_OK:
@@ -111,151 +109,144 @@
         JNU_ThrowIllegalArgumentException(env, 0);
         break;
     default:
-        JNU_ThrowInternalError(env, ((z_stream *)jlong_to_ptr(strm))->msg);
+        JNU_ThrowInternalError(env, ((z_stream *)jlong_to_ptr(addr))->msg);
         break;
     }
 }
 
 JNIEXPORT jint JNICALL
-Java_java_util_zip_Deflater_deflateBytes(JNIEnv *env, jobject this,
+Java_java_util_zip_Deflater_deflateBytes(JNIEnv *env, jobject this, jlong addr,
                                          jarray b, jint off, jint len, jint flush)
 {
-    z_stream *strm = jlong_to_ptr((*env)->GetLongField(env, this, strmID));
+    z_stream *strm = jlong_to_ptr(addr);
 
-    if (strm == 0) {
-        JNU_ThrowNullPointerException(env, 0);
-        return 0;
-    } else {
-        jarray this_buf = (*env)->GetObjectField(env, this, bufID);
-        jint this_off = (*env)->GetIntField(env, this, offID);
-        jint this_len = (*env)->GetIntField(env, this, lenID);
-        jbyte *in_buf;
-        jbyte *out_buf;
-        int res;
-        if ((*env)->GetBooleanField(env, this, setParamsID)) {
-            int level = (*env)->GetIntField(env, this, levelID);
-            int strategy = (*env)->GetIntField(env, this, strategyID);
+    jarray this_buf = (*env)->GetObjectField(env, this, bufID);
+    jint this_off = (*env)->GetIntField(env, this, offID);
+    jint this_len = (*env)->GetIntField(env, this, lenID);
+    jbyte *in_buf;
+    jbyte *out_buf;
+    int res;
+    if ((*env)->GetBooleanField(env, this, setParamsID)) {
+        int level = (*env)->GetIntField(env, this, levelID);
+        int strategy = (*env)->GetIntField(env, this, strategyID);
 
-            in_buf = (jbyte *) malloc(this_len);
-            if (in_buf == 0) {
-                JNU_ThrowOutOfMemoryError(env, 0);
-                return 0;
-            }
-            (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf);
+        in_buf = (jbyte *) malloc(this_len);
+        if (in_buf == 0) {
+            JNU_ThrowOutOfMemoryError(env, 0);
+            return 0;
+        }
+        (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf);
+        out_buf = (jbyte *) malloc(len);
+        if (out_buf == 0) {
+            free(in_buf);
+            JNU_ThrowOutOfMemoryError(env, 0);
+            return 0;
+        }
 
-            out_buf = (jbyte *) malloc(len);
-            if (out_buf == 0) {
-                free(in_buf);
-                JNU_ThrowOutOfMemoryError(env, 0);
-                return 0;
-            }
+        strm->next_in = (Bytef *) in_buf;
+        strm->next_out = (Bytef *) out_buf;
+        strm->avail_in = this_len;
+        strm->avail_out = len;
+        res = deflateParams(strm, level, strategy);
 
-            strm->next_in = (Bytef *) in_buf;
-            strm->next_out = (Bytef *) out_buf;
-            strm->avail_in = this_len;
-            strm->avail_out = len;
-            res = deflateParams(strm, level, strategy);
-
-            if (res == Z_OK) {
-                (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf);
-            }
-            free(out_buf);
-            free(in_buf);
+        if (res == Z_OK) {
+            (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf);
+        }
+        free(out_buf);
+        free(in_buf);
 
-            switch (res) {
-            case Z_OK:
-                (*env)->SetBooleanField(env, this, setParamsID, JNI_FALSE);
-                this_off += this_len - strm->avail_in;
-                (*env)->SetIntField(env, this, offID, this_off);
-                (*env)->SetIntField(env, this, lenID, strm->avail_in);
-                return len - strm->avail_out;
-            case Z_BUF_ERROR:
-                (*env)->SetBooleanField(env, this, setParamsID, JNI_FALSE);
-                return 0;
-            default:
-                JNU_ThrowInternalError(env, strm->msg);
-                return 0;
-            }
-        } else {
-            jboolean finish = (*env)->GetBooleanField(env, this, finishID);
-
-            in_buf = (jbyte *) malloc(this_len);
-            if (in_buf == 0) {
-                JNU_ThrowOutOfMemoryError(env, 0);
-                return 0;
-            }
-            (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf);
+        switch (res) {
+        case Z_OK:
+            (*env)->SetBooleanField(env, this, setParamsID, JNI_FALSE);
+            this_off += this_len - strm->avail_in;
+            (*env)->SetIntField(env, this, offID, this_off);
+            (*env)->SetIntField(env, this, lenID, strm->avail_in);
+            return len - strm->avail_out;
+        case Z_BUF_ERROR:
+            (*env)->SetBooleanField(env, this, setParamsID, JNI_FALSE);
+            return 0;
+        default:
+            JNU_ThrowInternalError(env, strm->msg);
+            return 0;
+        }
+    } else {
+        jboolean finish = (*env)->GetBooleanField(env, this, finishID);
+        in_buf = (jbyte *) malloc(this_len);
+        if (in_buf == 0) {
+            JNU_ThrowOutOfMemoryError(env, 0);
+            return 0;
+        }
+        (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf);
 
-            out_buf = (jbyte *) malloc(len);
-            if (out_buf == 0) {
-                free(in_buf);
-                JNU_ThrowOutOfMemoryError(env, 0);
-                return 0;
-            }
+        out_buf = (jbyte *) malloc(len);
+        if (out_buf == 0) {
+            free(in_buf);
+            JNU_ThrowOutOfMemoryError(env, 0);
+            return 0;
+        }
 
-            strm->next_in = (Bytef *) in_buf;
-            strm->next_out = (Bytef *) out_buf;
-            strm->avail_in = this_len;
-            strm->avail_out = len;
-            res = deflate(strm, finish ? Z_FINISH : flush);
+        strm->next_in = (Bytef *) in_buf;
+        strm->next_out = (Bytef *) out_buf;
+        strm->avail_in = this_len;
+        strm->avail_out = len;
+        res = deflate(strm, finish ? Z_FINISH : flush);
 
-            if (res == Z_STREAM_END || res == Z_OK) {
-                (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf);
-            }
-            free(out_buf);
-            free(in_buf);
+        if (res == Z_STREAM_END || res == Z_OK) {
+            (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf);
+        }
+        free(out_buf);
+        free(in_buf);
 
-            switch (res) {
-            case Z_STREAM_END:
-                (*env)->SetBooleanField(env, this, finishedID, JNI_TRUE);
-                /* fall through */
-            case Z_OK:
-                this_off += this_len - strm->avail_in;
-                (*env)->SetIntField(env, this, offID, this_off);
-                (*env)->SetIntField(env, this, lenID, strm->avail_in);
-                return len - strm->avail_out;
-            case Z_BUF_ERROR:
-                return 0;
+        switch (res) {
+        case Z_STREAM_END:
+            (*env)->SetBooleanField(env, this, finishedID, JNI_TRUE);
+            /* fall through */
+        case Z_OK:
+            this_off += this_len - strm->avail_in;
+            (*env)->SetIntField(env, this, offID, this_off);
+            (*env)->SetIntField(env, this, lenID, strm->avail_in);
+            return len - strm->avail_out;
+        case Z_BUF_ERROR:
+            return 0;
             default:
-                JNU_ThrowInternalError(env, strm->msg);
-                return 0;
-            }
+            JNU_ThrowInternalError(env, strm->msg);
+            return 0;
         }
     }
 }
 
 JNIEXPORT jint JNICALL
-Java_java_util_zip_Deflater_getAdler(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Deflater_getAdler(JNIEnv *env, jclass cls, jlong addr)
 {
-    return ((z_stream *)jlong_to_ptr(strm))->adler;
+    return ((z_stream *)jlong_to_ptr(addr))->adler;
 }
 
 JNIEXPORT jlong JNICALL
-Java_java_util_zip_Deflater_getBytesRead(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Deflater_getBytesRead(JNIEnv *env, jclass cls, jlong addr)
 {
-    return ((z_stream *)jlong_to_ptr(strm))->total_in;
+    return ((z_stream *)jlong_to_ptr(addr))->total_in;
 }
 
 JNIEXPORT jlong JNICALL
-Java_java_util_zip_Deflater_getBytesWritten(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Deflater_getBytesWritten(JNIEnv *env, jclass cls, jlong addr)
 {
-    return ((z_stream *)jlong_to_ptr(strm))->total_out;
+    return ((z_stream *)jlong_to_ptr(addr))->total_out;
 }
 
 JNIEXPORT void JNICALL
-Java_java_util_zip_Deflater_reset(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Deflater_reset(JNIEnv *env, jclass cls, jlong addr)
 {
-    if (deflateReset((z_stream *)jlong_to_ptr(strm)) != Z_OK) {
+    if (deflateReset((z_stream *)jlong_to_ptr(addr)) != Z_OK) {
         JNU_ThrowInternalError(env, 0);
     }
 }
 
 JNIEXPORT void JNICALL
-Java_java_util_zip_Deflater_end(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Deflater_end(JNIEnv *env, jclass cls, jlong addr)
 {
-    if (deflateEnd((z_stream *)jlong_to_ptr(strm)) == Z_STREAM_ERROR) {
+    if (deflateEnd((z_stream *)jlong_to_ptr(addr)) == Z_STREAM_ERROR) {
         JNU_ThrowInternalError(env, 0);
     } else {
-        free((z_stream *)jlong_to_ptr(strm));
+        free((z_stream *)jlong_to_ptr(addr));
     }
 }
--- a/jdk/src/share/native/java/util/zip/Inflater.c	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/native/java/util/zip/Inflater.c	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -41,7 +41,6 @@
 #define ThrowDataFormatException(env, msg) \
         JNU_ThrowByName(env, "java/util/zip/DataFormatException", msg)
 
-static jfieldID strmID;
 static jfieldID needDictID;
 static jfieldID finishedID;
 static jfieldID bufID, offID, lenID;
@@ -49,7 +48,6 @@
 JNIEXPORT void JNICALL
 Java_java_util_zip_Inflater_initIDs(JNIEnv *env, jclass cls)
 {
-    strmID = (*env)->GetFieldID(env, cls, "strm", "J");
     needDictID = (*env)->GetFieldID(env, cls, "needDict", "Z");
     finishedID = (*env)->GetFieldID(env, cls, "finished", "Z");
     bufID = (*env)->GetFieldID(env, cls, "buf", "[B");
@@ -84,134 +82,129 @@
 }
 
 JNIEXPORT void JNICALL
-Java_java_util_zip_Inflater_setDictionary(JNIEnv *env, jclass cls, jlong strm,
+Java_java_util_zip_Inflater_setDictionary(JNIEnv *env, jclass cls, jlong addr,
                                           jarray b, jint off, jint len)
 {
     Bytef *buf = (*env)->GetPrimitiveArrayCritical(env, b, 0);
     int res;
     if (buf == 0) /* out of memory */
         return;
-    res = inflateSetDictionary(jlong_to_ptr(strm), buf + off, len);
+    res = inflateSetDictionary(jlong_to_ptr(addr), buf + off, len);
     (*env)->ReleasePrimitiveArrayCritical(env, b, buf, 0);
     switch (res) {
     case Z_OK:
         break;
     case Z_STREAM_ERROR:
     case Z_DATA_ERROR:
-        JNU_ThrowIllegalArgumentException(env, ((z_stream *)jlong_to_ptr(strm))->msg);
+        JNU_ThrowIllegalArgumentException(env, ((z_stream *)jlong_to_ptr(addr))->msg);
         break;
     default:
-        JNU_ThrowInternalError(env, ((z_stream *)jlong_to_ptr(strm))->msg);
+        JNU_ThrowInternalError(env, ((z_stream *)jlong_to_ptr(addr))->msg);
         break;
     }
 }
 
 JNIEXPORT jint JNICALL
-Java_java_util_zip_Inflater_inflateBytes(JNIEnv *env, jobject this,
+Java_java_util_zip_Inflater_inflateBytes(JNIEnv *env, jobject this, jlong addr,
                                          jarray b, jint off, jint len)
 {
-    z_stream *strm = jlong_to_ptr((*env)->GetLongField(env, this, strmID));
+    z_stream *strm = jlong_to_ptr(addr);
 
-    if (strm == 0) {
-        JNU_ThrowNullPointerException(env, 0);
-        return 0;
-    } else {
-        jarray this_buf = (jarray)(*env)->GetObjectField(env, this, bufID);
-        jint this_off = (*env)->GetIntField(env, this, offID);
-        jint this_len = (*env)->GetIntField(env, this, lenID);
-        jbyte *in_buf;
-        jbyte *out_buf;
-        int ret;
+    jarray this_buf = (jarray)(*env)->GetObjectField(env, this, bufID);
+    jint this_off = (*env)->GetIntField(env, this, offID);
+    jint this_len = (*env)->GetIntField(env, this, lenID);
+    jbyte *in_buf;
+    jbyte *out_buf;
+    int ret;
 
-        in_buf = (jbyte *) malloc(this_len);
-        if (in_buf == 0) {
-            JNU_ThrowOutOfMemoryError(env, 0);
-            return 0;
-        }
-        (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf);
+    in_buf = (jbyte *) malloc(this_len);
+    if (in_buf == 0) {
+        JNU_ThrowOutOfMemoryError(env, 0);
+        return 0;
+    }
+    (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf);
 
-        out_buf = (jbyte *) malloc(len);
-        if (out_buf == 0) {
-            free(in_buf);
-            JNU_ThrowOutOfMemoryError(env, 0);
-            return 0;
-        }
+    out_buf = (jbyte *) malloc(len);
+    if (out_buf == 0) {
+        free(in_buf);
+        JNU_ThrowOutOfMemoryError(env, 0);
+        return 0;
+    }
 
-        strm->next_in  = (Bytef *) in_buf;
-        strm->next_out = (Bytef *) out_buf;
-        strm->avail_in  = this_len;
-        strm->avail_out = len;
-        ret = inflate(strm, Z_PARTIAL_FLUSH);
+    strm->next_in  = (Bytef *) in_buf;
+    strm->next_out = (Bytef *) out_buf;
+    strm->avail_in  = this_len;
+    strm->avail_out = len;
+    ret = inflate(strm, Z_PARTIAL_FLUSH);
 
-        if (ret == Z_STREAM_END || ret == Z_OK) {
-            (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf);
-        }
-        free(out_buf);
-        free(in_buf);
+    if (ret == Z_STREAM_END || ret == Z_OK) {
+        (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf);
+    }
+    free(out_buf);
+    free(in_buf);
 
-        switch (ret) {
-        case Z_STREAM_END:
-            (*env)->SetBooleanField(env, this, finishedID, JNI_TRUE);
-            /* fall through */
-        case Z_OK:
-            this_off += this_len - strm->avail_in;
-            (*env)->SetIntField(env, this, offID, this_off);
-            (*env)->SetIntField(env, this, lenID, strm->avail_in);
-            return len - strm->avail_out;
-        case Z_NEED_DICT:
-            (*env)->SetBooleanField(env, this, needDictID, JNI_TRUE);
-            /* Might have consumed some input here! */
-            this_off += this_len - strm->avail_in;
-            (*env)->SetIntField(env, this, offID, this_off);
-            (*env)->SetIntField(env, this, lenID, strm->avail_in);
-            return 0;
-        case Z_BUF_ERROR:
-            return 0;
-        case Z_DATA_ERROR:
-            ThrowDataFormatException(env, strm->msg);
-            return 0;
-        case Z_MEM_ERROR:
-            JNU_ThrowOutOfMemoryError(env, 0);
-            return 0;
-        default:
-            JNU_ThrowInternalError(env, strm->msg);
-            return 0;
-        }
+    switch (ret) {
+    case Z_STREAM_END:
+        (*env)->SetBooleanField(env, this, finishedID, JNI_TRUE);
+        /* fall through */
+    case Z_OK:
+        this_off += this_len - strm->avail_in;
+        (*env)->SetIntField(env, this, offID, this_off);
+        (*env)->SetIntField(env, this, lenID, strm->avail_in);
+        return len - strm->avail_out;
+    case Z_NEED_DICT:
+        (*env)->SetBooleanField(env, this, needDictID, JNI_TRUE);
+        /* Might have consumed some input here! */
+        this_off += this_len - strm->avail_in;
+        (*env)->SetIntField(env, this, offID, this_off);
+        (*env)->SetIntField(env, this, lenID, strm->avail_in);
+        return 0;
+    case Z_BUF_ERROR:
+        return 0;
+    case Z_DATA_ERROR:
+        ThrowDataFormatException(env, strm->msg);
+        return 0;
+    case Z_MEM_ERROR:
+        JNU_ThrowOutOfMemoryError(env, 0);
+        return 0;
+    default:
+        JNU_ThrowInternalError(env, strm->msg);
+        return 0;
     }
 }
 
 JNIEXPORT jint JNICALL
-Java_java_util_zip_Inflater_getAdler(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Inflater_getAdler(JNIEnv *env, jclass cls, jlong addr)
 {
-    return ((z_stream *)jlong_to_ptr(strm))->adler;
+    return ((z_stream *)jlong_to_ptr(addr))->adler;
 }
 
 JNIEXPORT jlong JNICALL
-Java_java_util_zip_Inflater_getBytesRead(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Inflater_getBytesRead(JNIEnv *env, jclass cls, jlong addr)
 {
-    return ((z_stream *)jlong_to_ptr(strm))->total_in;
+    return ((z_stream *)jlong_to_ptr(addr))->total_in;
 }
 
 JNIEXPORT jlong JNICALL
-Java_java_util_zip_Inflater_getBytesWritten(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Inflater_getBytesWritten(JNIEnv *env, jclass cls, jlong addr)
 {
-    return ((z_stream *)jlong_to_ptr(strm))->total_out;
+    return ((z_stream *)jlong_to_ptr(addr))->total_out;
 }
 
 JNIEXPORT void JNICALL
-Java_java_util_zip_Inflater_reset(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Inflater_reset(JNIEnv *env, jclass cls, jlong addr)
 {
-    if (inflateReset(jlong_to_ptr(strm)) != Z_OK) {
+    if (inflateReset(jlong_to_ptr(addr)) != Z_OK) {
         JNU_ThrowInternalError(env, 0);
     }
 }
 
 JNIEXPORT void JNICALL
-Java_java_util_zip_Inflater_end(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Inflater_end(JNIEnv *env, jclass cls, jlong addr)
 {
-    if (inflateEnd(jlong_to_ptr(strm)) == Z_STREAM_ERROR) {
+    if (inflateEnd(jlong_to_ptr(addr)) == Z_STREAM_ERROR) {
         JNU_ThrowInternalError(env, 0);
     } else {
-        free(jlong_to_ptr(strm));
+        free(jlong_to_ptr(addr));
     }
 }
--- a/jdk/src/share/native/java/util/zip/ZipFile.c	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/native/java/util/zip/ZipFile.c	Wed Jul 05 17:09:51 2017 +0200
@@ -81,7 +81,8 @@
 
 JNIEXPORT jlong JNICALL
 Java_java_util_zip_ZipFile_open(JNIEnv *env, jclass cls, jstring name,
-                                        jint mode, jlong lastModified)
+                                        jint mode, jlong lastModified,
+                                        jboolean usemmap)
 {
     const char *path = JNU_GetStringPlatformChars(env, name, 0);
     char *msg = 0;
@@ -109,7 +110,7 @@
                 goto finally;
             }
 #endif
-            zip = ZIP_Put_In_Cache(path, zfd, &msg, lastModified);
+            zip = ZIP_Put_In_Cache0(path, zfd, &msg, lastModified, usemmap);
         }
 
         if (zip != 0) {
--- a/jdk/src/share/native/java/util/zip/zip_util.c	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/native/java/util/zip/zip_util.c	Wed Jul 05 17:09:51 2017 +0200
@@ -251,11 +251,16 @@
     if (zip->lock != NULL) MDESTROY(zip->lock);
     free(zip->name);
     freeCEN(zip);
+
 #ifdef USE_MMAP
-    if (zip->maddr != NULL) munmap((char *)zip->maddr, zip->mlen);
-#else
-    free(zip->cencache.data);
+    if (zip->usemmap) {
+        if (zip->maddr != NULL)
+            munmap((char *)zip->maddr, zip->mlen);
+    } else
 #endif
+    {
+        free(zip->cencache.data);
+    }
     if (zip->comment != NULL)
         free(zip->comment);
     if (zip->zfd != -1) ZFILE_Close(zip->zfd);
@@ -585,49 +590,53 @@
         ZIP_FORMAT_ERROR("invalid END header (bad central directory offset)");
 
 #ifdef USE_MMAP
-     /* On Solaris & Linux prior to JDK 6, we used to mmap the whole jar file to
-      * read the jar file contents. However, this greatly increased the perceived
-      * footprint numbers because the mmap'ed pages were adding into the totals shown
-      * by 'ps' and 'top'. We switched to mmaping only the central directory of jar
-      * file while calling 'read' to read the rest of jar file. Here are a list of
-      * reasons apart from above of why we are doing so:
-      * 1. Greatly reduces mmap overhead after startup complete;
-      * 2. Avoids dual path code maintainance;
-      * 3. Greatly reduces risk of address space (not virtual memory) exhaustion.
-      */
-    if (pagesize == 0) {
-        pagesize = (jlong)sysconf(_SC_PAGESIZE);
-        if (pagesize == 0) goto Catch;
-    }
-    if (cenpos > pagesize) {
-        offset = cenpos & ~(pagesize - 1);
-    } else {
-        offset = 0;
+    if (zip->usemmap) {
+      /* On Solaris & Linux prior to JDK 6, we used to mmap the whole jar file to
+       * read the jar file contents. However, this greatly increased the perceived
+       * footprint numbers because the mmap'ed pages were adding into the totals shown
+       * by 'ps' and 'top'. We switched to mmaping only the central directory of jar
+       * file while calling 'read' to read the rest of jar file. Here are a list of
+       * reasons apart from above of why we are doing so:
+       * 1. Greatly reduces mmap overhead after startup complete;
+       * 2. Avoids dual path code maintainance;
+       * 3. Greatly reduces risk of address space (not virtual memory) exhaustion.
+       */
+        if (pagesize == 0) {
+            pagesize = (jlong)sysconf(_SC_PAGESIZE);
+            if (pagesize == 0) goto Catch;
+        }
+        if (cenpos > pagesize) {
+            offset = cenpos & ~(pagesize - 1);
+        } else {
+            offset = 0;
+        }
+        /* When we are not calling recursively, knownTotal is -1. */
+        if (knownTotal == -1) {
+            void* mappedAddr;
+            /* Mmap the CEN and END part only. We have to figure
+               out the page size in order to make offset to be multiples of
+               page size.
+            */
+            zip->mlen = cenpos - offset + cenlen + endhdrlen;
+            zip->offset = offset;
+            mappedAddr = mmap64(0, zip->mlen, PROT_READ, MAP_SHARED, zip->zfd, (off64_t) offset);
+            zip->maddr = (mappedAddr == (void*) MAP_FAILED) ? NULL :
+                (unsigned char*)mappedAddr;
+
+            if (zip->maddr == NULL) {
+                jio_fprintf(stderr, "mmap failed for CEN and END part of zip file\n");
+                goto Catch;
+            }
+        }
+        cenbuf = zip->maddr + cenpos - offset;
+    } else
+#endif
+    {
+        if ((cenbuf = malloc((size_t) cenlen)) == NULL ||
+            (readFullyAt(zip->zfd, cenbuf, cenlen, cenpos) == -1))
+        goto Catch;
     }
-    /* When we are not calling recursively, knownTotal is -1. */
-    if (knownTotal == -1) {
-        void* mappedAddr;
-        /* Mmap the CEN and END part only. We have to figure
-           out the page size in order to make offset to be multiples of
-           page size.
-        */
-        zip->mlen = cenpos - offset + cenlen + endhdrlen;
-        zip->offset = offset;
-        mappedAddr = mmap64(0, zip->mlen, PROT_READ, MAP_SHARED, zip->zfd, (off64_t) offset);
-        zip->maddr = (mappedAddr == (void*) MAP_FAILED) ? NULL :
-            (unsigned char*)mappedAddr;
 
-        if (zip->maddr == NULL) {
-            jio_fprintf(stderr, "mmap failed for CEN and END part of zip file\n");
-            goto Catch;
-        }
-    }
-    cenbuf = zip->maddr + cenpos - offset;
-#else
-    if ((cenbuf = malloc((size_t) cenlen)) == NULL ||
-        (readFullyAt(zip->zfd, cenbuf, cenlen, cenpos) == -1))
-        goto Catch;
-#endif
     cenend = cenbuf + cenlen;
 
     /* Initialize zip file data structures based on the total number
@@ -700,9 +709,11 @@
     cenpos = -1;
 
  Finally:
-#ifndef USE_MMAP
-    free(cenbuf);
+#ifdef USE_MMAP
+    if (!zip->usemmap)
 #endif
+        free(cenbuf);
+
     return cenpos;
 }
 
@@ -782,9 +793,17 @@
  * If a zip error occurs, then *pmsg will be set to the error message text if
  * pmsg != 0. Otherwise, *pmsg will be set to NULL.
  */
+
 jzfile *
 ZIP_Put_In_Cache(const char *name, ZFILE zfd, char **pmsg, jlong lastModified)
 {
+    return ZIP_Put_In_Cache0(name, zfd, pmsg, lastModified, JNI_TRUE);
+}
+
+jzfile *
+ZIP_Put_In_Cache0(const char *name, ZFILE zfd, char **pmsg, jlong lastModified,
+                 jboolean usemmap)
+{
     static char errbuf[256];
     jlong len;
     jzfile *zip;
@@ -793,6 +812,9 @@
         return NULL;
     }
 
+#ifdef USE_MMAP
+    zip->usemmap = usemmap;
+#endif
     zip->refs = 1;
     zip->lastModified = lastModified;
 
@@ -877,8 +899,6 @@
     return;
 }
 
-#ifndef USE_MMAP
-
 /* Empirically, most CEN headers are smaller than this. */
 #define AMPLE_CEN_HEADER_SIZE 160
 
@@ -928,7 +948,6 @@
     cache->pos  = cenpos;
     return cen;
 }
-#endif /* not USE_MMAP */
 
 typedef enum { ACCESS_RANDOM, ACCESS_SEQUENTIAL } AccessHint;
 
@@ -953,14 +972,17 @@
     ze->comment = NULL;
 
 #ifdef USE_MMAP
-    cen = (char*) zip->maddr + zc->cenpos - zip->offset;
-#else
-    if (accessHint == ACCESS_RANDOM)
-        cen = readCENHeader(zip, zc->cenpos, AMPLE_CEN_HEADER_SIZE);
-    else
-        cen = sequentialAccessReadCENHeader(zip, zc->cenpos);
-    if (cen == NULL) goto Catch;
+    if (zip->usemmap) {
+        cen = (char*) zip->maddr + zc->cenpos - zip->offset;
+    } else
 #endif
+    {
+        if (accessHint == ACCESS_RANDOM)
+            cen = readCENHeader(zip, zc->cenpos, AMPLE_CEN_HEADER_SIZE);
+        else
+            cen = sequentialAccessReadCENHeader(zip, zc->cenpos);
+        if (cen == NULL) goto Catch;
+    }
 
     nlen      = CENNAM(cen);
     elen      = CENEXT(cen);
@@ -976,7 +998,6 @@
     if ((ze->name = malloc(nlen + 1)) == NULL) goto Catch;
     memcpy(ze->name, cen + CENHDR, nlen);
     ze->name[nlen] = '\0';
-
     if (elen > 0) {
         char *extra = cen + CENHDR + nlen;
 
@@ -1037,9 +1058,10 @@
     ze = NULL;
 
  Finally:
-#ifndef USE_MMAP
-    if (cen != NULL && accessHint == ACCESS_RANDOM) free(cen);
+#ifdef USE_MMAP
+    if (!zip->usemmap)
 #endif
+        if (cen != NULL && accessHint == ACCESS_RANDOM) free(cen);
     return ze;
 }
 
--- a/jdk/src/share/native/java/util/zip/zip_util.h	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/native/java/util/zip/zip_util.h	Wed Jul 05 17:09:51 2017 +0200
@@ -45,9 +45,6 @@
  * Header sizes including signatures
  */
 
-#ifdef USE_MMAP
-#define SIGSIZ  4
-#endif
 #define LOCHDR 30
 #define EXTHDR 16
 #define CENHDR 46
@@ -211,9 +208,9 @@
     jlong mlen;           /* length (in bytes) mmaped */
     jlong offset;         /* offset of the mmapped region from the
                              start of the file. */
-#else
+    jboolean usemmap;     /* if mmap is used. */
+#endif
     cencache cencache;    /* CEN header cache */
-#endif
     ZFILE zfd;            /* open file descriptor */
     void *lock;           /* read lock */
     char *comment;        /* zip file comment */
@@ -259,6 +256,9 @@
 jzfile *
 ZIP_Put_In_Cache(const char *name, ZFILE zfd, char **pmsg, jlong lastModified);
 
+jzfile *
+ZIP_Put_In_Cache0(const char *name, ZFILE zfd, char **pmsg, jlong lastModified, jboolean usemmap);
+
 void JNICALL
 ZIP_Close(jzfile *zip);
 
--- a/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c	Wed Jul 05 17:09:51 2017 +0200
@@ -258,6 +258,7 @@
 
 typedef struct pixelBufferStruct {
     jobject hpixelObject;   // Usually a DataBuffer bank as a byte array
+    unsigned int byteBufferLength;
     union pixptr {
         INT32         *ip;  // Pinned buffer pointer, as 32-bit ints
         unsigned char *bp;  // Pinned buffer pointer, as bytes
@@ -270,6 +271,7 @@
  */
 static void initPixelBuffer(pixelBufferPtr pb) {
     pb->hpixelObject = NULL;
+    pb->byteBufferLength = 0;
     pb->buf.ip = NULL;
 }
 
@@ -279,13 +281,13 @@
  */
 static int setPixelBuffer(JNIEnv *env, pixelBufferPtr pb, jobject obj) {
     pb->hpixelObject = (*env)->NewGlobalRef(env, obj);
-
     if (pb->hpixelObject == NULL) {
         JNU_ThrowByName( env,
                          "java/lang/OutOfMemoryError",
                          "Setting Pixel Buffer");
         return NOT_OK;
     }
+    pb->byteBufferLength = (*env)->GetArrayLength(env, pb->hpixelObject);
     return OK;
 }
 
@@ -302,6 +304,7 @@
         unpinPixelBuffer(env, pb);
         (*env)->DeleteGlobalRef(env, pb->hpixelObject);
         pb->hpixelObject = NULL;
+        pb->byteBufferLength = 0;
     }
 }
 
@@ -1828,6 +1831,7 @@
     boolean orderedBands = TRUE;
     imageIODataPtr data = (imageIODataPtr) ptr;
     j_decompress_ptr cinfo;
+    unsigned int numBytes;
 
     /* verify the inputs */
 
@@ -2027,15 +2031,22 @@
                 // scanline buffer into the raster.
                 in = scanLinePtr + (sourceXStart * cinfo->output_components);
                 if (pixelLimit > in) {
-                    memcpy(out, in, pixelLimit - in);
+                    numBytes = pixelLimit - in;
+                    if (numBytes > data->pixelBuf.byteBufferLength) {
+                        numBytes = data->pixelBuf.byteBufferLength;
+                    }
+                    memcpy(out, in, numBytes);
                 }
             } else {
+                numBytes = numBands;
                 for (in = scanLinePtr+sourceXStart*cinfo->output_components;
-                     in < pixelLimit;
+                     in < pixelLimit &&
+                       numBytes <= data->pixelBuf.byteBufferLength;
                      in += pixelStride) {
                     for (i = 0; i < numBands; i++) {
                         *out++ = *(in+bands[i]);
                     }
+                    numBytes += numBands;
                 }
             }
 
--- a/jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c	Wed Jul 05 17:09:51 2017 +0200
@@ -2239,7 +2239,8 @@
     int dataType = BYTE_DATA_TYPE;
     int width;
     int height;
-    int size = rasterP->width * rasterP->height * rasterP->numBands;
+    int dataSize;
+    int offset;
 
     *dataPP = NULL;
 
@@ -2292,6 +2293,22 @@
 #endif
     switch (rasterP->type) {
     case sun_awt_image_IntegerComponentRaster_TYPE_INT_8BIT_SAMPLES:
+        if (!((rasterP->chanOffsets[0] == 0 || SAFE_TO_ALLOC_2(rasterP->chanOffsets[0], 4)) &&
+              SAFE_TO_ALLOC_2(width, 4) &&
+              SAFE_TO_ALLOC_3(height, rasterP->scanlineStride, 4)))
+        {
+            return -1;
+        }
+        offset = 4 * rasterP->chanOffsets[0];
+        dataSize = 4 * (*env)->GetArrayLength(env, rasterP->jdata);
+
+        if (offset < 0 || offset >= dataSize ||
+            width > rasterP->scanlineStride ||
+            height * rasterP->scanlineStride * 4 > dataSize - offset)
+        {
+            // raster data buffer is too short
+            return -1;
+        }
         dataP = (void *) (*env)->GetPrimitiveArrayCritical(env, rasterP->jdata,
                                                            NULL);
         if (dataP == NULL) {
@@ -2300,11 +2317,25 @@
         *mlibImagePP = (*sMlibSysFns.createStructFP)(MLIB_BYTE, 4,
                                               width, height,
                                               rasterP->scanlineStride*4,
-                                              (unsigned char *)dataP
-                                              + rasterP->chanOffsets[0]*4);
+                                              (unsigned char *)dataP + offset);
         *dataPP = dataP;
         return 0;
     case sun_awt_image_IntegerComponentRaster_TYPE_BYTE_SAMPLES:
+        if (!(SAFE_TO_ALLOC_2(width, rasterP->numBands) &&
+              SAFE_TO_ALLOC_2(height, rasterP->scanlineStride)))
+        {
+            return -1;
+        }
+        offset = rasterP->chanOffsets[0];
+        dataSize = (*env)->GetArrayLength(env, rasterP->jdata);
+
+        if (offset < 0 || offset >= dataSize ||
+            width * rasterP->numBands > rasterP->scanlineStride ||
+            height * rasterP->scanlineStride > dataSize - offset)
+        {
+            // raster data buffer is too short
+            return -1;
+        }
         dataP = (void *) (*env)->GetPrimitiveArrayCritical(env, rasterP->jdata,
                                                            NULL);
         if (dataP == NULL) {
@@ -2313,11 +2344,26 @@
         *mlibImagePP = (*sMlibSysFns.createStructFP)(MLIB_BYTE, rasterP->numBands,
                                               width, height,
                                               rasterP->scanlineStride,
-                                              (unsigned char *)dataP
-                                              + rasterP->chanOffsets[0]);
+                                              (unsigned char *)dataP + offset);
         *dataPP = dataP;
         return 0;
     case sun_awt_image_IntegerComponentRaster_TYPE_USHORT_SAMPLES:
+        if (!((rasterP->chanOffsets[0] == 0 || SAFE_TO_ALLOC_2(rasterP->chanOffsets[0], 2)) &&
+              SAFE_TO_ALLOC_3(width, rasterP->numBands, 2) &&
+              SAFE_TO_ALLOC_3(height, rasterP->scanlineStride, 2)))
+        {
+              return -1;
+        }
+        offset = rasterP->chanOffsets[0] * 2;
+        dataSize = 2 * (*env)->GetArrayLength(env, rasterP->jdata);
+
+        if (offset < 0 || offset >= dataSize ||
+            width * rasterP->numBands > rasterP->scanlineStride ||
+            height * rasterP->scanlineStride * 2 > dataSize - offset)
+        {
+            // raster data buffer is too short
+             return -1;
+        }
         dataP = (void *) (*env)->GetPrimitiveArrayCritical(env, rasterP->jdata,
                                                            NULL);
         if (dataP == NULL) {
@@ -2327,8 +2373,7 @@
                                                      rasterP->numBands,
                                                      width, height,
                                                      rasterP->scanlineStride*2,
-                                                     (unsigned char *)dataP
-                                                     + rasterP->chanOffsets[0]*2);
+                                                     (unsigned char *)dataP + offset);
         *dataPP = dataP;
         return 0;
 
--- a/jdk/src/share/native/sun/awt/medialib/safe_alloc.h	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/native/sun/awt/medialib/safe_alloc.h	Wed Jul 05 17:09:51 2017 +0200
@@ -35,11 +35,11 @@
  */
 #define SAFE_TO_ALLOC_2(c, sz)                                             \
     (((c) > 0) && ((sz) > 0) &&                                            \
-     ((0xffffffffu / ((juint)(c))) > (sz)))
+     ((0xffffffffu / ((juint)(c))) > ((juint)(sz))))
 
 #define SAFE_TO_ALLOC_3(w, h, sz)                                          \
     (((w) > 0) && ((h) > 0) && ((sz) > 0) &&                               \
-    (((0xffffffffu / ((juint)(w))) / ((juint)(h))) > (sz)))
+     (((0xffffffffu / ((juint)(w))) / ((juint)(h))) > ((juint)(sz))))
 
 
 #endif // __SAFE_ALLOC_H__
--- a/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c	Wed Jul 05 17:09:51 2017 +0200
@@ -1433,6 +1433,9 @@
 
     // If is in memory, the LUT is already there, so throw a copy
     if (Icc -> TagPtrs[n]) {
+        if (!_cmsValidateLUT((LPLUT) Icc ->TagPtrs[n])) {
+            return NULL;
+        }
 
         return cmsDupLUT((LPLUT) Icc ->TagPtrs[n]);
     }
--- a/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c	Wed Jul 05 17:09:51 2017 +0200
@@ -1969,6 +1969,10 @@
                 goto ErrorCleanup;
         }
 
+        if (Transforms[i] == NULL) {
+            cmsSignalError(LCMS_ERRC_ABORTED, "cmsCreateMultiprofileTransform: unable to create transform");
+            goto ErrorCleanup;
+        }
         CurrentColorSpace = ColorSpaceOut;
 
     }
--- a/jdk/src/share/native/sun/management/Flag.c	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/share/native/sun/management/Flag.c	Wed Jul 05 17:09:51 2017 +0200
@@ -133,11 +133,8 @@
                                            globals[i].value.j);
             break;
         default:
-            // unsupported type
-            sprintf(errmsg, "Unsupported VMGlobal Type %d", globals[i].type);
-            JNU_ThrowInternalError(env, errmsg);
-            free(globals);
-            return 0;
+            // ignore unsupported type
+            continue;
         }
         switch (globals[i].origin) {
         case JMM_VMGLOBAL_ORIGIN_DEFAULT:
--- a/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.properties	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.properties	Wed Jul 05 17:09:51 2017 +0200
@@ -26,134 +26,310 @@
 
 # Version
 
-# Uses Fedora Core 6 fonts and file paths.
+# Uses Fedora 9 fonts and file paths.
 version=1
 
 # Component Font Mappings
 
-dialog.plain.latin-1=DejaVu LGC Sans
+dialog.plain.latin-1=DejaVu Sans
 dialog.plain.japanese-x0208=Sazanami Gothic
 dialog.plain.korean=Baekmuk Gulim
 dialog.plain.chinese-big5=AR PL ShanHeiSun Uni
 dialog.plain.chinese-gb18030=AR PL ShanHeiSun Uni
+dialog.plain.bengali=Lohit Bengali
+dialog.plain.gujarati=Lohit Gujarati
+dialog.plain.hindi=Lohit Hindi
+dialog.plain.malayalam=Lohit Malayalam
+dialog.plain.oriya=Lohit Oriya
+dialog.plain.punjabi=Lohit Punjabi
+dialog.plain.tamil=Lohit Tamil
+dialog.plain.telugu=Lohit Telugu
+dialog.plain.sinhala=LKLUG
 
-dialog.bold.latin-1=DejaVu LGC Sans Bold
+dialog.bold.latin-1=DejaVu Sans Bold
 dialog.bold.japanese-x0208=Sazanami Gothic
 dialog.bold.korean=Baekmuk Gulim
 dialog.bold.chinese-big5=AR PL ShanHeiSun Uni
 dialog.bold.chinese-gb18030=AR PL ShanHeiSun Uni
+dialog.bold.bengali=Lohit Bengali
+dialog.bold.gujarati=Lohit Gujarati
+dialog.bold.hindi=Lohit Hindi
+dialog.bold.malayalam=Lohit Malayalam
+dialog.bold.oriya=Lohit Oriya
+dialog.bold.punjabi=Lohit Punjabi
+dialog.bold.tamil=Lohit Tamil
+dialog.bold.telugu=Lohit Telugu
+dialog.bold.sinhala=LKLUG
 
-dialog.italic.latin-1=DejaVu LGC Sans Oblique
+dialog.italic.latin-1=DejaVu Sans Oblique
 dialog.italic.japanese-x0208=Sazanami Gothic
 dialog.italic.korean=Baekmuk Gulim
 dialog.italic.chinese-big5=AR PL ShanHeiSun Uni
 dialog.italic.chinese-gb18030=AR PL ShanHeiSun Uni
+dialog.italic.bengali=Lohit Bengali
+dialog.italic.gujarati=Lohit Gujarati
+dialog.italic.hindi=Lohit Hindi
+dialog.italic.malayalam=Lohit Malayalam
+dialog.italic.oriya=Lohit Oriya
+dialog.italic.punjabi=Lohit Punjabi
+dialog.italic.tamil=Lohit Tamil
+dialog.italic.telugu=Lohit Telugu
+dialog.italic.sinhala=LKLUG
 
-dialog.bolditalic.latin-1=DejaVu LGC Sans Bold Oblique
+dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique
 dialog.bolditalic.japanese-x0208=Sazanami Gothic
 dialog.bolditalic.korean=Baekmuk Gulim
 dialog.bolditalic.chinese-big5=AR PL ShanHeiSun Uni
 dialog.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni
-
+dialog.bolditalic.bengali=Lohit Bengali
+dialog.bolditalic.gujarati=Lohit Gujarati
+dialog.bolditalic.hindi=Lohit Hindi
+dialog.bolditalic.malayalam=Lohit Malayalam
+dialog.bolditalic.oriya=Lohit Oriya
+dialog.bolditalic.punjabi=Lohit Punjabi
+dialog.bolditalic.tamil=Lohit Tamil
+dialog.bolditalic.telugu=Lohit Telugu
+dialog.bolditalic.sinhala=LKLUG
 
-sansserif.plain.latin-1=DejaVu LGC Sans
+sansserif.plain.latin-1=DejaVu Sans
 sansserif.plain.japanese-x0208=Sazanami Gothic
 sansserif.plain.korean=Baekmuk Gulim
 sansserif.plain.chinese-big5=AR PL ShanHeiSun Uni
 sansserif.plain.chinese-gb18030=AR PL ShanHeiSun Uni
+sansserif.plain.bengali=Lohit Bengali
+sansserif.plain.gujarati=Lohit Gujarati
+sansserif.plain.hindi=Lohit Hindi
+sansserif.plain.malayalam=Lohit Malayalam
+sansserif.plain.oriya=Lohit Oriya
+sansserif.plain.punjabi=Lohit Punjabi
+sansserif.plain.tamil=Lohit Tamil
+sansserif.plain.telugu=Lohit Telugu
+sansserif.plain.sinhala=LKLUG
 
-sansserif.bold.latin-1=DejaVu LGC Sans Bold
+sansserif.bold.latin-1=DejaVu Sans Bold
 sansserif.bold.japanese-x0208=Sazanami Gothic
 sansserif.bold.korean=Baekmuk Gulim
 sansserif.bold.chinese-big5=AR PL ShanHeiSun Uni
 sansserif.bold.chinese-gb18030=AR PL ShanHeiSun Uni
+sansserif.bold.bengali=Lohit Bengali
+sansserif.bold.gujarati=Lohit Gujarati
+sansserif.bold.hindi=Lohit Hindi
+sansserif.bold.malayalam=Lohit Malayalam
+sansserif.bold.oriya=Lohit Oriya
+sansserif.bold.punjabi=Lohit Punjabi
+sansserif.bold.tamil=Lohit Tamil
+sansserif.bold.telugu=Lohit Telugu
+sansserif.bold.sinhala=LKLUG
 
-sansserif.italic.latin-1=DejaVu LGC Sans Oblique
+sansserif.italic.latin-1=DejaVu Sans Oblique
 sansserif.italic.japanese-x0208=Sazanami Gothic
 sansserif.italic.korean=Baekmuk Gulim
 sansserif.italic.chinese-big5=AR PL ShanHeiSun Uni
 sansserif.italic.chinese-gb18030=AR PL ShanHeiSun Uni
+sansserif.italic.bengali=Lohit Bengali
+sansserif.italic.gujarati=Lohit Gujarati
+sansserif.italic.hindi=Lohit Hindi
+sansserif.italic.malayalam=Lohit Malayalam
+sansserif.italic.oriya=Lohit Oriya
+sansserif.italic.punjabi=Lohit Punjabi
+sansserif.italic.tamil=Lohit Tamil
+sansserif.italic.telugu=Lohit Telugu
+sansserif.italic.sinhala=LKLUG
 
-sansserif.bolditalic.latin-1=DejaVu LGC Sans Bold Oblique
+sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique
 sansserif.bolditalic.japanese-x0208=Sazanami Gothic
 sansserif.bolditalic.korean=Baekmuk Gulim
 sansserif.bolditalic.chinese-big5=AR PL ShanHeiSun Uni
 sansserif.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni
-
+sansserif.bolditalic.bengali=Lohit Bengali
+sansserif.bolditalic.gujarati=Lohit Gujarati
+sansserif.bolditalic.hindi=Lohit Hindi
+sansserif.bolditalic.malayalam=Lohit Malayalam
+sansserif.bolditalic.oriya=Lohit Oriya
+sansserif.bolditalic.punjabi=Lohit Punjabi
+sansserif.bolditalic.tamil=Lohit Tamil
+sansserif.bolditalic.telugu=Lohit Telugu
+sansserif.bolditalic.sinhala=LKLUG
 
-serif.plain.latin-1=DejaVu LGC Serif
+serif.plain.latin-1=DejaVu Serif
 serif.plain.japanese-x0208=Sazanami Mincho
 serif.plain.korean=Baekmuk Batang
 serif.plain.chinese-big5=AR PL ZenKai Uni
 serif.plain.chinese-gb18030=AR PL ZenKai Uni
+serif.plain.bengali=Lohit Bengali
+serif.plain.gujarati=Lohit Gujarati
+serif.plain.hindi=Lohit Hindi
+serif.plain.malayalam=Lohit Malayalam
+serif.plain.oriya=Lohit Oriya
+serif.plain.punjabi=Lohit Punjabi
+serif.plain.tamil=Lohit Tamil
+serif.plain.telugu=Lohit Telugu
+serif.plain.sinhala=LKLUG
 
-serif.bold.latin-1=DejaVu LGC Serif Bold
+serif.bold.latin-1=DejaVu Serif Bold
 serif.bold.japanese-x0208=Sazanami Mincho
 serif.bold.korean=Baekmuk Batang
 serif.bold.chinese-big5=AR PL ZenKai Uni
 serif.bold.chinese-gb18030=AR PL ZenKai Uni
+serif.bold.bengali=Lohit Bengali
+serif.bold.gujarati=Lohit Gujarati
+serif.bold.hindi=Lohit Hindi
+serif.bold.malayalam=Lohit Malayalam
+serif.bold.oriya=Lohit Oriya
+serif.bold.punjabi=Lohit Punjabi
+serif.bold.tamil=Lohit Tamil
+serif.bold.telugu=Lohit Telugu
+serif.bold.sinhala=LKLUG
 
-serif.italic.latin-1=DejaVu LGC Serif Oblique
+serif.italic.latin-1=DejaVu Serif Oblique
 serif.italic.japanese-x0208=Sazanami Mincho
 serif.italic.korean=Baekmuk Batang
 serif.italic.chinese-big5=AR PL ZenKai Uni
 serif.italic.chinese-gb18030=AR PL ZenKai Uni
+serif.italic.bengali=Lohit Bengali
+serif.italic.gujarati=Lohit Gujarati
+serif.italic.hindi=Lohit Hindi
+serif.italic.malayalam=Lohit Malayalam
+serif.italic.oriya=Lohit Oriya
+serif.italic.punjabi=Lohit Punjabi
+serif.italic.tamil=Lohit Tamil
+serif.italic.telugu=Lohit Telugu
+serif.italic.sinhala=LKLUG
 
-serif.bolditalic.latin-1=DejaVu LGC Serif Bold Oblique
+serif.bolditalic.latin-1=DejaVu Serif Bold Oblique
 serif.bolditalic.japanese-x0208=Sazanami Mincho
 serif.bolditalic.korean=Baekmuk Batang
 serif.bolditalic.chinese-big5=AR PL ZenKai Uni
 serif.bolditalic.chinese-gb18030=AR PL ZenKai Uni
-
+serif.bolditalic.bengali=Lohit Bengali
+serif.bolditalic.gujarati=Lohit Gujarati
+serif.bolditalic.hindi=Lohit Hindi
+serif.bolditalic.malayalam=Lohit Malayalam
+serif.bolditalic.oriya=Lohit Oriya
+serif.bolditalic.punjabi=Lohit Punjabi
+serif.bolditalic.tamil=Lohit Tamil
+serif.bolditalic.telugu=Lohit Telugu
+serif.bolditalic.sinhala=LKLUG
 
-monospaced.plain.latin-1=DejaVu LGC Sans Mono
+monospaced.plain.latin-1=DejaVu Sans Mono
 monospaced.plain.japanese-x0208=Sazanami Gothic
 monospaced.plain.korean=Baekmuk Gulim
 monospaced.plain.chinese-big5=AR PL ShanHeiSun Uni
 monospaced.plain.chinese-gb18030=AR PL ShanHeiSun Uni
+monospaced.plain.bengali=Lohit Bengali
+monospaced.plain.gujarati=Lohit Gujarati
+monospaced.plain.hindi=Lohit Hindi
+monospaced.plain.malayalam=Lohit Malayalam
+monospaced.plain.oriya=Lohit Oriya
+monospaced.plain.punjabi=Lohit Punjabi
+monospaced.plain.tamil=Lohit Tamil
+monospaced.plain.telugu=Lohit Telugu
+monospaced.plain.sinhala=LKLUG
 
-monospaced.bold.latin-1=DejaVu LGC Sans Mono Bold
+monospaced.bold.latin-1=DejaVu Sans Mono Bold
 monospaced.bold.japanese-x0208=Sazanami Gothic
 monospaced.bold.korean=Baekmuk Gulim
 monospaced.bold.chinese-big5=AR PL ShanHeiSun Uni
 monospaced.bold.chinese-gb18030=AR PL ShanHeiSun Uni
+monospaced.bold.bengali=Lohit Bengali
+monospaced.bold.gujarati=Lohit Gujarati
+monospaced.bold.hindi=Lohit Hindi
+monospaced.bold.malayalam=Lohit Malayalam
+monospaced.bold.oriya=Lohit Oriya
+monospaced.bold.punjabi=Lohit Punjabi
+monospaced.bold.tamil=Lohit Tamil
+monospaced.bold.telugu=Lohit Telugu
+monospaced.bold.sinhala=LKLUG
 
-monospaced.italic.latin-1=DejaVu LGC Sans Mono Oblique
+monospaced.italic.latin-1=DejaVu Sans Mono Oblique
 monospaced.italic.japanese-x0208=Sazanami Gothic
 monospaced.italic.korean=Baekmuk Gulim
 monospaced.italic.chinese-big5=AR PL ShanHeiSun Uni
 monospaced.italic.chinese-gb18030=AR PL ShanHeiSun Uni
+monospaced.italic.bengali=Lohit Bengali
+monospaced.italic.gujarati=Lohit Gujarati
+monospaced.italic.hindi=Lohit Hindi
+monospaced.italic.malayalam=Lohit Malayalam
+monospaced.italic.oriya=Lohit Oriya
+monospaced.italic.punjabi=Lohit Punjabi
+monospaced.italic.tamil=Lohit Tamil
+monospaced.italic.telugu=Lohit Telugu
+monospaced.italic.sinhala=LKLUG
 
-monospaced.bolditalic.latin-1=DejaVu LGC Sans Mono Bold Oblique
+monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
 monospaced.bolditalic.japanese-x0208=Sazanami Gothic
 monospaced.bolditalic.korean=Baekmuk Gulim
 monospaced.bolditalic.chinese-big5=AR PL ShanHeiSun Uni
 monospaced.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni
-
+monospaced.bolditalic.bengali=Lohit Bengali
+monospaced.bolditalic.gujarati=Lohit Gujarati
+monospaced.bolditalic.hindi=Lohit Hindi
+monospaced.bolditalic.malayalam=Lohit Malayalam
+monospaced.bolditalic.oriya=Lohit Oriya
+monospaced.bolditalic.punjabi=Lohit Punjabi
+monospaced.bolditalic.tamil=Lohit Tamil
+monospaced.bolditalic.telugu=Lohit Telugu
+monospaced.bolditalic.sinhala=LKLUG
 
-dialoginput.plain.latin-1=DejaVu LGC Sans Mono
+dialoginput.plain.latin-1=DejaVu Sans Mono
 dialoginput.plain.japanese-x0208=Sazanami Gothic
 dialoginput.plain.korean=Baekmuk Gulim
 dialoginput.plain.chinese-big5=AR PL ShanHeiSun Uni
 dialoginput.plain.chinese-gb18030=AR PL ShanHeiSun Uni
+dialoginput.plain.bengali=Lohit Bengali
+dialoginput.plain.gujarati=Lohit Gujarati
+dialoginput.plain.hindi=Lohit Hindi
+dialoginput.plain.malayalam=Lohit Malayalam
+dialoginput.plain.oriya=Lohit Oriya
+dialoginput.plain.punjabi=Lohit Punjabi
+dialoginput.plain.tamil=Lohit Tamil
+dialoginput.plain.telugu=Lohit Telugu
+dialoginput.plain.sinhala=LKLUG
 
-dialoginput.bold.latin-1=DejaVu LGC Sans Mono Bold
+dialoginput.bold.latin-1=DejaVu Sans Mono Bold
 dialoginput.bold.japanese-x0208=Sazanami Gothic
 dialoginput.bold.korean=Baekmuk Gulim
 dialoginput.bold.chinese-big5=AR PL ShanHeiSun Uni
 dialoginput.bold.chinese-gb18030=AR PL ShanHeiSun Uni
+dialoginput.bold.bengali=Lohit Bengali
+dialoginput.bold.gujarati=Lohit Gujarati
+dialoginput.bold.hindi=Lohit Hindi
+dialoginput.bold.malayalam=Lohit Malayalam
+dialoginput.bold.oriya=Lohit Oriya
+dialoginput.bold.punjabi=Lohit Punjabi
+dialoginput.bold.tamil=Lohit Tamil
+dialoginput.bold.telugu=Lohit Telugu
+dialoginput.bold.sinhala=LKLUG
 
-dialoginput.italic.latin-1=DejaVu LGC Sans Mono Oblique
+dialoginput.italic.latin-1=DejaVu Sans Mono Oblique
 dialoginput.italic.japanese-x0208=Sazanami Gothic
 dialoginput.italic.korean=Baekmuk Gulim
 dialoginput.italic.chinese-big5=AR PL ShanHeiSun Uni
 dialoginput.italic.chinese-gb18030=AR PL ShanHeiSun Uni
+dialoginput.italic.bengali=Lohit Bengali
+dialoginput.italic.gujarati=Lohit Gujarati
+dialoginput.italic.hindi=Lohit Hindi
+dialoginput.italic.malayalam=Lohit Malayalam
+dialoginput.italic.oriya=Lohit Oriya
+dialoginput.italic.punjabi=Lohit Punjabi
+dialoginput.italic.tamil=Lohit Tamil
+dialoginput.italic.telugu=Lohit Telugu
+dialoginput.italic.sinhala=LKLUG
 
-dialoginput.bolditalic.latin-1=DejaVu LGC Sans Mono Bold Oblique
+dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
 dialoginput.bolditalic.japanese-x0208=Sazanami Gothic
 dialoginput.bolditalic.korean=Baekmuk Gulim
 dialoginput.bolditalic.chinese-big5=AR PL ShanHeiSun Uni
 dialoginput.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni
+dialoginput.bolditalic.bengali=Lohit Bengali
+dialoginput.bolditalic.gujarati=Lohit Gujarati
+dialoginput.bolditalic.hindi=Lohit Hindi
+dialoginput.bolditalic.malayalam=Lohit Malayalam
+dialoginput.bolditalic.oriya=Lohit Oriya
+dialoginput.bolditalic.punjabi=Lohit Punjabi
+dialoginput.bolditalic.tamil=Lohit Tamil
+dialoginput.bolditalic.telugu=Lohit Telugu
+dialoginput.bolditalic.sinhala=LKLUG
 
 # Search Sequences
 
@@ -162,28 +338,40 @@
 sequence.allfonts.x-euc-jp-linux=japanese-x0208,latin-1
 sequence.allfonts.EUC-KR=korean,latin-1
 sequence.allfonts.GB18030=chinese-gb18030,latin-1
-sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean
+sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
 
 # Font File Names
 
-filename.DejaVu_LGC_Sans=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf
-filename.DejaVu_LGC_Sans_Bold=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans-Bold.ttf
-filename.DejaVu_LGC_Sans_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans-Oblique.ttf
-filename.DejaVu_LGC_Sans_Bold_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans-BoldOblique.ttf
+filename.DejaVu_Sans=/usr/share/fonts/dejavu/DejaVuSans.ttf
+filename.DejaVu_Sans_Bold=/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf
+filename.DejaVu_Sans_Oblique=/usr/share/fonts/dejavu/DejaVuSans-Oblique.ttf
+filename.DejaVu_Sans_Bold_Oblique=/usr/share/fonts/dejavu/DejaVuSans-BoldOblique.ttf
 
-filename.DejaVu_LGC_Sans_Mono=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono.ttf
-filename.DejaVu_LGC_Sans_Mono_Bold=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono-Bold.ttf
-filename.DejaVu_LGC_Sans_Mono_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono-Oblique.ttf
-filename.DejaVu_LGC_Sans_Mono_Bold_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono-BoldOblique.ttf
+filename.DejaVu_Sans_Mono=/usr/share/fonts/dejavu/DejaVuSansMono.ttf
+filename.DejaVu_Sans_Mono_Bold=/usr/share/fonts/dejavu/DejaVuSansMono-Bold.ttf
+filename.DejaVu_Sans_Mono_Oblique=/usr/share/fonts/dejavu/DejaVuSansMono-Oblique.ttf
+filename.DejaVu_Sans_Mono_Bold_Oblique=/usr/share/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf
+
+filename.DejaVu_Serif=/usr/share/fonts/dejavu/DejaVuSerif.ttf
+filename.DejaVu_Serif_Bold=/usr/share/fonts/dejavu/DejaVuSerif-Bold.ttf
+filename.DejaVu_Serif_Oblique=/usr/share/fonts/dejavu/DejaVuSerif-Oblique.ttf
+filename.DejaVu_Serif_Bold_Oblique=/usr/share/fonts/dejavu/DejaVuSerif-BoldOblique.ttf
 
-filename.DejaVu_LGC_Serif=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif.ttf
-filename.DejaVu_LGC_Serif_Bold=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif-Bold.ttf
-filename.DejaVu_LGC_Serif_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif-Oblique.ttf
-filename.DejaVu_LGC_Serif_Bold_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif-BoldOblique.ttf
+filename.Sazanami_Gothic=/usr/share/fonts/sazanami-fonts-gothic/sazanami-gothic.ttf
+filename.Sazanami_Mincho=/usr/share/fonts/sazanami-fonts-mincho/sazanami-mincho.ttf
+filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/cjkunifonts-uming/uming.ttc
+filename.AR_PL_ZenKai_Uni=/usr/share/fonts/cjkunifonts-ukai/ukai.ttc
+filename.Baekmuk_Gulim=/usr/share/fonts/baekmuk-ttf-gulim/gulim.ttf
+filename.Baekmuk_Batang=/usr/share/fonts/baekmuk-ttf-batang/batang.ttf
 
-filename.Sazanami_Gothic=/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
-filename.Sazanami_Mincho=/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
-filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/chinese/TrueType/uming.ttf
-filename.AR_PL_ZenKai_Uni=/usr/share/fonts/chinese/TrueType/ukai.ttf
-filename.Baekmuk_Gulim=/usr/share/fonts/korean/TrueType/gulim.ttf
-filename.Baekmuk_Batang=/usr/share/fonts/korean/TrueType/batang.ttf
+filename.Lohit_Bengali=/usr/share/fonts/lohit-bengali/lohit_bn.ttf
+filename.Lohit_Gujarati=/usr/share/fonts/lohit-gujarati/lohit_gu.ttf
+filename.Lohit_Hindi=/usr/share/fonts/lohit-hindi/lohit_hi.ttf
+filename.Lohit_Kannda=/usr/share/fonts/lohit-kannada/lohit_kn.ttf
+filename.Lohit_Malayalam=/usr/share/fonts/lohit-malayalam/lohit_ml.ttf
+filename.Lohit_Oriya=/usr/share/fonts/lohit-oriya/lohit_or.ttf
+filename.Lohit_Punjabi=/usr/share/fonts/lohit-punjabi/lohit_pa.ttf
+filename.Lohit_Tamil=/usr/share/fonts/lohit-tamil/lohit_ta.ttf
+filename.Lohit_Telugu=/usr/share/fonts/lohit-telugu/lohit_te.ttf
+filename.LKLUG=/usr/share/fonts/lklug/lklug.ttf
+
--- a/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties	Wed Jul 05 17:09:51 2017 +0200
@@ -26,106 +26,253 @@
 
 # Version
 
-# Uses Ubuntu 6.10 (Edgy) fonts and file paths.
+# Uses Ubuntu 8.04 (hardy), Debian 6.0 (Squeeze) (and more recent releases) fonts and file paths.
 version=1
 
 # Component Font Mappings
 
-dialog.plain.latin-1=DejaVu Sans
-dialog.plain.japanese-x0208=Kochi Gothic
-dialog.plain.korean=Baekmuk Dotum
-
-dialog.bold.latin-1=DejaVu Sans Bold
-dialog.bold.japanese-x0208=Kochi Gothic
-dialog.bold.korean=Baekmuk Dotum
-
-dialog.italic.latin-1=DejaVu Sans Oblique
-dialog.italic.japanese-x0208=Kochi Gothic
-dialog.italic.korean=Baekmuk Dotum
-
-dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique
-dialog.bolditalic.japanese-x0208=Kochi Gothic
-dialog.bolditalic.korean=Baekmuk Dotum
+# Chinese fonts
+allfonts.umingcn=AR PL UMing CN
+#allfonts.umingcn.motif=AR PL UMing CN
+allfonts.uminghk=AR PL UMing HK
+#allfonts.uminghk.motif=AR PL UMing HK
+allfonts.umingtw=AR PL UMing TW
+#allfonts.umingtw.motif=AR PL UMing TW
+allfonts.wqy-zenhei=WenQuanYi Zen Hei
+#allfonts.wqy-zenhei.motif=WenQuanYi Zen Hei
+allfonts.shanheisun=AR PL ShanHeiSun Uni
+#allfonts.shanheisun.motif=AR PL ShanHeiSun Uni
 
-
-sansserif.plain.latin-1=DejaVu Sans
-sansserif.plain.japanese-x0208=Kochi Gothic
-sansserif.plain.korean=Baekmuk Dotum
-
-sansserif.bold.latin-1=DejaVu Sans Bold
-sansserif.bold.japanese-x0208=Kochi Gothic
-sansserif.bold.korean=Baekmuk Dotum
-
-sansserif.italic.latin-1=DejaVu Sans Oblique
-sansserif.italic.japanese-x0208=Kochi Gothic
-sansserif.italic.korean=Baekmuk Dotum
-
-sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique
-sansserif.bolditalic.japanese-x0208=Kochi Gothic
-sansserif.bolditalic.korean=Baekmuk Dotum
+# Indic scripts
+allfonts.bengali=Lohit Bengali
+allfonts.gujarati=Lohit Gujarati
+allfonts.hindi=Lohit Hindi
+#allfonts.malayalam=Lohit Malayalam
+allfonts.oriya=Lohit Oriya
+allfonts.punjabi=Lohit Punjabi
+allfonts.tamil=Lohit Tamil
+allfonts.telugu=Lohit Telugu
+allfonts.sinhala=LKLUG
 
 
 serif.plain.latin-1=DejaVu Serif
-serif.plain.japanese-x0208=Kochi Mincho
-serif.plain.korean=Baekmuk Batang
+#serif.plain.latin-1.motif=LuxiSerif-Regular
+serif.plain.japanese-kochi=Kochi Mincho
+serif.plain.japanese-sazanami=Sazanami Mincho
+serif.plain.japanese-vlgothic=Sazanami Mincho
+serif.plain.korean-baekmuk=Baekmuk Batang
+#serif.plain.korean-baekmuk.motif=Baekmuk Batang
+serif.plain.korean-un=UnBatang
+#serif.plain.korean-un.motif=UnBatang
 
 serif.bold.latin-1=DejaVu Serif Bold
-serif.bold.japanese-x0208=Kochi Mincho
-serif.bold.korean=Baekmuk Batang
+#serif.bold.latin-1.motif=LuxiSerif-Bold
+serif.bold.japanese-kochi=Kochi Mincho
+serif.bold.japanese-sazanami=Sazanami Mincho
+serif.bold.japanese-vlgothic=Sazanami Mincho
+serif.bold.korean-baekmuk=Baekmuk Batang
+#serif.bold.korean-baekmuk.motif=Baekmuk Batang
+serif.bold.korean-un=UnBatang Bold
+#serif.bold.korean-un.motif=UnBatang Bold
 
 serif.italic.latin-1=DejaVu Serif Oblique
-serif.italic.japanese-x0208=Kochi Mincho
-serif.italic.korean=Baekmuk Batang
+#serif.italic.latin-1.motif=LuxiSerif-Oblique
+serif.italic.japanese-kochi=Kochi Mincho
+serif.italic.japanese-sazanami=Sazanami Mincho
+serif.italic.japanese-vlgothic=Sazanami Mincho
+serif.italic.korean-baekmuk=Baekmuk Batang
+#serif.italic.korean-baekmuk.motif=Baekmuk Batang
+serif.italic.korean-un=UnBatang
+#serif.italic.korean-un.motif=UnBatang
 
 serif.bolditalic.latin-1=DejaVu Serif Bold Oblique
-serif.bolditalic.japanese-x0208=Kochi Mincho
-serif.bolditalic.korean=Baekmuk Batang
+#serif.bolditalic.latin-1.motif=LuxiSerif-BoldOblique
+serif.bolditalic.japanese-kochi=Kochi Mincho
+serif.bolditalic.japanese-sazanami=Sazanami Mincho
+serif.bolditalic.japanese-vlgothic=Sazanami Mincho
+serif.bolditalic.korean-baekmuk=Baekmuk Batang
+#serif.bolditalic.korean-baekmuk.motif=Baekmuk Batang
+serif.bolditalic.korean-un=UnBatang Bold
+#serif.bolditalic.korean-un.motif=UnBatang Bold
+
+sansserif.plain.latin-1=DejaVu Sans
+#sansserif.plain.latin-1.motif=LuxiSans-Regular
+sansserif.plain.japanese-kochi=Kochi Gothic
+sansserif.plain.japanese-sazanami=Sazanami Gothic
+sansserif.plain.japanese-vlgothic=VL PGothic
+sansserif.plain.korean-baekmuk=Baekmuk Gulim
+#sansserif.plain.korean-baekmuk.motif=Baekmuk Gulim
+sansserif.plain.korean-un=UnDotum
+#sansserif.plain.korean-un.motif=UnDotum
 
+sansserif.bold.latin-1=DejaVu Sans Bold
+#sansserif.bold.latin-1.motif=LuxiSans-Bold
+sansserif.bold.japanese-kochi=Kochi Gothic
+sansserif.bold.japanese-sazanami=Sazanami Gothic
+sansserif.bold.japanese-vlgothic=VL PGothic
+sansserif.bold.korean-baekmuk=Baekmuk Gulim
+#sansserif.bold.korean-baekmuk.motif=Baekmuk Gulim
+sansserif.bold.korean-un=UnDotum Bold
+#sansserif.bold.korean-un.motif=UnDotum Bold
+
+sansserif.italic.latin-1=DejaVu Sans Oblique
+#sansserif.italic.latin-1.motif=LuxiSans-Oblique
+sansserif.italic.japanese-kochi=Kochi Gothic
+sansserif.italic.japanese-sazanami=Sazanami Gothic
+sansserif.italic.japanese-vlgothic=VL PGothic
+sansserif.italic.korean-baekmuk=Baekmuk Gulim
+#sansserif.italic.korean-baekmuk.motif=Baekmuk Gulim
+sansserif.italic.korean-un=UnDotum
+#sansserif.italic.korean-un.motif=UnDotum
+
+sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique
+#sansserif.bolditalic.latin-1.motif=LuxiSans-BoldOblique
+sansserif.bolditalic.japanese-kochi=Kochi Gothic
+sansserif.bolditalic.japanese-sazanami=Sazanami Gothic
+sansserif.bolditalic.japanese-vlgothic=VL PGothic
+sansserif.bolditalic.korean-baekmuk=Baekmuk Gulim
+#sansserif.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
+sansserif.bolditalic.korean-un=UnDotum Bold
+#sansserif.bolditalic.korean-un.motif=UnDotum Bold
 
 monospaced.plain.latin-1=DejaVu Sans Mono
-monospaced.plain.japanese-x0208=Kochi Gothic
-monospaced.plain.korean=Baekmuk Dotum
+#monospaced.plain.latin-1.motif=LuxiMono-Regular
+monospaced.plain.japanese-kochi=Kochi Gothic
+monospaced.plain.japanese-sazanami=Sazanami Gothic
+monospaced.plain.japanese-vlgothic=VL Gothic
+monospaced.plain.korean-baekmuk=Baekmuk Gulim
+#monospaced.plain.korean-baekmuk.motif=Baekmuk Gulim
+monospaced.plain.korean-un=UnDotum
+#monospaced.plain.korean-un.motif=UnDotum
 
 monospaced.bold.latin-1=DejaVu Sans Mono Bold
-monospaced.bold.japanese-x0208=Kochi Gothic
-monospaced.bold.korean=Baekmuk Dotum
+#monospaced.bold.latin-1.motif=LuxiMono-Bold
+monospaced.bold.japanese-kochi=Kochi Gothic
+monospaced.bold.japanese-sazanami=Sazanami Gothic
+monospaced.bold.japanese-vlgothic=VL Gothic
+monospaced.bold.korean-baekmuk=Baekmuk Gulim
+#monospaced.bold.korean-baekmuk.motif=Baekmuk Gulim
+monospaced.bold.korean-un=UnDotum Bold
+#monospaced.bold.korean-un.motif=UnDotum Bold
 
 monospaced.italic.latin-1=DejaVu Sans Mono Oblique
-monospaced.italic.japanese-x0208=Kochi Gothic
-monospaced.italic.korean=Baekmuk Dotum
+#monospaced.italic.latin-1.motif=LuxiMono-Oblique
+monospaced.italic.japanese-kochi=Kochi Gothic
+monospaced.italic.japanese-sazanami=Sazanami Gothic
+monospaced.italic.japanese-vlgothic=VL Gothic
+monospaced.italic.korean-baekmuk=Baekmuk Gulim
+#monospaced.italic.korean-baekmuk.motif=Baekmuk Gulim
+monospaced.italic.korean-un=UnDotum
+#monospaced.italic.korean-un.motif=UnDotum
 
 monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
-monospaced.bolditalic.japanese-x0208=Kochi Gothic
-monospaced.bolditalic.korean=Baekmuk Dotum
+#monospaced.bolditalic.latin-1.motif=LuxiMono-BoldOblique
+monospaced.bolditalic.japanese-kochi=Kochi Gothic
+monospaced.bolditalic.japanese-sazanami=Sazanami Gothic
+monospaced.bolditalic.japanese-vlgothic=VL Gothic
+monospaced.bolditalic.korean-baekmuk=Baekmuk Gulim
+#monospaced.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
+monospaced.bolditalic.korean-un=UnDotum Bold
+#monospaced.bolditalic.korean-un.motif=UnDotum Bold
+
+dialog.plain.latin-1=DejaVu Sans
+#dialog.plain.latin-1.motif=LuxiSans-Regular
+dialog.plain.japanese-kochi=Kochi Gothic
+dialog.plain.japanese-sazanami=Sazanami Gothic
+dialog.plain.japanese-vlgothic=VL PGothic
+dialog.plain.korean-baekmuk=Baekmuk Gulim
+#dialog.plain.korean-baekmuk.motif=Baekmuk Gulim
+dialog.plain.korean-un=UnDotum
+#dialog.plain.korean-un.motif=UnDotum
 
+dialog.bold.latin-1=DejaVu Sans Bold
+#dialog.bold.latin-1.motif=LuxiSans-Bold
+dialog.bold.japanese-kochi=Kochi Gothic
+dialog.bold.japanese-sazanami=Sazanami Gothic
+dialog.bold.japanese-vlgothic=VL PGothic
+dialog.bold.korean-baekmuk=Baekmuk Gulim
+#dialog.bold.korean-baekmuk.motif=Baekmuk Gulim
+dialog.bold.korean-un=UnDotum Bold
+#dialog.bold.korean-un.motif=UnDotum Bold
+
+dialog.italic.latin-1=DejaVu Sans Oblique
+#dialog.italic.latin-1.motif=LuxiSans-Oblique
+dialog.italic.japanese-kochi=Kochi Gothic
+dialog.italic.japanese-sazanami=Sazanami Gothic
+dialog.italic.japanese-vlgothic=VL PGothic
+dialog.italic.korean-baekmuk=Baekmuk Gulim
+#dialog.italic.korean-baekmuk.motif=Baekmuk Gulim
+dialog.italic.korean-un=UnDotum
+#dialog.italic.korean-un.motif=UnDotum
+
+dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique
+#dialog.bolditalic.latin-1.motif=LuxiSans-BoldOblique
+dialog.bolditalic.japanese-kochi=Kochi Gothic
+dialog.bolditalic.japanese-sazanami=Sazanami Gothic
+dialog.bolditalic.japanese-vlgothic=VL PGothic
+dialog.bolditalic.korean-baekmuk=Baekmuk Gulim
+#dialog.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
+dialog.bolditalic.korean-un=UnDotum Bold
+#dialog.bolditalic.korean-un.motif=UnDotum Bold
 
 dialoginput.plain.latin-1=DejaVu Sans Mono
-dialoginput.plain.japanese-x0208=Kochi Gothic
-dialoginput.plain.korean=Baekmuk Dotum
+#dialoginput.plain.latin-1.motif=LuxiMono-Regular
+dialoginput.plain.japanese-kochi=Kochi Gothic
+dialoginput.plain.japanese-sazanami=Sazanami Gothic
+dialoginput.plain.japanese-vlgothic=VL Gothic
+dialoginput.plain.korean-baekmuk=Baekmuk Gulim
+#dialoginput.plain.korean-baekmuk.motif=Baekmuk Gulim
+dialoginput.plain.korean-un=UnDotum
+#dialoginput.plain.korean-un.motif=UnDotum
 
 dialoginput.bold.latin-1=DejaVu Sans Mono Bold
-dialoginput.bold.japanese-x0208=Kochi Gothic
-dialoginput.bold.korean=Baekmuk Dotum
+#dialoginput.bold.latin-1.motif=LuxiMono-Bold
+dialoginput.bold.japanese-kochi=Kochi Gothic
+dialoginput.bold.japanese-sazanami=Sazanami Gothic
+dialoginput.bold.japanese-vlgothic=VL Gothic
+dialoginput.bold.korean-baekmuk=Baekmuk Gulim
+#dialoginput.bold.korean-baekmuk.motif=Baekmuk Gulim
+dialoginput.bold.korean-un=UnDotum Bold
+#dialoginput.bold.korean-un.motif=UnDotum Bold
 
 dialoginput.italic.latin-1=DejaVu Sans Mono Oblique
-dialoginput.italic.japanese-x0208=Kochi Gothic
-dialoginput.italic.korean=Baekmuk Dotum
+#dialoginput.italic.latin-1.motif=LuxiMono-Oblique
+dialoginput.italic.japanese-kochi=Kochi Gothic
+dialoginput.italic.japanese-sazanami=Sazanami Gothic
+dialoginput.italic.japanese-vlgothic=VL Gothic
+dialoginput.italic.korean-baekmuk=Baekmuk Gulim
+#dialoginput.italic.korean-baekmuk.motif=Baekmuk Gulim
+dialoginput.italic.korean-un=UnDotum
+#dialoginput.italic.korean-un.motif=UnDotum
 
 dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
-dialoginput.bolditalic.japanese-x0208=Kochi Gothic
-dialoginput.bolditalic.korean=Baekmuk Dotum
-
-allfonts.chinese-big5=AR PL ZenKai Uni
-allfonts.chinese-gb18030=AR PL ZenKai Uni
+#dialoginput.bolditalic.latin-1.motif=LuxiMono-BoldOblique
+dialoginput.bolditalic.japanese-kochi=Kochi Gothic
+dialoginput.bolditalic.japanese-sazanami=Sazanami Gothic
+dialoginput.bolditalic.japanese-vlgothic=VL Gothic
+dialoginput.bolditalic.korean-baekmuk=Baekmuk Gulim
+#dialoginput.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
+dialoginput.bolditalic.korean-un=UnDotum Bold
+#dialoginput.bolditalic.korean-un.motif=UnDotum Bold
 
 # Search Sequences
 
 sequence.allfonts=latin-1
-sequence.allfonts.Big5=chinese-big5,latin-1
-sequence.allfonts.x-euc-jp-linux=japanese-x0208,latin-1
-sequence.allfonts.EUC-KR=korean,latin-1
-sequence.allfonts.GB18030=chinese-gb18030,latin-1
-sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean
+sequence.allfonts.GB18030=latin-1,umingcn,shanheisun,wqy-zenhei
+sequence.allfonts.GB2312=latin-1,umingcn,shanheisun,wqy-zenhei
+sequence.allfonts.GBK=latin-1,umingcn,shanheisun,wqy-zenhei
+sequence.allfonts.x-euc-jp-linux=latin-1,japanese-vlgothic,japanese-sazanami,japanese-kochi
+sequence.allfonts.EUC-KR=latin-1,korean-un,korean-baekmuk
+sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-zenhei
+sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-zenhei
+#sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
+sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
+
+# Exclusion Ranges
+
+exclusion.japanese-kochi=0390-03d6,2200-22ef,2701-27be
+exclusion.japanese-sazanami=0390-03d6,2200-22ef,2701-27be
+exclusion.japanese-vlgothic=0390-03d6,2200-22ef,2701-27be
 
 # Font File Names
 
@@ -144,8 +291,58 @@
 filename.DejaVu_Serif_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Oblique.ttf
 filename.DejaVu_Serif_Bold_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldOblique.ttf
 
-filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic-subst.ttf
-filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho-subst.ttf
-filename.AR_PL_ZenKai_Uni=/usr/share/fonts//truetype/arphic/ukai.ttf
-filename.Baekmuk_Dotum=/usr/share/fonts/truetype/baekmuk/dotum.ttf
+filename.AR_PL_UMing_CN=/usr/share/fonts/truetype/arphic/uming.ttc
+filename.AR_PL_UMing_HK=/usr/share/fonts/truetype/arphic/uming.ttc
+filename.AR_PL_UMing_TW=/usr/share/fonts/truetype/arphic/uming.ttc
+filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/truetype/arphic/uming.ttf
+
+filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf
 filename.Baekmuk_Batang=/usr/share/fonts/truetype/baekmuk/batang.ttf
+filename.UnBatang=/usr/share/fonts/truetype/unfonts/UnBatang.ttf
+filename.UnBatang_Bold=/usr/share/fonts/truetype/unfonts/UnBatangBold.ttf
+filename.Baekmuk_Gulim=/usr/share/fonts/truetype/baekmuk/gulim.ttf
+filename.UnDotum=/usr/share/fonts/truetype/unfonts/UnDotum.ttf
+filename.UnDotum_Bold=/usr/share/fonts/truetype/unfonts/UnDotumBold.ttf
+filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic.ttf
+filename.Sazanami_Gothic=/usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf
+filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho.ttf
+filename.Sazanami_Mincho=/usr/share/fonts/truetype/sazanami/sazanami-mincho.ttf
+filename.VL_Gothic=/usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf
+filename.VL_PGothic=/usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf
+
+filename.Lohit_Bengali=/usr/share/fonts/truetype/ttf-bengali-fonts/lohit_bn.ttf
+filename.Lohit_Gujarati=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_gu.ttf
+filename.Lohit_Hindi=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_hi.ttf
+filename.Lohit_Kannda=/usr/share/fonts/truetype/ttf-kannada-fonts/lohit_kn.ttf
+#filename.Lohit_Malayalam=/usr/share/fonts/lohit-malayalam/lohit_ml.ttf
+filename.Lohit_Oriya=/usr/share/fonts/truetype/ttf-oriya-fonts/lohit_or.ttf
+filename.Lohit_Punjabi=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_pa.ttf
+filename.Lohit_Tamil=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_ta.ttf
+filename.Lohit_Telugu=/usr/share/fonts/truetype/ttf-telugu-fonts/lohit_te.ttf
+filename.LKLUG=/usr/share/fonts/truetype/ttf-sinhala-lklug/lklug.ttf
+
+filename.LuxiSans-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisr.ttf
+filename.LuxiSans-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisb.ttf
+filename.LuxiSans-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisri.ttf
+filename.LuxiSans-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisbi.ttf
+filename.LuxiMono-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximr.ttf
+filename.LuxiMono-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximb.ttf
+filename.LuxiMono-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximri.ttf
+filename.LuxiMono-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximbi.ttf
+filename.LuxiSerif-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirr.ttf
+filename.LuxiSerif-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirb.ttf
+filename.LuxiSerif-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirri.ttf
+filename.LuxiSerif-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirbi.ttf
+
+# AWT X11 font paths
+awtfontpath.latin-1=/usr/share/fonts/X11/Type1
+awtfontpath.umingcn=/usr/share/fonts/truetype/arphic
+awtfontpath.uminghk=/usr/share/fonts/truetype/arphic
+awtfontpath.umingtw=/usr/share/fonts/truetype/arphic
+awtfontpath.shanheisun=/usr/share/fonts/truetype/arphic
+awtfontpath.wqy-zenhei=/usr/share/fonts/truetype/wqy
+awtfontpath.japanese-kochi=/usr/share/fonts/truetype/kochi
+awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/sazanami
+awtfontpath.japanese-vlgothic=/usr/share/fonts/truetype/vlgothic
+awtfontpath.korean-baekmuk=/usr/share/fonts/truetype/baekmuk
+awtfontpath.korean-un=/usr/share/fonts/truetype/unfonts
--- a/jdk/src/solaris/classes/sun/awt/fontconfigs/solaris.fontconfig.properties	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/solaris/classes/sun/awt/fontconfigs/solaris.fontconfig.properties	Wed Jul 05 17:09:51 2017 +0200
@@ -352,7 +352,7 @@
 
 sequence.allfonts.Big5=latin-1,chinese-big5,dingbats,symbol
 
-sequence.allfonts.Big5-HKSCS=latin-1,chinese-big5,chinese-hkscs,dingbats,symbol
+sequence.allfonts.Big5-HKSCS-2001=latin-1,chinese-big5,chinese-hkscs,dingbats,symbol
 
 sequence.allfonts.windows-1251=cyrillic-cp1251,latin-1,dingbats,symbol
 
--- a/jdk/src/solaris/native/java/lang/java_props_md.c	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/solaris/native/java/lang/java_props_md.c	Wed Jul 05 17:09:51 2017 +0200
@@ -337,22 +337,24 @@
                 std_encoding = "EUC-JP-LINUX";
             }
 #else
-            /* For Solaris use customized vendor defined character
-             * customized EUC-JP converter
-             */
             if (strcmp(p,"eucJP") == 0) {
+                /* For Solaris use customized vendor defined character
+                 * customized EUC-JP converter
+                 */
                 std_encoding = "eucJP-open";
-            }
-#endif
-#ifndef __linux__
-            /*
-             * Remap the encoding string to Big5_Solaris which augments
-             * the default converter for Solaris Big5 locales to include
-             * seven additional ideographic characters beyond those included
-             * in the Java "Big5" converter.
-             */
-            if (strcmp(p, "Big5") == 0) {
-                    std_encoding = "Big5_Solaris";
+            } else if (strcmp(p, "Big5") == 0 || strcmp(p, "BIG5") == 0) {
+                /*
+                 * Remap the encoding string to Big5_Solaris which augments
+                 * the default converter for Solaris Big5 locales to include
+                 * seven additional ideographic characters beyond those included
+                 * in the Java "Big5" converter.
+                 */
+                std_encoding = "Big5_Solaris";
+            } else if (strcmp(p, "Big5-HKSCS") == 0) {
+                /*
+                 * Solaris uses HKSCS2001
+                 */
+                std_encoding = "Big5-HKSCS-2001";
             }
 #endif
             sprops.encoding = std_encoding;
@@ -414,3 +416,9 @@
 
     return &sprops;
 }
+
+jstring
+GetStringPlatform(JNIEnv *env, nchar* cstr)
+{
+    return JNU_NewStringPlatform(env, cstr);
+}
--- a/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c	Wed Jul 05 17:09:51 2017 +0200
@@ -1143,7 +1143,7 @@
     jobject addr;
     int i;
 
-    if (ni_addrsID == NULL) {
+    if (ni_addrsID == NULL || ia_addressID == NULL) {
         jclass c = (*env)->FindClass(env, "java/net/NetworkInterface");
         CHECK_NULL(c);
         ni_addrsID = (*env)->GetFieldID(env, c, "addrs",
--- a/jdk/src/windows/classes/sun/awt/windows/fontconfig.properties	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/windows/classes/sun/awt/windows/fontconfig.properties	Wed Jul 05 17:09:51 2017 +0200
@@ -210,6 +210,12 @@
 sequence.dialog.x-MS950-HKSCS=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
 sequence.dialoginput.x-MS950-HKSCS=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
 
+sequence.serif.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.sansserif.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.monospaced.x-MS950-HKSCS-XP=chinese-ms950,alphabetic,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.dialog.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.dialoginput.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+
 sequence.allfonts.UTF-8.hi=alphabetic/1252,devanagari,dingbats,symbol
 sequence.allfonts.UTF-8.ja=alphabetic,japanese,devanagari,dingbats,symbol
 
--- a/jdk/src/windows/native/java/lang/ProcessImpl_md.c	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/windows/native/java/lang/ProcessImpl_md.c	Wed Jul 05 17:09:51 2017 +0200
@@ -145,11 +145,11 @@
     HANDLE errWrite = INVALID_HANDLE_VALUE;
     SECURITY_ATTRIBUTES sa;
     PROCESS_INFORMATION pi;
-    STARTUPINFO si;
-    LPTSTR  pcmd      = NULL;
-    LPCTSTR pdir      = NULL;
-    LPVOID  penvBlock = NULL;
-    jlong  *handles   = NULL;
+    STARTUPINFOW si;
+    const jchar*  pcmd = NULL;
+    const jchar*  pdir = NULL;
+    const jchar*  penvBlock = NULL;
+    jlong  *handles = NULL;
     jlong ret = 0;
     OSVERSIONINFO ver;
     jboolean onNT = JNI_FALSE;
@@ -161,22 +161,17 @@
         onNT = JNI_TRUE;
 
     assert(cmd != NULL);
-    pcmd = (LPTSTR) JNU_GetStringPlatformChars(env, cmd, NULL);
+    pcmd = (*env)->GetStringChars(env, cmd, NULL);
     if (pcmd == NULL) goto Catch;
 
     if (dir != 0) {
-        pdir = (LPCTSTR) JNU_GetStringPlatformChars(env, dir, NULL);
+        pdir = (*env)->GetStringChars(env, dir, NULL);
         if (pdir == NULL) goto Catch;
-        pdir = (LPCTSTR) JVM_NativePath((char *)pdir);
     }
-
     if (envBlock != NULL) {
-        penvBlock = onNT
-            ? (LPVOID) ((*env)->GetStringChars(env, envBlock, NULL))
-            : (LPVOID) JNU_GetStringPlatformChars(env, envBlock, NULL);
+        penvBlock = ((*env)->GetStringChars(env, envBlock, NULL));
         if (penvBlock == NULL) goto Catch;
     }
-
     assert(stdHandles != NULL);
     handles = (*env)->GetLongArrayElements(env, stdHandles, NULL);
     if (handles == NULL) goto Catch;
@@ -237,30 +232,17 @@
     if (onNT)
         processFlag = CREATE_NO_WINDOW | CREATE_UNICODE_ENVIRONMENT;
     else
-        processFlag = selectProcessFlag(env, cmd);
-
-    /* Java and Windows are both pure Unicode systems at heart.
-     * Windows has both a legacy byte-based API and a 16-bit Unicode
-     * "W" API.  The Right Thing here is to call CreateProcessW, since
-     * that will allow all process-related information like command
-     * line arguments to be passed properly to the child.  We don't do
-     * that currently, since we would first have to have "W" versions
-     * of JVM_NativePath and perhaps other functions.  In the
-     * meantime, we can call CreateProcess with the magic flag
-     * CREATE_UNICODE_ENVIRONMENT, which passes only the environment
-     * in "W" mode.  We will fix this later. */
-
-    ret = CreateProcess(0,           /* executable name */
-                        pcmd,        /* command line */
-                        0,           /* process security attribute */
-                        0,           /* thread security attribute */
-                        TRUE,        /* inherits system handles */
-                        processFlag, /* selected based on exe type */
-                        penvBlock,   /* environment block */
-                        pdir,        /* change to the new current directory */
-                        &si,         /* (in)  startup information */
-                        &pi);        /* (out) process information */
-
+        processFlag = selectProcessFlag(env, cmd) | CREATE_UNICODE_ENVIRONMENT;
+    ret = CreateProcessW(0,                /* executable name */
+                         (LPWSTR)pcmd,     /* command line */
+                         0,                /* process security attribute */
+                         0,                /* thread security attribute */
+                         TRUE,             /* inherits system handles */
+                         processFlag,      /* selected based on exe type */
+                         (LPVOID)penvBlock,/* environment block */
+                         (LPCWSTR)pdir,    /* change to the new current directory */
+                         &si,              /* (in)  startup information */
+                         &pi);             /* (out) process information */
     if (!ret) {
         win32Error(env, "CreateProcess");
         goto Catch;
@@ -276,18 +258,13 @@
     closeSafely(errWrite);
 
     if (pcmd != NULL)
-        JNU_ReleaseStringPlatformChars(env, cmd, (char *) pcmd);
+        (*env)->ReleaseStringChars(env, cmd, pcmd);
     if (pdir != NULL)
-        JNU_ReleaseStringPlatformChars(env, dir, (char *) pdir);
-    if (penvBlock != NULL) {
-        if (onNT)
-            (*env)->ReleaseStringChars(env, envBlock, (jchar *) penvBlock);
-        else
-            JNU_ReleaseStringPlatformChars(env, dir, (char *) penvBlock);
-    }
+        (*env)->ReleaseStringChars(env, dir, pdir);
+    if (penvBlock != NULL)
+        (*env)->ReleaseStringChars(env, envBlock, penvBlock);
     if (handles != NULL)
         (*env)->ReleaseLongArrayElements(env, stdHandles, handles, 0);
-
     return ret;
 
  Catch:
--- a/jdk/src/windows/native/java/lang/java_props_md.c	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/windows/native/java/lang/java_props_md.c	Wed Jul 05 17:09:51 2017 +0200
@@ -451,7 +451,7 @@
 {
     char * ret = encoding_names[langIDMap[index].encoding];
 
-    //Traditional Chinese Windows should use MS950_HKSCS as the
+    //Traditional Chinese Windows should use MS950_HKSCS_XP as the
     //default encoding, if HKSCS patch has been installed.
     // "old" MS950 0xfa41 -> u+e001
     // "new" MS950 0xfa41 -> u+92db
@@ -460,7 +460,7 @@
         WCHAR  unicodeChar;
         MultiByteToWideChar(CP_ACP, 0, mbChar, 2, &unicodeChar, 1);
         if (unicodeChar == 0x92db) {
-            ret = "MS950_HKSCS";
+            ret = "MS950_HKSCS_XP";
         }
     } else {
         //SimpChinese Windows should use GB18030 as the default
@@ -513,14 +513,14 @@
 /*
  * Code to figure out the user's home directory using the registry
 */
-static char *
+static WCHAR*
 getHomeFromRegistry()
 {
     HKEY key;
     int rc;
     DWORD type;
-    char *p;
-    char path[MAX_PATH+1];
+    WCHAR *p;
+    WCHAR path[MAX_PATH+1];
     int size = MAX_PATH+1;
 
     rc = RegOpenKeyEx(HKEY_CURRENT_USER, SHELL_KEY, 0, KEY_READ, &key);
@@ -530,18 +530,18 @@
     }
 
     path[0] = 0;
-    rc = RegQueryValueEx(key, "Desktop", 0, &type, path, &size);
+    rc = RegQueryValueExW(key, L"Desktop", 0, &type, (LPBYTE)path, &size);
     if (rc != ERROR_SUCCESS || type != REG_SZ) {
         return NULL;
     }
     RegCloseKey(key);
     /* Get the parent of Desktop directory */
-    p = strrchr(path, '\\');
+    p = wcsrchr(path, L'\\');
     if (p == NULL) {
         return NULL;
     }
-    *p = '\0';
-    return strdup(path);
+    *p = L'\0';
+    return _wcsdup(path);
 }
 
 /*
@@ -550,16 +550,16 @@
 typedef HRESULT (WINAPI *GetSpecialFolderType)(HWND, int, LPITEMIDLIST *);
 typedef BOOL (WINAPI *GetPathFromIDListType)(LPCITEMIDLIST, LPSTR);
 
-char *
+WCHAR*
 getHomeFromShell32()
 {
-    HMODULE lib = LoadLibrary("SHELL32.DLL");
+    HMODULE lib = LoadLibraryW(L"SHELL32.DLL");
     GetSpecialFolderType do_get_folder;
     GetPathFromIDListType do_get_path;
     HRESULT rc;
     LPITEMIDLIST item_list = 0;
-    char *p;
-    char path[MAX_PATH+1];
+    WCHAR *p;
+    WCHAR path[MAX_PATH+1];
     int size = MAX_PATH+1;
 
     if (lib == 0) {
@@ -568,7 +568,7 @@
     }
 
     do_get_folder = (GetSpecialFolderType)GetProcAddress(lib, "SHGetSpecialFolderLocation");
-    do_get_path = (GetPathFromIDListType)GetProcAddress(lib, "SHGetPathFromIDListA");
+    do_get_path = (GetPathFromIDListType)GetProcAddress(lib, "SHGetPathFromIDListW");
 
     if (do_get_folder == 0 || do_get_path == 0) {
         // the library doesn't hold the right functions !!??
@@ -582,10 +582,10 @@
     }
 
     path[0] = 0;
-    (*do_get_path)(item_list, path);
+    (*do_get_path)(item_list, (LPSTR)path);
 
     /* Get the parent of Desktop directory */
-    p = strrchr(path, '\\');
+    p = wcsrchr(path, L'\\');
     if (p) {
         *p = 0;
     }
@@ -598,8 +598,7 @@
      * We also don't unload the SHELL32 DLL.  We've paid the hit for loading
      * it and we may need it again later.
      */
-
-    return strdup(path);
+    return _wcsdup(path);
 }
 
 static boolean
@@ -650,6 +649,8 @@
 {
     static java_props_t sprops = {0};
 
+    OSVERSIONINFOEX ver;
+
     if (sprops.user_dir) {
         return &sprops;
     }
@@ -659,10 +660,10 @@
 
     /* tmp dir */
     {
-        char tmpdir[MAX_PATH + 1];
+        WCHAR tmpdir[MAX_PATH + 1];
         /* we might want to check that this succeed */
-        GetTempPath(MAX_PATH + 1, tmpdir);
-        sprops.tmp_dir = strdup(tmpdir);
+        GetTempPathW(MAX_PATH + 1, tmpdir);
+        sprops.tmp_dir = _wcsdup(tmpdir);
     }
 
     /* Printing properties */
@@ -672,14 +673,13 @@
     sprops.graphics_env = "sun.awt.Win32GraphicsEnvironment";
 
     {    /* This is used only for debugging of font problems. */
-        char *path = getenv("JAVA2D_FONTPATH");
-        sprops.font_dir = (path != 0) ? strdup(path) : NULL;
+        WCHAR *path = _wgetenv(L"JAVA2D_FONTPATH");
+        sprops.font_dir = (path != NULL) ? _wcsdup(path) : NULL;
     }
 
     /* OS properties */
     {
         char buf[100];
-        OSVERSIONINFOEX ver;
         SYSTEM_INFO si;
         PGNSI pGNSI;
 
@@ -828,14 +828,14 @@
      * 100 K of footprint.
      */
     {
-        char *uname = getenv("USERNAME");
-        if (uname != NULL && strlen(uname) > 0) {
-            sprops.user_name = strdup(uname);
+        WCHAR *uname = _wgetenv(L"USERNAME");
+        if (uname != NULL && wcslen(uname) > 0) {
+            sprops.user_name = _wcsdup(uname);
         } else {
-            char buf[100];
+            WCHAR buf[100];
             int buflen = sizeof(buf);
             sprops.user_name =
-                GetUserName(buf, &buflen) ? strdup(buf) : "unknown";
+                GetUserNameW(buf, &buflen) ? _wcsdup(buf) : L"unknown";
         }
     }
 
@@ -856,14 +856,13 @@
      *     On single-user Win95, user.home gets set to c:\windows.
      */
     {
-        char *homep = getHomeFromRegistry();
+        WCHAR *homep = getHomeFromRegistry();
         if (homep == NULL) {
             homep = getHomeFromShell32();
-            if (homep == NULL) {
-                homep = "C:\\";
-            }
+            if (homep == NULL)
+                homep = L"C:\\";
         }
-        sprops.user_home = homep;
+        sprops.user_home = _wcsdup(homep);
     }
 
     /*
@@ -932,6 +931,17 @@
             } else {
                 sprops.sun_jnu_encoding = getEncodingInternal(index);
             }
+            if (langID == 0x0c04 && ver.dwMajorVersion == 6) {
+                // MS claims "Vista has built-in support for HKSCS-2004.
+                // All of the HKSCS-2004 characters have Unicode 4.1.
+                // PUA code point assignments". But what it really means
+                // is that the HKSCS-2004 is ONLY supported in Unicode.
+                // Test indicates the MS950 in its zh_HK locale is a
+                // "regular" MS950 which does not handle HKSCS-2004 at
+                // all. Set encoding to MS950_HKSCS.
+                sprops.encoding = "MS950_HKSCS";
+                sprops.sun_jnu_encoding = "MS950_HKSCS";
+            }
         }
     }
 
@@ -950,9 +960,9 @@
 
     /* Current directory */
     {
-        char buf[MAX_PATH];
-        GetCurrentDirectory(sizeof(buf), buf);
-        sprops.user_dir = strdup(buf);
+        WCHAR buf[MAX_PATH];
+        GetCurrentDirectoryW(sizeof(buf), buf);
+        sprops.user_dir = _wcsdup(buf);
     }
 
     sprops.file_separator = "\\";
@@ -961,3 +971,9 @@
 
     return &sprops;
 }
+
+jstring
+GetStringPlatform(JNIEnv *env, nchar* wcstr)
+{
+    return (*env)->NewString(env, wcstr, wcslen(wcstr));
+}
--- a/jdk/src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c	Wed Jul 05 17:09:51 2017 +0200
@@ -1579,7 +1579,7 @@
     jobject addr;
     int i;
 
-    if (ni_addrsID == NULL) {
+    if (ni_addrsID == NULL || ia_familyID == NULL) {
         jclass c = (*env)->FindClass(env, "java/net/NetworkInterface");
         CHECK_NULL_RETURN (c, -1);
         ni_addrsID = (*env)->GetFieldID(env, c, "addrs",
--- a/jdk/src/windows/native/sun/windows/awt_Component.cpp	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/src/windows/native/sun/windows/awt_Component.cpp	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1996-2010 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -3707,8 +3707,7 @@
     if (hIMC == NULL) {
         return;
     }
-    COMPOSITIONFORM cf = {CFS_POINT, {0, r.bottom}, NULL};
-    // Place the composition window right below the client Window
+    COMPOSITIONFORM cf = {CFS_DEFAULT, {0, 0}, {0, 0, 0, 0}};
     ImmSetCompositionWindow(hIMC, &cf);
 }
 
--- a/jdk/test/Makefile	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/Makefile	Wed Jul 05 17:09:51 2017 +0200
@@ -70,6 +70,10 @@
 ifeq ($(UNAME_S), Linux)
   OS_NAME     = linux
   OS_ARCH    := $(shell $(UNAME) -m)
+  # Check for unknown arch, try uname -p if uname -m says unknown
+  ifeq ($(OS_ARCH),unknown)
+    OS_ARCH    := $(shell $(UNAME) -p)
+  endif
   OS_VERSION := $(shell $(UNAME) -r)
 endif
 ifndef OS_NAME
@@ -93,16 +97,26 @@
 # Only want major and minor numbers from os version
 OS_VERSION := $(shell $(ECHO) "$(OS_VERSION)" | $(CUT) -d'.' -f1,2)
 
-# Try and use names i586, x64, and ia64 consistently  
-OS_ARCH:=$(subst X64,x64,$(OS_ARCH))
-OS_ARCH:=$(subst AMD64,x64,$(OS_ARCH))
-OS_ARCH:=$(subst amd64,x64,$(OS_ARCH))
-OS_ARCH:=$(subst x86_64,x64,$(OS_ARCH))
-OS_ARCH:=$(subst EM64T,x64,$(OS_ARCH))
-OS_ARCH:=$(subst em64t,x64,$(OS_ARCH))
-OS_ARCH:=$(subst intel64,x64,$(OS_ARCH))
-OS_ARCH:=$(subst Intel64,x64,$(OS_ARCH))
-OS_ARCH:=$(subst INTEL64,x64,$(OS_ARCH))
+# Name to use for x86_64 arch (historically amd64, but should change someday)
+OS_ARCH_X64_NAME:=amd64
+#OS_ARCH_X64_NAME:=x64
+
+# Alternate arch names (in case this arch is known by a second name)
+#   PROBLEM_LISTS may use either name.
+OS_ARCH2-amd64:=x64
+#OS_ARCH2-x64:=amd64
+
+# Try and use the arch names consistently
+OS_ARCH:=$(subst x64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst X64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst AMD64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst amd64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst x86_64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst EM64T,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst em64t,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst intel64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst Intel64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst INTEL64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
 OS_ARCH:=$(subst IA64,ia64,$(OS_ARCH))
 OS_ARCH:=$(subst X86,i586,$(OS_ARCH))
 OS_ARCH:=$(subst x86,i586,$(OS_ARCH))
@@ -110,17 +124,32 @@
 OS_ARCH:=$(subst i486,i586,$(OS_ARCH))
 OS_ARCH:=$(subst i686,i586,$(OS_ARCH))
 
-# Check for ARCH_DATA_MODEL, adjust OS_ARCH accordingly
+# Default  ARCH_DATA_MODEL settings
+ARCH_DATA_MODEL-i586 = 32
+ARCH_DATA_MODEL-$(OS_ARCH_X64_NAME) = 64
+ARCH_DATA_MODEL-ia64 = 64
+ARCH_DATA_MODEL-sparc = 32
+ARCH_DATA_MODEL-sparcv9 = 64
+
+# If ARCH_DATA_MODEL is not defined, try and pick a reasonable default
+ifndef ARCH_DATA_MODEL
+  ARCH_DATA_MODEL:=$(ARCH_DATA_MODEL-$(OS_ARCH))
+endif
 ifndef ARCH_DATA_MODEL
   ARCH_DATA_MODEL=32
 endif
+
+# Platform directory name
+PLATFORM_OS = $(OS_NAME)-$(OS_ARCH)
+
+# Check ARCH_DATA_MODEL, adjust OS_ARCH accordingly on solaris
 ARCH_DATA_MODEL_ERROR= \
-  ARCH_DATA_MODEL=$(ARCH_DATA_MODEL) cannot be used with $(OS_NAME)-$(ARCH)
+  ARCH_DATA_MODEL=$(ARCH_DATA_MODEL) cannot be used with $(PLATFORM_OS)
 ifeq ($(ARCH_DATA_MODEL),64)
-  ifeq ($(OS_NAME)-$(OS_ARCH),solaris-i586)
-    OS_ARCH=x64
+  ifeq ($(PLATFORM_OS),solaris-i586)
+    OS_ARCH=$(OS_ARCH_X64_NAME)
   endif
-  ifeq ($(OS_NAME)-$(OS_ARCH),solaris-sparc)
+  ifeq ($(PLATFORM_OS),solaris-sparc)
     OS_ARCH=sparcv9
   endif
   ifeq ($(OS_ARCH),i586)
@@ -131,7 +160,7 @@
   endif
 else
   ifeq ($(ARCH_DATA_MODEL),32)
-    ifeq ($(OS_ARCH),x64)
+    ifeq ($(OS_ARCH),$(OS_ARCH_X64_NAME))
       x:=$(warning "WARNING: $(ARCH_DATA_MODEL_ERROR)")
     endif
     ifeq ($(OS_ARCH),ia64)
@@ -145,6 +174,12 @@
   endif
 endif
 
+# Alternate OS_ARCH name (defaults to OS_ARCH)
+OS_ARCH2:=$(OS_ARCH2-$(OS_ARCH))
+ifeq ($(OS_ARCH2),)
+  OS_ARCH2:=$(OS_ARCH)
+endif
+
 # Root of this test area (important to use full paths in some places)
 TEST_ROOT := $(shell $(PWD))
 
@@ -152,21 +187,21 @@
 ifdef ALT_OUTPUTDIR
   ABS_OUTPUTDIR = $(ALT_OUTPUTDIR)
 else
-  ABS_OUTPUTDIR = $(TEST_ROOT)/../build/$(OS_NAME)-$(OS_ARCH)
+  ABS_OUTPUTDIR = $(TEST_ROOT)/../build/$(PLATFORM_OS)
 endif
-ABS_BUILD_ROOT = $(ABS_OUTPUTDIR)
-ABS_TEST_OUTPUT_DIR := $(ABS_BUILD_ROOT)/testoutput/$(UNIQUE_DIR)
+ABS_PLATFORM_BUILD_ROOT = $(ABS_OUTPUTDIR)
+ABS_TEST_OUTPUT_DIR := $(ABS_PLATFORM_BUILD_ROOT)/testoutput/$(UNIQUE_DIR)
 
 # Expect JPRT to set PRODUCT_HOME (the product or jdk in this case to test)
 ifndef PRODUCT_HOME
   # Try to use j2sdk-image if it exists
-  ABS_JDK_IMAGE = $(ABS_BUILD_ROOT)/j2sdk-image
-  PRODUCT_HOME :=                       \
-    $(shell                             \
-      if [ -d $(ABS_JDK_IMAGE) ] ; then \
-         $(ECHO) "$(ABS_JDK_IMAGE)";    \
-       else                             \
-         $(ECHO) "$(ABS_BUILD_ROOT)";   \
+  ABS_JDK_IMAGE = $(ABS_PLATFORM_BUILD_ROOT)/j2sdk-image
+  PRODUCT_HOME :=                       		\
+    $(shell                             		\
+      if [ -d $(ABS_JDK_IMAGE) ] ; then 		\
+         $(ECHO) "$(ABS_JDK_IMAGE)";    		\
+       else                             		\
+         $(ECHO) "$(ABS_PLATFORM_BUILD_ROOT)";		\
        fi)
   PRODUCT_HOME := $(PRODUCT_HOME)
 endif
@@ -325,8 +360,10 @@
 	@$(RM) $@ $@.temp1 $@.temp2
 	@(($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- '$(OS_NAME)-all'          ) ;\
 	  ($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- '$(OS_NAME)-$(OS_ARCH)'   ) ;\
+	  ($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- '$(OS_NAME)-$(OS_ARCH2)'  ) ;\
 	  ($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- '$(OS_NAME)-$(OS_VERSION)') ;\
 	  ($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- 'generic-$(OS_ARCH)'      ) ;\
+	  ($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- 'generic-$(OS_ARCH2)'     ) ;\
           ($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- 'generic-all'             ) ;\
           ($(ECHO) "#") ;\
         ) | $(SED) -e 's@^[\ ]*@@' \
--- a/jdk/test/ProblemList.txt	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/ProblemList.txt	Wed Jul 05 17:09:51 2017 +0200
@@ -596,10 +596,6 @@
 #   Interrupted or IO exception, maybe writing to non-unique named file?
 com/sun/net/httpserver/bugs/B6373555.java			generic-all
 
-# Dies on pretty much all platforms when run with -ea -esa, Assertion error
-java/net/CookieHandler/TestHttpCookie.java			generic-all
-java/net/URLClassLoader/closetest/CloseTest.java		generic-all
-
 # Fails on OpenSolaris, BindException unexpected 
 java/net/BindException/Test.java				generic-all
 
@@ -647,9 +643,6 @@
 # Linux i586, fails with unexpected output
 java/net/MulticastSocket/NoLoopbackPackets.java 	 	linux-i586
 
-# Times out on windows x64, fails with samevm on solaris 11 i586
-java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java 	generic-all
-
 # Address already in use
 java/net/DatagramSocket/DatagramTimeout.java			generic-all
 
@@ -661,7 +654,6 @@
 java/net/Socket/AccurateTimeout.java			 	generic-all
 java/net/Socket/asyncClose/BrokenPipe.java		 	generic-all
 java/net/Socket/CloseAvailable.java			 	generic-all
-java/net/Socket/FDClose.java				 	generic-all
 
 # Linux X64 address already in use, samevm issues
 java/net/Socket/LingerTest.java 			 	generic-all
@@ -692,8 +684,6 @@
 java/net/SocketInputStream/SocketTimeout.java		 	generic-all
 
 # Linux i586, address already in use or timeout, samevm issues
-java/net/URLConnection/B5052093.java			 	generic-all
-java/net/URLConnection/contentHandler/UserContentHandler.java 	generic-all
 java/net/URLConnection/DisconnectAfterEOF.java		 	generic-all
 java/net/URLConnection/HandleContentTypeWithAttrs.java	 	generic-all
 java/net/URLConnection/Responses.java			 	generic-all
@@ -701,12 +691,9 @@
 java/net/URLConnection/ZeroContentLength.java		 	generic-all
 
 # Solaris 11 i586 fails with samevm, not sure why
-java/net/HttpURLConnection/HttpResponseCode.java		generic-all
 java/net/ResponseCache/B6181108.java				generic-all
 java/net/ResponseCache/ResponseCacheTest.java			generic-all
 java/net/URL/GetContent.java					generic-all
-java/net/URL/TestIPv6Addresses.java				generic-all
-java/net/URLClassLoader/HttpTest.java				generic-all
 java/net/URLConnection/HttpContinueStackOverflow.java		generic-all
 java/net/URLConnection/Redirect307Test.java			generic-all
 java/net/URLConnection/RedirectLimit.java			generic-all
@@ -735,9 +722,6 @@
 # Connection refused, windows samevm
 sun/net/www/protocol/http/DigestTest.java			generic-all
 
-# Fails on Fedora 9 32bit & 64bit & Solaris 10, wrong proxy for http://localhost/index.html
-java/net/ProxySelector/B6737819.java				generic-all
-
 ############################################################################
 
 # jdk_nio
@@ -745,6 +729,9 @@
 # Suspect many of these tests auffer from using fixed ports, no concrete 
 #   evidence.
 
+# Failing on Solaris x86 and Linux x86, filed 6934585
+java/nio/channels/AsynchronousSocketChannel/Basic.java		generic-all
+
 # Occasionally Failing with java.lang.AssertionError on Windows X64
 #  at sun.nio.ch.PendingIoCache.clearPendingIoMap(PendingIoCache.java:144)
 #java/nio/channels/FileChannel/ReleaseOnCloseDeadlock.java	windows-all
@@ -948,6 +935,15 @@
 
 # jdk_security
 
+# Failing on Solaris i586, 3/9/2010, not a -samevm issue (jdk_security3)
+sun/security/pkcs11/Secmod/AddPrivateKey.java			solaris-i586
+sun/security/pkcs11/ec/ReadCertificates.java			solaris-i586
+sun/security/pkcs11/ec/ReadPKCS12.java				solaris-i586
+sun/security/pkcs11/ec/TestCurves.java				solaris-i586
+sun/security/pkcs11/ec/TestECDSA.java				solaris-i586
+sun/security/pkcs11/ec/TestECGenSpec.java			solaris-i586
+sun/security/pkcs11/ec/TestKeyFactory.java			solaris-i586
+
 # Unknown problem, could be a jtreg -samevm issue?
 #  Error while cleaning up threads after test
 java/security/Security/SynchronizedAccess.java			generic-all
--- a/jdk/test/java/beans/EventHandler/Test6277246.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/beans/EventHandler/Test6277246.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2005-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -49,10 +49,10 @@
         catch (NoSuchMethodException exception) {
             throw new Error("unexpected exception", exception);
         }
+        catch (SecurityException exception) {
+            // expected security exception
+        }
         catch (RuntimeException exception) {
-            if (exception.getCause() instanceof SecurityException) {
-                return; // expected security exception
-            }
             throw new Error("unexpected exception", exception);
         }
     }
--- a/jdk/test/java/beans/EventHandler/Test6277266.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/beans/EventHandler/Test6277266.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2005-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -51,7 +51,7 @@
             );
             throw new Error("SecurityException expected");
         } catch (InvocationTargetException exception) {
-            if (exception.getCause().getCause() instanceof SecurityException){
+            if (exception.getCause() instanceof SecurityException){
                 return; // expected security exception
             }
             throw new Error("unexpected exception", exception);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/beans/Statement/Test6707226.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6707226
+ * @summary Tests the value updating in Expression
+ * @author Sergey Malenkov
+ */
+
+import java.beans.Expression;
+
+public class Test6707226 {
+    public static void main(String[] args) throws Exception {
+        Object value = new Object();
+
+        Expression expression = new Expression(value, Object.class, "new", null);
+        if (!value.equals(expression.getValue()))
+            throw new Error("the value is updated unexpectedly");
+
+        expression.execute();
+        if (value.equals(expression.getValue()))
+            throw new Error("the value is not updated as expected");
+    }
+}
--- a/jdk/test/java/lang/ProcessBuilder/Basic.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/lang/ProcessBuilder/Basic.java	Wed Jul 05 17:09:51 2017 +0200
@@ -26,6 +26,7 @@
  * @bug 4199068 4738465 4937983 4930681 4926230 4931433 4932663 4986689
  *      5026830 5023243 5070673 4052517 4811767 6192449 6397034 6413313
  *      6464154 6523983 6206031 4960438 6631352 6631966 6850957 6850958
+ *      4947220
  * @summary Basic tests for Process and Environment Variable code
  * @run main/othervm Basic
  * @author Martin Buchholz
@@ -1456,13 +1457,14 @@
                 new File(System.getProperty("user.dir")).getCanonicalPath();
             String[] sdirs = new String[]
                 {".", "..", "/", "/bin",
-                 "C:", "c:", "C:/", "c:\\", "\\", "\\bin" };
+                 "C:", "c:", "C:/", "c:\\", "\\", "\\bin",
+                 "c:\\windows  ", "c:\\Program Files", "c:\\Program Files\\" };
             for (String sdir : sdirs) {
                 File dir = new File(sdir);
                 if (! (dir.isDirectory() && dir.exists()))
                     continue;
                 out.println("Testing directory " + dir);
-                dir = new File(dir.getCanonicalPath());
+                //dir = new File(dir.getCanonicalPath());
 
                 ProcessBuilder pb = new ProcessBuilder();
                 equal(pb.directory(), null);
@@ -1470,7 +1472,7 @@
 
                 pb.directory(dir);
                 equal(pb.directory(), dir);
-                equal(pwdInChild(pb), dir.toString());
+                equal(pwdInChild(pb), dir.getCanonicalPath());
 
                 pb.directory(null);
                 equal(pb.directory(), null);
@@ -1481,6 +1483,27 @@
         } catch (Throwable t) { unexpected(t); }
 
         //----------------------------------------------------------------
+        // Working directory with Unicode in child
+        //----------------------------------------------------------------
+        try {
+            if (UnicodeOS.is()) {
+                File dir = new File(System.getProperty("test.dir", "."),
+                                    "ProcessBuilderDir\u4e00\u4e02");
+                try {
+                    if (!dir.exists())
+                        dir.mkdir();
+                    out.println("Testing Unicode directory:" + dir);
+                    ProcessBuilder pb = new ProcessBuilder();
+                    pb.directory(dir);
+                    equal(pwdInChild(pb), dir.getCanonicalPath());
+                } finally {
+                    if (dir.exists())
+                        dir.delete();
+                }
+            }
+        } catch (Throwable t) { unexpected(t); }
+
+        //----------------------------------------------------------------
         // OOME in child allocating maximally sized array
         // Test for hotspot/jvmti bug 6850957
         //----------------------------------------------------------------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/Authenticator/Deadlock.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,160 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * @test
+ * @bug 6648001
+ * @run main/othervm/timeout=20 -ea:sun.net.www.protocol.http.AuthenticationInfo -Dhttp.auth.serializeRequests=true Deadlock
+ * @summary  cancelling HTTP authentication causes deadlock
+ */
+
+import java.util.concurrent.Executors;
+import java.util.concurrent.ExecutorService;
+import java.io.InputStream;
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.InetSocketAddress;
+import java.net.PasswordAuthentication;
+import java.net.URL;
+import com.sun.net.httpserver.BasicAuthenticator;
+import com.sun.net.httpserver.Headers;
+import com.sun.net.httpserver.HttpContext;
+import com.sun.net.httpserver.HttpExchange;
+import com.sun.net.httpserver.HttpHandler;
+import com.sun.net.httpserver.HttpPrincipal;
+import com.sun.net.httpserver.HttpServer;
+
+public class Deadlock {
+
+    public static void main (String[] args) throws Exception {
+        Handler handler = new Handler();
+        InetSocketAddress addr = new InetSocketAddress (0);
+        HttpServer server = HttpServer.create(addr, 0);
+        HttpContext ctx = server.createContext("/test", handler);
+        BasicAuthenticator a = new BasicAuthenticator("foobar@test.realm") {
+            @Override
+            public boolean checkCredentials (String username, String pw) {
+                return "fred".equals(username) && pw.charAt(0) == 'x';
+            }
+        };
+
+        ctx.setAuthenticator(a);
+        ExecutorService executor = Executors.newCachedThreadPool();
+        server.setExecutor(executor);
+        server.start ();
+        java.net.Authenticator.setDefault(new MyAuthenticator());
+
+        System.out.print("Deadlock: " );
+        for (int i=0; i<2; i++) {
+            Runner t = new Runner(server, i);
+            t.start();
+            t.join();
+        }
+        server.stop(2);
+        executor.shutdown();
+        if (error) {
+            throw new RuntimeException("test failed error");
+        }
+
+        if (count != 2) {
+            throw new RuntimeException("test failed count = " + count);
+        }
+        System.out.println("OK");
+
+    }
+
+    static class Runner extends Thread {
+        HttpServer server;
+        int i;
+        Runner(HttpServer s, int i) {
+            server = s;
+            this.i = i;
+        }
+
+        @Override
+        public void run() {
+            URL url;
+            HttpURLConnection urlc;
+            try {
+                url = new URL("http://localhost:"+server.getAddress().getPort()+"/test/foo.html");
+                urlc = (HttpURLConnection)url.openConnection ();
+            } catch (IOException e) {
+                error = true;
+                return;
+            }
+            InputStream is = null;
+            try {
+                is = urlc.getInputStream();
+                while (is.read()!= -1) {}
+            } catch (IOException e) {
+                if (i == 1) error = true;
+            } finally {
+                if (is != null) try { is.close(); } catch (IOException e) {}
+            }
+        }
+    }
+
+    public static boolean error = false;
+    public static int count = 0;
+
+    static class MyAuthenticator extends java.net.Authenticator {
+        @Override
+        public PasswordAuthentication getPasswordAuthentication() {
+            PasswordAuthentication pw;
+            if (!getRequestingPrompt().equals("foobar@test.realm")) {
+                Deadlock.error = true;
+            }
+            if (count == 0) {
+                pw = null;
+            } else {
+                pw = new PasswordAuthentication("fred", "xyz".toCharArray());
+            }
+            count++;
+            return pw;
+        }
+    }
+
+    static class Handler implements HttpHandler {
+        int invocation = 1;
+
+        @Override
+        public void handle (HttpExchange t)
+            throws IOException
+        {
+            InputStream is = t.getRequestBody();
+            Headers map = t.getRequestHeaders();
+            Headers rmap = t.getResponseHeaders();
+            while (is.read() != -1);
+            is.close();
+            t.sendResponseHeaders(200, -1);
+            HttpPrincipal p = t.getPrincipal();
+            if (!p.getUsername().equals("fred")) {
+                error = true;
+            }
+            if (!p.getRealm().equals("foobar@test.realm")) {
+                error = true;
+            }
+            t.close();
+        }
+    }
+}
--- a/jdk/test/java/net/CookieHandler/CookieHandlerTest.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/net/CookieHandler/CookieHandlerTest.java	Wed Jul 05 17:09:51 2017 +0200
@@ -24,9 +24,13 @@
 /* @test
  * @summary Unit test for java.net.CookieHandler
  * @bug 4696506
+ * @run main/othervm CookieHandlerTest
  * @author Yingxian Wang
  */
 
+// Run in othervm since a default cookier handler is set and this
+// can effect other HTTP related tests.
+
 import java.net.*;
 import java.util.*;
 import java.io.*;
--- a/jdk/test/java/net/CookieHandler/TestHttpCookie.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/net/CookieHandler/TestHttpCookie.java	Wed Jul 05 17:09:51 2017 +0200
@@ -48,7 +48,6 @@
     }
 
     TestHttpCookie(String cHeader) {
-        assert cHeader != null;
         this.cHeader = cHeader;
 
         try {
--- a/jdk/test/java/net/MulticastSocket/NoLoopbackPackets.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/net/MulticastSocket/NoLoopbackPackets.java	Wed Jul 05 17:09:51 2017 +0200
@@ -29,9 +29,7 @@
 import java.util.*;
 import java.net.*;
 
-
 public class NoLoopbackPackets {
-    private static int PORT = 9001;
     private static String osname;
 
     static boolean isWindows() {
@@ -68,40 +66,47 @@
             return;
         }
 
-        // we will send packets to three multicast groups :-
-        // 224.1.1.1, ::ffff:224.1.1.2, and ff02::1:1
-        //
-        List<SocketAddress> groups = new ArrayList<SocketAddress>();
-        groups.add(new InetSocketAddress(InetAddress.getByName("224.1.1.1"), PORT));
-        groups.add(new InetSocketAddress(InetAddress.getByName("::ffff:224.1.1.2"), PORT));
-        groups.add(new InetSocketAddress(InetAddress.getByName("ff02::1:1"), PORT));
+        MulticastSocket msock = null;
+        List<SocketAddress> failedGroups = new ArrayList<SocketAddress>();
+        try {
+            msock = new MulticastSocket();
+            int port = msock.getLocalPort();
 
-        Thread sender = new Thread(new Sender(groups));
-        sender.setDaemon(true); // we want sender to stop when main thread exits
-        sender.start();
+            // we will send packets to three multicast groups :-
+            // 224.1.1.1, ::ffff:224.1.1.2, and ff02::1:1
+            //
+            List<SocketAddress> groups = new ArrayList<SocketAddress>();
+            groups.add(new InetSocketAddress(InetAddress.getByName("224.1.1.1"), port));
+            groups.add(new InetSocketAddress(InetAddress.getByName("::ffff:224.1.1.2"), port));
+            groups.add(new InetSocketAddress(InetAddress.getByName("ff02::1:1"), port));
+
+            Thread sender = new Thread(new Sender(groups));
+            sender.setDaemon(true); // we want sender to stop when main thread exits
+            sender.start();
 
-        // Now try to receive multicast packets. we should not see any of them
-        // since we disable loopback mode.
-        //
-        MulticastSocket msock = new MulticastSocket(PORT);
-        msock.setSoTimeout(5000);       // 5 seconds
+            // Now try to receive multicast packets. we should not see any of them
+            // since we disable loopback mode.
+            //
+            msock.setSoTimeout(5000);       // 5 seconds
+
+            byte[] buf = new byte[1024];
+            DatagramPacket packet = new DatagramPacket(buf, 0, buf.length);
+            for (SocketAddress group : groups) {
+                msock.joinGroup(group, null);
 
-        byte[] buf = new byte[1024];
-        DatagramPacket packet = new DatagramPacket(buf, 0, buf.length);
-        List<SocketAddress> failedGroups = new ArrayList<SocketAddress>();
-        for (SocketAddress group : groups) {
-            msock.joinGroup(group, null);
+                try {
+                    msock.receive(packet);
 
-            try {
-                msock.receive(packet);
+                    // it is an error if we receive something
+                    failedGroups.add(group);
+                } catch (SocketTimeoutException e) {
+                    // we expect this
+                }
 
-                // it is an error if we receive something
-                failedGroups.add(group);
-            } catch (SocketTimeoutException e) {
-                // we expect this
+                msock.leaveGroup(group, null);
             }
-
-            msock.leaveGroup(group, null);
+        } finally {
+            if (msock != null) try { msock.close(); } catch (Exception e) {}
         }
 
         if (failedGroups.size() > 0) {
@@ -111,36 +116,36 @@
             throw new RuntimeException("test failed.");
         }
     }
-}
+
+    static class Sender implements Runnable {
+        private List<SocketAddress> sendToGroups;
 
-class Sender implements Runnable {
-    private List<SocketAddress> sendToGroups;
-
-    public Sender(List<SocketAddress> groups) {
-        sendToGroups = groups;
-    }
+        public Sender(List<SocketAddress> groups) {
+            sendToGroups = groups;
+        }
 
-    public void run() {
-        byte[] buf = "hello world".getBytes();
-        List<DatagramPacket> packets = new ArrayList<DatagramPacket>();
+        public void run() {
+            byte[] buf = "hello world".getBytes();
+            List<DatagramPacket> packets = new ArrayList<DatagramPacket>();
 
-        try {
-            for (SocketAddress group : sendToGroups) {
-                DatagramPacket packet = new DatagramPacket(buf, buf.length, group);
-                packets.add(packet);
-            }
-
-            MulticastSocket msock = new MulticastSocket();
-            msock.setLoopbackMode(true);    // disable loopback mode
-            for (;;) {
-                for (DatagramPacket packet : packets) {
-                    msock.send(packet);
+            try {
+                for (SocketAddress group : sendToGroups) {
+                    DatagramPacket packet = new DatagramPacket(buf, buf.length, group);
+                    packets.add(packet);
                 }
 
-                Thread.currentThread().sleep(1000);     // 1 second
+                MulticastSocket msock = new MulticastSocket();
+                msock.setLoopbackMode(true);    // disable loopback mode
+                for (;;) {
+                    for (DatagramPacket packet : packets) {
+                        msock.send(packet);
+                    }
+
+                    Thread.sleep(1000);     // 1 second
+                }
+            } catch (Exception e) {
+                throw new RuntimeException(e);
             }
-        } catch (Exception e) {
-            throw new RuntimeException(e);
         }
     }
 }
--- a/jdk/test/java/net/ProxySelector/B6737819.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/net/ProxySelector/B6737819.java	Wed Jul 05 17:09:51 2017 +0200
@@ -23,9 +23,15 @@
 /*
  * @test
  * @bug 6737819
+ * @run main/othervm B6737819
  * @summary sun.misc.net.DefaultProxySelector doesn't use proxy setting to localhost
  */
 
+/* Run in othervm mode since the test sets HTTP proxy system properties that
+ * are read once and cached by the protocol handler. A previous test using the
+ * HTTP handler may run and these system properties may be ignored for this test.
+ */
+
 import java.net.ProxySelector;
 import java.net.Proxy;
 import java.net.URI;
--- a/jdk/test/java/net/ResponseCache/ResponseCacheTest.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/net/ResponseCache/ResponseCacheTest.java	Wed Jul 05 17:09:51 2017 +0200
@@ -150,10 +150,14 @@
         }
     }
     public static void main(String args[]) throws Exception {
-        ResponseCache.setDefault(new MyResponseCache());
-        FNPrefix = System.getProperty("test.src", ".")+"/";
-        OutFNPrefix = System.getProperty("test.scratch", ".")+"/";
-        new ResponseCacheTest();
+        try {
+            ResponseCache.setDefault(new MyResponseCache());
+            FNPrefix = System.getProperty("test.src", ".")+"/";
+            OutFNPrefix = System.getProperty("test.scratch", ".")+"/";
+            new ResponseCacheTest();
+        } finally{
+            ResponseCache.setDefault(null);
+        }
     }
 
     static class MyResponseCache extends ResponseCache {
--- a/jdk/test/java/net/ResponseCache/getResponseCode.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/net/ResponseCache/getResponseCode.java	Wed Jul 05 17:09:51 2017 +0200
@@ -30,8 +30,7 @@
 import java.net.*;
 import java.util.*;
 import java.io.*;
-import java.nio.*;
-import sun.net.www.ParseUtil;
+
 
 /**
  * Request should get serviced by the cache handler. Response get
@@ -52,9 +51,13 @@
         }
     }
     public static void main(String args[]) throws Exception {
-        ResponseCache.setDefault(new MyResponseCache());
-        FNPrefix = System.getProperty("test.src", ".")+"/";
-        new getResponseCode();
+        try {
+            ResponseCache.setDefault(new MyResponseCache());
+            FNPrefix = System.getProperty("test.src", ".")+"/";
+            new getResponseCode();
+        } finally{
+            ResponseCache.setDefault(null);
+        }
     }
 
     static class MyResponseCache extends ResponseCache {
--- a/jdk/test/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java	Wed Jul 05 17:09:51 2017 +0200
@@ -22,17 +22,16 @@
  */
 
 /*
- * @test
- * @summary configuring unconnected Socket before passing to implAccept can cause fd leak
- * @bug 6368984
- * @author Edward Wang
+ * Test run from script, AcceptCauseFileDescriptorLeak.sh
+ * author Edward Wang
  */
 
-import java.io.*;
-import java.net.*;
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.Socket;
 
 public class AcceptCauseFileDescriptorLeak {
-    private static final int REPS = 1000;
+    private static final int REPS = 2048;
 
     public static void main(String[] args) throws Exception {
         final ServerSocket ss = new ServerSocket(0) {
@@ -60,31 +59,5 @@
         }
         ss.close();
         t.join();
-
-        //
-        // The threshold 20 below is a little arbitrary. The point here is that
-        // the remaining open file descriptors should be constant independent
-        // of REPS.
-        //
-        if (countOpenFD() > 20) {
-            throw new RuntimeException("File descriptor leak detected.");
-        }
-    }
-
-
-    /*
-     * Actually, this approach to count open file descriptors only
-     * works for Solaris/Linux. On Windows platform, this method
-     * will simply return zero. So the test will always be passed
-     * on Windows, too.
-     */
-    private static int countOpenFD() {
-        File dirOfFD = new File("/proc/self/fd");
-        File[] fds = dirOfFD.listFiles();
-
-        if (fds != null)
-            return fds.length;
-        else
-            return 0;
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.sh	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,48 @@
+#
+# Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# @test
+# @bug 6368984
+# @summary configuring unconnected Socket before passing to implAccept can cause fd leak
+# @build AcceptCauseFileDescriptorLeak
+# @run shell AcceptCauseFileDescriptorLeak.sh
+
+OS=`uname -s`
+case "$OS" in
+    Windows_* | CYGWIN* )
+        echo "ulimit not on Windows"
+        exit 0
+        ;;
+    * )
+        CLASSPATH=${TESTCLASSES}:${TESTSRC}
+        ;;
+esac
+export CLASSPATH
+
+# hard limit needs to be less than 1024 for this bug
+NOFILES=`ulimit -n -H`
+if [ "$NOFILES" = "unlimited" ] || [ $NOFILES -ge 1024 ]; then
+    ulimit -n 1024
+fi
+
+${TESTJAVA}/bin/java AcceptCauseFileDescriptorLeak
--- a/jdk/test/java/net/Socket/FDClose.java	Wed Jul 05 17:09:16 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
- * Copyright 1998-2002 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-/**
- * @test
- * @bug 4152799
- * @summary  test to see if interrupting a socket accept closes fd0
- */
-import java.net.*;
-import java.io.*;
-import java.util.*;
-
-public class FDClose {
-
-    static boolean isServerReady = false;
-
-    public static void main(String[] args) throws Exception {
-
-        Thread me = Thread.currentThread();
-
-        // Put a thread waiting on SocketServer.Accept
-        AReader test = new AReader();
-        Thread readerThread = new Thread(test);
-        readerThread.start();
-
-        // wait for the server socket to be ready
-        while (!isServerReady) {
-            me.sleep(100);
-        }
-
-        // Interrupt the waiting thread
-        readerThread.interrupt();
-
-        // Wait another moment
-        me.sleep(100);
-
-        // Check to see if fd0 is closed
-        System.in.available();
-    }
-
-    public static class AReader implements Runnable {
-        public void run() {
-            try {
-                ServerSocket sock = new ServerSocket(0);
-                isServerReady = true;
-                sock.accept();
-            } catch (Exception e) {
-            }
-        }
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/Socket/SocksConnectTimeout.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,132 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6223635
+ * @summary Code hangs at connect call even when Timeout is specified
+ */
+
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.Proxy;
+import java.net.Socket;
+import java.net.ServerSocket;
+import java.net.SocketTimeoutException;
+import java.io.IOException;
+import java.io.Closeable;
+import java.util.concurrent.Phaser;
+import java.util.concurrent.TimeUnit;
+
+public class SocksConnectTimeout {
+    static ServerSocket serverSocket;
+    static final boolean debug = true;
+    static final Phaser startPhaser = new Phaser(2);
+    static final Phaser finishPhaser = new Phaser(2);
+    static int failed, passed;
+
+    public static void main(String[] args) {
+        try {
+            serverSocket = new ServerSocket(0);
+
+            (new Thread() {
+                @Override
+                public void run() { serve(); }
+            }).start();
+
+            Proxy socksProxy = new Proxy(Proxy.Type.SOCKS,
+                new InetSocketAddress(InetAddress.getLocalHost(), serverSocket.getLocalPort()));
+
+            test(socksProxy);
+        } catch (IOException e) {
+            unexpected(e);
+        } finally {
+            close(serverSocket);
+
+            if (failed > 0)
+                throw new RuntimeException("Test Failed: passed:" + passed + ", failed:" + failed);
+        }
+    }
+
+    static void test(Proxy proxy) {
+        startPhaser.arriveAndAwaitAdvance();
+        Socket socket = null;
+        try {
+            socket = new Socket(proxy);
+            connectWithTimeout(socket);
+            failed("connected successfully!");
+        } catch (SocketTimeoutException socketTimeout) {
+            debug("Passed: Received: " + socketTimeout);
+            passed();
+        } catch (Exception exception) {
+            failed("Connect timeout test failed", exception);
+        } finally {
+            finishPhaser.arriveAndAwaitAdvance();
+            close(socket);
+        }
+    }
+
+    static void connectWithTimeout(Socket socket) throws IOException {
+        socket.connect(new InetSocketAddress(InetAddress.getLocalHost(), 1234), 500);
+    }
+
+    static void serve() {
+        Socket client = null;
+        try {
+            startPhaser.arriveAndAwaitAdvance();
+            client = serverSocket.accept();
+            finishPhaser.awaitAdvanceInterruptibly(finishPhaser.arrive(), 5, TimeUnit.SECONDS);
+        } catch (Exception e) {
+            unexpected(e);
+        } finally {
+            close(client);
+        }
+    }
+
+    static void debug(String message) {
+        if (debug)
+            System.out.println(message);
+    }
+
+    static void unexpected(Exception e ) {
+        System.out.println("Unexcepted Exception: " + e);
+    }
+
+    static void close(Closeable closeable) {
+        if (closeable != null) try { closeable.close(); } catch (IOException e) {unexpected(e);}
+    }
+
+    static void failed(String message) {
+        System.out.println(message);
+        failed++;
+    }
+
+    static void failed(String message, Exception e) {
+        System.out.println(message);
+        System.out.println(e);
+        failed++;
+    }
+
+    static void passed() { passed++; };
+
+}
--- a/jdk/test/java/net/URL/TestIPv6Addresses.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/net/URL/TestIPv6Addresses.java	Wed Jul 05 17:09:51 2017 +0200
@@ -23,8 +23,12 @@
 
 /* @test
  * @bug 4451522 4460484
+ * @run main/othervm TestIPv6Addresses
  * @summary URI and URL getHost() methods don't comform to RFC 2732
  */
+
+// Run in othervm because the tests sets a SecurityManager
+
 import java.net.*;
 
 public class TestIPv6Addresses {
--- a/jdk/test/java/net/URLClassLoader/HttpTest.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/net/URLClassLoader/HttpTest.java	Wed Jul 05 17:09:51 2017 +0200
@@ -56,9 +56,9 @@
             }
 
             public void run() {
+                InputStream in = null;
                 try {
-
-                    InputStream in = s.getInputStream();
+                    in = s.getInputStream();
                     for (;;) {
 
                         // read entire request from client
@@ -111,6 +111,9 @@
                     } // for
 
                 } catch (Exception e) {
+                    unexpected(e);
+                } finally {
+                    if (in != null) { try {in.close(); } catch(IOException e) {unexpected(e);} }
                 }
             }
         }
@@ -131,6 +134,11 @@
             }
         }
 
+        void unexpected(Exception e) {
+            System.out.println(e);
+            e.printStackTrace();
+        }
+
         public static HttpServer create() throws Exception {
             if (svr != null)
                 return svr;
@@ -211,6 +219,7 @@
         //          one GET request
         svr.counters().reset();
         InputStream in = cl.getResourceAsStream("foo2.gif");
+        in.close();
         System.out.println(svr.counters());
         if (svr.counters().getCount() > 1) {
             failed = true;
--- a/jdk/test/java/net/URLClassLoader/closetest/CloseTest.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/net/URLClassLoader/closetest/CloseTest.java	Wed Jul 05 17:09:51 2017 +0200
@@ -34,7 +34,6 @@
 import java.io.*;
 import java.net.*;
 import java.lang.reflect.*;
-import java.util.concurrent.*;
 import com.sun.net.httpserver.*;
 
 public class CloseTest {
@@ -107,7 +106,6 @@
             } else {
                 copyFile (new File (src, f), new File (dst, f));
             }
-            assert false;
         }
     }
 
--- a/jdk/test/java/net/URLConnection/B5052093.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/net/URLConnection/B5052093.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,12 +1,10 @@
 /*
- * Copyright (c) 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
  *
  * This code is distributed in the hope that it will be useful, but WITHOUT
  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
@@ -66,17 +64,29 @@
 
     public static void main(String[] args) throws Exception {
         server = new HttpServer(new B5052093(), 1, 10, 0);
-        URL url = new URL("http://localhost:"+server.getLocalPort()+"/foo");
-        URLConnection conn = url.openConnection();
-        int i = conn.getContentLength();
-        long l = conn.getContentLengthLong();
-        if (i != -1 || l != testSize)
-            throw new RuntimeException("Wrong content-length from http");
+        try {
+            URL url = new URL("http://localhost:"+server.getLocalPort()+"/foo");
+            URLConnection conn = url.openConnection();
+            int i = conn.getContentLength();
+            long l = conn.getContentLengthLong();
+            if (i != -1 || l != testSize) {
+                System.out.println("conn.getContentLength = " + i);
+                System.out.println("conn.getContentLengthLong = " + l);
+                System.out.println("testSize = " + testSize);
+                throw new RuntimeException("Wrong content-length from http");
+            }
 
-        URLConnection fu = new LargeFileURLConnection(new LargeFile());
-        i = fu.getContentLength();
-        l = fu.getContentLengthLong();
-        if (i != -1 || l != testSize)
-            throw new RuntimeException("Wrong content-length from file");
+            URLConnection fu = new LargeFileURLConnection(new LargeFile());
+            i = fu.getContentLength();
+            l = fu.getContentLengthLong();
+            if (i != -1 || l != testSize) {
+                System.out.println("fu.getContentLength = " + i);
+                System.out.println("fu.getContentLengthLong = " + l);
+                System.out.println("testSize = " + testSize);
+                throw new RuntimeException("Wrong content-length from file");
+            }
+        } finally {
+            server.terminate();
+        }
     }
 }
--- a/jdk/test/java/net/URLConnection/contentHandler/UserContentHandler.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/net/URLConnection/contentHandler/UserContentHandler.java	Wed Jul 05 17:09:51 2017 +0200
@@ -25,8 +25,16 @@
  * @bug 4191147
  * @summary 1.2beta4 does not load user defined content handlers
  * @build UserContentHandler
- * @run main UserContentHandler
+ * @run main/othervm UserContentHandler
  */
+
+/* Run in othervm mode since the test sets a system property, java.content.handler.pkgs,
+ * that prepends a specific package prefix defining a text/plain content
+ * handler. If other URLConnection tests run before this one they might trigger
+ * the Sun implementation text/plain content handler in sun.net.www.content
+ * to be loaded and cached, this will break this test.
+ */
+
 import java.net.*;
 import java.io.*;
 import java.util.*;
@@ -55,7 +63,7 @@
             // don't close the connection immediately as otherwise
             // the http headers may not have been received and the
             // http client will re-connect.
-            Thread.currentThread().sleep(2000);
+            Thread.sleep(2000);
 
             s.close();
 
--- a/jdk/test/java/net/ipv6tests/TcpTest.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/net/ipv6tests/TcpTest.java	Wed Jul 05 17:09:51 2017 +0200
@@ -47,9 +47,11 @@
         try {
             ia4any = InetAddress.getByName ("0.0.0.0");
             ia6any = InetAddress.getByName ("::0");
-            int scope = ia6addr.getScopeId();
-            if (scope != 0) {
-                ia6bad = InetAddress.getByName ("fe80::1:2:3:4:5:6%"+scope);
+            if (ia6addr != null) {
+                int scope = ia6addr.getScopeId();
+                if (scope != 0) {
+                    ia6bad = InetAddress.getByName ("fe80::1:2:3:4:5:6%"+scope);
+                }
             } else {
                 ia6bad = InetAddress.getByName ("fe80::1:2:3:4:5:6");
             }
--- a/jdk/test/java/net/ipv6tests/Tests.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/net/ipv6tests/Tests.java	Wed Jul 05 17:09:51 2017 +0200
@@ -38,12 +38,25 @@
         OutputStream o1 = s1.getOutputStream();
         OutputStream o2 = s2.getOutputStream();
 
-        simpleWrite (o1, 100);
-        simpleWrite (o2, 200);
+        startSimpleWriter("SimpleWriter-1", o1, 100);
+        startSimpleWriter("SimpleWriter-2", o2, 200);
         simpleRead (i2, 100);
         simpleRead (i1, 200);
     }
 
+    static void startSimpleWriter(String threadName, final OutputStream os, final int start) {
+        (new Thread(new Runnable() {
+            public void run() {
+                try { simpleWrite(os, start); }
+                catch (Exception e) {unexpected(e); }
+            }}, threadName)).start();
+    }
+
+    static void unexpected(Exception e ) {
+        System.out.println("Unexcepted Exception: " + e);
+        e.printStackTrace();
+    }
+
     /**
      * Send a packet from s1 to s2 (ia2/s2.localPort) and check it
      * Send a packet from s2 to s1 (ia1/s1.localPort) and check it
@@ -247,13 +260,15 @@
         }
 
         private NetworkInterface getNextIf () {
-            while (ifs.hasMoreElements()) {
-                NetworkInterface nic = (NetworkInterface)ifs.nextElement();
-                try {
-                    if (nic.isUp() && !nic.isLoopback())
-                        return nic;
-                } catch (SocketException e) {
-                    // ignore
+            if (ifs != null) {
+                while (ifs.hasMoreElements()) {
+                    NetworkInterface nic = (NetworkInterface)ifs.nextElement();
+                    try {
+                        if (nic.isUp() && !nic.isLoopback())
+                            return nic;
+                    } catch (SocketException e) {
+                        // ignore
+                    }
                 }
             }
 
--- a/jdk/test/java/nio/charset/Charset/NIOCharsetAvailabilityTest.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/nio/charset/Charset/NIOCharsetAvailabilityTest.java	Wed Jul 05 17:09:51 2017 +0200
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4777124 6920545
+ * @bug 4777124 6920545 6911753
  * @summary Verify that all Charset subclasses are available through the API
  */
 
@@ -65,8 +65,6 @@
         // remove the known pseudo-charsets that serve only to implement
         // other charsets, but shouldn't be known to the public
         charsets.remove(Class.forName("sun.nio.cs.Unicode"));
-        charsets.remove(Class.forName("sun.nio.cs.ext.HKSCS"));
-        charsets.remove(Class.forName("sun.nio.cs.ext.HKSCS_2001"));
         charsets.remove(Class.forName("sun.nio.cs.ext.ISO2022"));
         charsets.remove(Class.forName("sun.nio.cs.ext.ISO2022_CN_GB"));
         charsets.remove(Class.forName("sun.nio.cs.ext.ISO2022_CN_CNS"));
--- a/jdk/test/java/nio/charset/Charset/RegisteredCharsets.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/java/nio/charset/Charset/RegisteredCharsets.java	Wed Jul 05 17:09:51 2017 +0200
@@ -22,7 +22,7 @@
  */
 
 /* @test
- * @bug 4473201 4696726 4652234 4482298 4784385 4966197 4267354 5015668
+ * @bug 4473201 4696726 4652234 4482298 4784385 4966197 4267354 5015668 6911753
  * @summary Check that registered charsets are actually registered
  */
 
@@ -240,7 +240,6 @@
                     "Big5_HKSCS",
                     "big5hk",
                     "big5-hkscs",
-                    "big5-hkscs:unicode3.0",
                     "big5hkscs"
                 });
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/security/cert/CertificateFactory/ReturnStream.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6813340
+ * @summary X509Factory should not depend on is.available()==0
+ */
+import java.io.*;
+import java.security.cert.*;
+
+/**
+ * Tests ol'Mac style file, end witha  single '\r'
+ */
+public class ReturnStream {
+
+    public static void main(String[] args) throws Exception {
+        FileInputStream fin = new FileInputStream(new File(new File(
+                System.getProperty("test.src", "."), "openssl"), "pem"));
+        byte[] buffer = new byte[4096];
+        int size = 0;
+        while (true) {
+            int len = fin.read(buffer, size, 4096-size);
+            if (len < 0) break;
+            size += len;
+        }
+        fin.close();
+
+        // Make a copy
+        System.arraycopy(buffer, 0, buffer, size, size);
+        size += size;
+
+        // Create a ol'Mac style file.
+        for (int i=0; i<size; i++) {
+            if (buffer[i] == '\n') buffer[i] = '\r';
+        }
+
+        CertificateFactory factory = CertificateFactory.getInstance("X.509");
+        if (factory.generateCertificates(
+                new ByteArrayInputStream(buffer, 0, size)).size() != 2) {
+            throw new Exception("Cert not OK");
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/security/cert/CertificateFactory/SlowStream.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+import java.io.*;
+import java.security.cert.*;
+
+class SlowStreamReader {
+
+    public static void main(String[] args) throws Exception {
+        CertificateFactory factory = CertificateFactory.getInstance("X.509");
+        if (factory.generateCertificates(System.in).size() != 5) {
+            throw new Exception("Not all certs read");
+        }
+    }
+}
+
+class SlowStreamWriter {
+    public static void main(String[] args) throws Exception {
+        for (int i=0; i<5; i++) {
+            FileInputStream fin = new FileInputStream(new File(new File(
+                    System.getProperty("test.src", "."), "openssl"), "pem"));
+            byte[] buffer = new byte[4096];
+            while (true) {
+                int len = fin.read(buffer);
+                if (len < 0) break;
+                System.out.write(buffer, 0, len);
+            }
+            Thread.sleep(2000);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/security/cert/CertificateFactory/slowstream.sh	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,50 @@
+#
+# Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# @test
+# @bug 6813340
+# @summary X509Factory should not depend on is.available()==0
+
+if [ "${TESTSRC}" = "" ] ; then
+  TESTSRC="."
+fi
+if [ "${TESTJAVA}" = "" ] ; then
+  echo "TESTJAVA not set.  Test cannot execute."
+  echo "FAILED!!!"
+  exit 1
+fi
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+  Windows_* )
+    FS="\\"
+    ;;
+  * )
+    FS="/"
+    ;;
+esac
+
+${TESTJAVA}${FS}bin${FS}javac -d . ${TESTSRC}${FS}SlowStream.java
+${TESTJAVA}${FS}bin${FS}java -Dtest.src=${TESTSRC} SlowStreamWriter | \
+        ${TESTJAVA}${FS}bin${FS}java SlowStreamReader
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/concurrent/Semaphore/PermitOverflow.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,102 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file:
+ *
+ * Written by Doug Lea with assistance from members of JCP JSR-166
+ * Expert Group and released to the public domain, as explained at
+ * http://creativecommons.org/licenses/publicdomain
+ */
+
+/*
+ * @test
+ * @bug 6941130
+ * @summary Numeric overflow/underflow of permits causes Error throw
+ */
+
+import java.util.concurrent.Semaphore;
+
+public class PermitOverflow {
+
+    public static void main(String[] args) throws Throwable {
+        for (boolean fair : new boolean[] { true, false }) {
+            Semaphore sem = new Semaphore(Integer.MAX_VALUE - 1, fair);
+            if (sem.availablePermits() != Integer.MAX_VALUE - 1)
+                throw new RuntimeException();
+            try {
+                sem.release(2);
+                throw new RuntimeException();
+            } catch (Error expected) {
+            }
+            sem.release(1);
+            if (sem.availablePermits() != Integer.MAX_VALUE)
+                throw new RuntimeException();
+            try {
+                sem.release(1);
+                throw new RuntimeException();
+            } catch (Error expected) {
+            }
+            try {
+                sem.release(Integer.MAX_VALUE);
+                throw new RuntimeException();
+            } catch (Error expected) {
+            }
+        }
+
+        class Sem extends Semaphore {
+            public Sem(int permits, boolean fair) {
+                super(permits, fair);
+            }
+            public void reducePermits(int reduction) {
+                super.reducePermits(reduction);
+            }
+        }
+
+        for (boolean fair : new boolean[] { true, false }) {
+            Sem sem = new Sem(Integer.MIN_VALUE + 1, fair);
+            if (sem.availablePermits() != Integer.MIN_VALUE + 1)
+                throw new RuntimeException();
+            try {
+                sem.reducePermits(2);
+                throw new RuntimeException();
+            } catch (Error expected) {
+            }
+            sem.reducePermits(1);
+            if (sem.availablePermits() != Integer.MIN_VALUE)
+                throw new RuntimeException();
+            try {
+                sem.reducePermits(1);
+                throw new RuntimeException();
+            } catch (Error expected) {
+            }
+            try {
+                sem.reducePermits(Integer.MAX_VALUE);
+                throw new RuntimeException();
+            } catch (Error expected) {
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/plaf/synth/Test6933784.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* @test
+   @bug 6933784
+   @summary NIMBUS: ImageView getNoImageIcon and getLoadingImageIcon returns nulls instead of an icon
+   @author Pavel Porvatov
+   @run main Test6933784
+*/
+
+import javax.swing.*;
+import javax.swing.plaf.nimbus.NimbusLookAndFeel;
+import javax.swing.plaf.synth.SynthLookAndFeel;
+import javax.swing.text.Element;
+import javax.swing.text.html.HTMLDocument;
+import javax.swing.text.html.HTMLEditorKit;
+import javax.swing.text.html.ImageView;
+import java.io.StringReader;
+
+public class Test6933784 {
+    public static void main(String[] args) throws Exception {
+        UIManager.setLookAndFeel(new SynthLookAndFeel());
+
+        checkImages();
+
+        UIManager.setLookAndFeel(new NimbusLookAndFeel());
+
+        checkImages();
+    }
+
+    private static void checkImages() throws Exception {
+        SwingUtilities.invokeAndWait(new Runnable() {
+            public void run() {
+                HTMLEditorKit c = new HTMLEditorKit();
+                HTMLDocument doc = new HTMLDocument();
+
+                try {
+                    c.read(new StringReader("<HTML><TITLE>Test</TITLE><BODY><IMG id=test></BODY></HTML>"), doc, 0);
+                } catch (Exception e) {
+                    throw new RuntimeException("The test failed", e);
+                }
+
+                Element elem = doc.getElement("test");
+                ImageView iv = new ImageView(elem);
+
+                if (iv.getLoadingImageIcon() == null) {
+                    throw new RuntimeException("getLoadingImageIcon returns null");
+                }
+
+                if (iv.getNoImageIcon() == null) {
+                    throw new RuntimeException("getNoImageIcon returns null");
+                }
+            }
+        });
+    }
+}
--- a/jdk/test/lib/security/cacerts/VerifyCACerts.java	Wed Jul 05 17:09:16 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-/*
- * Copyright 2002-2008 Sun Microsystems, Inc.  All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-/**
- * @test
- * @bug 4400624 6321453 6728890 6732157 6754779 6768559
- * @summary Make sure all self-signed root cert signatures are valid
- */
-import java.io.FileInputStream;
-import java.security.KeyStore;
-import java.security.MessageDigest;
-import java.security.cert.*;
-import java.util.*;
-
-public class VerifyCACerts {
-
-    private final static String cacertsFileName =
-        System.getProperty("java.home") +
-        System.getProperty("file.separator") + "lib" +
-        System.getProperty("file.separator") + "security" +
-        System.getProperty("file.separator") + "cacerts";
-
-    private static boolean atLeastOneFailed = false;
-
-    private static MessageDigest md;
-
-    // map of cert alias to SHA1 fingerprint
-    private static Map<String, String> fpMap = new HashMap<String, String>();
-
-    private static String[][] entries = {
-        { "swisssignsilverg2ca", "9B:AA:E5:9F:56:EE:21:CB:43:5A:BE:25:93:DF:A7:F0:40:D1:1D:CB"},
-        { "swisssigngoldg2ca", "D8:C5:38:8A:B7:30:1B:1B:6E:D4:7A:E6:45:25:3A:6F:9F:1A:27:61"},
-        { "swisssignplatinumg2ca", "56:E0:FA:C0:3B:8F:18:23:55:18:E5:D3:11:CA:E8:C2:43:31:AB:66"},
-        { "verisigntsaca", "BE:36:A4:56:2F:B2:EE:05:DB:B3:D3:23:23:AD:F4:45:08:4E:D6:56"},
-        { "camerfirmachambersignca", "4A:BD:EE:EC:95:0D:35:9C:89:AE:C7:52:A1:2C:5B:29:F6:D6:AA:0C"},
-        { "camerfirmachambersca", "78:6A:74:AC:76:AB:14:7F:9C:6A:30:50:BA:9E:A8:7E:FE:9A:CE:3C"},
-        { "camerfirmachamberscommerceca", "6E:3A:55:A4:19:0C:19:5C:93:84:3C:C0:DB:72:2E:31:30:61:F0:B1"},
-        { "deutschetelekomrootca2", "85:A4:08:C0:9C:19:3E:5D:51:58:7D:CD:D6:13:30:FD:8C:DE:37:BF"},
-    };
-
-    static {
-        for (String[] entry : entries) {
-            fpMap.put(entry[0], entry[1]);
-        }
-    };
-
-    public static void main(String[] args) throws Exception {
-        md = MessageDigest.getInstance("SHA1");
-        KeyStore ks = KeyStore.getInstance("JKS");
-        ks.load(new FileInputStream(cacertsFileName), "changeit".toCharArray());
-
-        // check that all entries in the map are in the keystore
-        for (String alias : fpMap.keySet()) {
-            if (!ks.isCertificateEntry(alias)) {
-                atLeastOneFailed = true;
-                System.err.println(alias + " is not in cacerts");
-            }
-        }
-        // pull all the trusted self-signed CA certs out of the cacerts file
-        // and verify their signatures
-        Enumeration<String> aliases = ks.aliases();
-        while (aliases.hasMoreElements()) {
-            String alias = aliases.nextElement();
-            System.out.println("Verifying " + alias);
-            if (!ks.isCertificateEntry(alias)) {
-                atLeastOneFailed = true;
-                System.err.println(alias + " is not a trusted cert entry");
-            }
-            Certificate cert = ks.getCertificate(alias);
-            // remember the GTE CyberTrust CA cert for further tests
-            if (alias.equals("gtecybertrustca")) {
-                atLeastOneFailed = true;
-                System.err.println
-                    ("gtecybertrustca is expired and should be deleted");
-            }
-            cert.verify(cert.getPublicKey());
-            if (!checkFingerprint(alias, cert)) {
-                atLeastOneFailed = true;
-                System.err.println
-                    (alias + " SHA1 fingerprint is incorrect");
-            }
-        }
-
-        if (atLeastOneFailed) {
-            throw new Exception("At least one cacert test failed");
-        }
-    }
-
-    private static boolean checkFingerprint(String alias, Certificate cert)
-        throws Exception {
-        String fingerprint = fpMap.get(alias);
-        if (fingerprint == null) {
-            // no entry for alias
-            return true;
-        }
-        System.out.println("Checking fingerprint of " + alias);
-        byte[] digest = md.digest(cert.getEncoded());
-        return fingerprint.equals(toHexString(digest));
-    }
-
-    private static String toHexString(byte[] block) {
-        StringBuffer buf = new StringBuffer();
-        int len = block.length;
-        for (int i = 0; i < len; i++) {
-             byte2hex(block[i], buf);
-             if (i < len-1) {
-                 buf.append(":");
-             }
-        }
-        return buf.toString();
-    }
-
-    private static void byte2hex(byte b, StringBuffer buf) {
-        char[] hexChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
-                            '9', 'A', 'B', 'C', 'D', 'E', 'F' };
-        int high = ((b & 0xf0) >> 4);
-        int low = (b & 0x0f);
-        buf.append(hexChars[high]);
-        buf.append(hexChars[low]);
-    }
-}
--- a/jdk/test/sun/security/krb5/auto/HttpNegotiateServer.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/sun/security/krb5/auto/HttpNegotiateServer.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2009-2010 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,9 @@
 
 /*
  * @test
- * @bug 6578647
+ * @bug 6578647 6829283
  * @summary Undefined requesting URL in java.net.Authenticator.getPasswordAuthentication()
+ * @summary HTTP/Negotiate: Authenticator triggered again when user cancels the first one
  */
 
 import com.sun.net.httpserver.Headers;
@@ -35,6 +36,8 @@
 import com.sun.net.httpserver.HttpPrincipal;
 import com.sun.security.auth.module.Krb5LoginModule;
 import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
@@ -79,6 +82,9 @@
     // web page content
     final static String CONTENT = "Hello, World!";
 
+    // For 6829283, count how many times the Authenticator is called.
+    static int count = 0;
+
     // URLs for web test, proxy test. The proxy server is not a real proxy
     // since it fakes the same content for any URL. :)
     final static URL webUrl, proxyUrl;
@@ -134,6 +140,17 @@
         }
     }
 
+    /**
+     * This Authenticator knows nothing
+     */
+    static class KnowNothingAuthenticator extends java.net.Authenticator {
+        @Override
+        public PasswordAuthentication getPasswordAuthentication () {
+            HttpNegotiateServer.count++;
+            return null;
+        }
+    }
+
     public static void main(String[] args)
             throws Exception {
 
@@ -147,7 +164,6 @@
         kdcp.addPrincipalRandKey("krbtgt/" + REALM_PROXY);
         kdcp.addPrincipalRandKey("HTTP/" + PROXY_HOST);
 
-        KDC.writeMultiKtab(KRB5_TAB, kdcw, kdcp);
         KDC.saveConfig(KRB5_CONF, kdcw, kdcp,
                 "default_keytab_name = " + KRB5_TAB,
                 "[domain_realm]",
@@ -157,6 +173,19 @@
 
         System.setProperty("java.security.krb5.conf", KRB5_CONF);
         Config.refresh();
+        KDC.writeMultiKtab(KRB5_TAB, kdcw, kdcp);
+
+        // Write a customized JAAS conf file, so that any kinit cache
+        // will be ignored.
+        System.setProperty("java.security.auth.login.config", OneKDC.JAAS_CONF);
+        File f = new File(OneKDC.JAAS_CONF);
+        FileOutputStream fos = new FileOutputStream(f);
+        fos.write((
+                "com.sun.security.jgss.krb5.initiate {\n" +
+                "    com.sun.security.auth.module.Krb5LoginModule required;\n};\n"
+                ).getBytes());
+        fos.close();
+        f.deleteOnExit();
 
         HttpServer h1 = httpd(WEB_PORT, "Negotiate", false,
                 "HTTP/" + WEB_HOST + "@" + REALM_WEB, KRB5_TAB);
@@ -164,23 +193,21 @@
                 "HTTP/" + PROXY_HOST + "@" + REALM_PROXY, KRB5_TAB);
 
         try {
-
-            BufferedReader reader;
-            java.net.Authenticator.setDefault(new KnowAllAuthenticator());
-
-            reader = new BufferedReader(new InputStreamReader(
-                    webUrl.openConnection().getInputStream()));
-            if (!reader.readLine().equals(CONTENT)) {
-                throw new RuntimeException("Bad content");
+            Exception e1 = null, e2 = null;
+            try {
+                test6578647();
+            } catch (Exception e) {
+                e1 = e;
+                e.printStackTrace();
             }
-
-            reader = new BufferedReader(new InputStreamReader(
-                    proxyUrl.openConnection(
-                    new Proxy(Proxy.Type.HTTP,
-                        new InetSocketAddress(PROXY_HOST, PROXY_PORT)))
-                    .getInputStream()));
-            if (!reader.readLine().equals(CONTENT)) {
-                throw new RuntimeException("Bad content");
+            try {
+                test6829283();
+            } catch (Exception e) {
+                e2 = e;
+                e.printStackTrace();
+            }
+            if (e1 != null || e2 != null) {
+                throw new RuntimeException("Test error");
             }
         } finally {
             // Must stop. Seems there's no HttpServer.startAsDaemon()
@@ -189,6 +216,40 @@
         }
     }
 
+    static void test6578647() throws Exception {
+        BufferedReader reader;
+        java.net.Authenticator.setDefault(new KnowAllAuthenticator());
+
+        reader = new BufferedReader(new InputStreamReader(
+                webUrl.openConnection().getInputStream()));
+        if (!reader.readLine().equals(CONTENT)) {
+            throw new RuntimeException("Bad content");
+        }
+
+        reader = new BufferedReader(new InputStreamReader(
+                proxyUrl.openConnection(
+                new Proxy(Proxy.Type.HTTP,
+                    new InetSocketAddress(PROXY_HOST, PROXY_PORT)))
+                .getInputStream()));
+        if (!reader.readLine().equals(CONTENT)) {
+            throw new RuntimeException("Bad content");
+        }
+    }
+
+    static void test6829283() throws Exception {
+        BufferedReader reader;
+        java.net.Authenticator.setDefault(new KnowNothingAuthenticator());
+        try {
+            new BufferedReader(new InputStreamReader(
+                    webUrl.openConnection().getInputStream()));
+        } catch (IOException ioe) {
+            // Will fail since no username and password is provided.
+        }
+        if (count > 1) {
+            throw new RuntimeException("Authenticator called twice");
+        }
+    }
+
     /**
      * Creates and starts an HTTP or proxy server that requires
      * Negotiate authentication.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/pkcs11/SecureRandom/TestDeserialization.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * @test
+ * @bug 6837847
+ * @summary Ensure a deserialized PKCS#11 SecureRandom is functional.
+ * @library ..
+ */
+
+import java.security.*;
+import java.io.*;
+
+public class TestDeserialization extends PKCS11Test {
+
+    public void main(Provider p) throws Exception {
+        // Skip this test for providers not found by java.security.Security
+        if (Security.getProvider(p.getName()) != p) {
+            System.out.println("Skip test for provider " + p.getName());
+            return;
+        }
+        SecureRandom r;
+        try {
+            r = SecureRandom.getInstance("PKCS11", p);
+            System.out.println("SecureRandom instance " + r);
+        } catch (NoSuchAlgorithmException e) {
+            System.out.println("Provider " + p +
+                               " does not support SecureRandom, skipping");
+            e.printStackTrace();
+            return;
+        }
+        r.setSeed(System.currentTimeMillis());
+        byte[] buf = new byte[16];
+        byte[] ser = toByteArray(r);
+        System.out.println("Serialized Len = " + ser.length);
+        SecureRandom r2 = fromByteArray(ser);
+        System.out.println("Deserialized into " + r2);
+        r2.nextBytes(buf);
+        System.out.println("Done");
+    }
+
+    public static void main(String[] args) throws Exception {
+        main(new TestDeserialization());
+    }
+
+    private byte[] toByteArray(SecureRandom r) throws Exception {
+        ByteArrayOutputStream out = new ByteArrayOutputStream(1024);
+        ObjectOutputStream outStream = null;
+        try {
+            outStream = new ObjectOutputStream(out);
+            outStream.writeObject(r);
+            return out.toByteArray();
+        } finally {
+            if (outStream != null) {
+                outStream.close();
+            }
+        }
+    }
+
+    private SecureRandom fromByteArray(byte[] buf) throws Exception {
+        SecureRandom r = null;
+        ByteArrayInputStream is = new ByteArrayInputStream(buf);
+        ObjectInputStream ois = null;
+        try {
+            ois = new ObjectInputStream(is);
+            r = (SecureRandom) ois.readObject();
+        } finally {
+            if (ois != null) {
+                ois.close();
+            }
+        }
+        return r;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/pkcs11/Signature/TestRSAKeyLength.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * @test %W% %E%
+ * @bug 6695485
+ * @summary Make sure initSign/initVerify() check RSA key lengths
+ * @author Yu-Ching Valerie Peng
+ * @library ..
+ */
+
+import java.security.*;
+
+public class TestRSAKeyLength extends PKCS11Test {
+    public static void main(String[] args) throws Exception {
+        main(new TestRSAKeyLength());
+    }
+    public void main(Provider p) throws Exception {
+        boolean isValidKeyLength[] = { true, true, false, false };
+        String algos[] = { "SHA1withRSA", "SHA256withRSA",
+                           "SHA384withRSA", "SHA512withRSA" };
+        KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", p);
+        kpg.initialize(512);
+        KeyPair kp = kpg.generateKeyPair();
+        PrivateKey privKey = kp.getPrivate();
+        PublicKey pubKey = kp.getPublic();
+
+        for (int i = 0; i < algos.length; i++) {
+            Signature sig = Signature.getInstance(algos[i], p);
+            System.out.println("Testing RSA signature " + algos[i]);
+            try {
+                sig.initSign(privKey);
+                if (!isValidKeyLength[i]) {
+                    throw new Exception("initSign: Expected IKE not thrown!");
+                }
+            } catch (InvalidKeyException ike) {
+                if (isValidKeyLength[i]) {
+                    throw new Exception("initSign: Unexpected " + ike);
+                }
+            }
+            try {
+                sig.initVerify(pubKey);
+                if (!isValidKeyLength[i]) {
+                    throw new RuntimeException("initVerify: Expected IKE not thrown!");
+                }
+                new SignedObject("Test string for getSignature test.", privKey, sig);
+            } catch (InvalidKeyException ike) {
+                if (isValidKeyLength[i]) {
+                    throw new Exception("initSign: Unexpected " + ike);
+                }
+            }
+        }
+    }
+}
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2001-2003 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2001-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,8 @@
  * @test
  * @bug 4403428
  * @summary Invalidating JSSE session on server causes SSLProtocolException
+ * @ignore incompatible with disabled unsafe renegotiation (6898739), please
+ *         reenable when safe renegotiation is implemented.
  * @author Brad Wetmore
  */
 
Binary file jdk/test/sun/security/ssl/etc/keystore has changed
Binary file jdk/test/sun/security/ssl/etc/truststore has changed
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2001-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2001-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,8 @@
  * @bug 4280338
  * @summary "Unsupported SSL message version" SSLProtocolException
  *      w/SSL_RSA_WITH_NULL_MD5
+ * @ignore incompatible with disabled unsafe renegotiation (6898739), please
+ *         reenable when safe renegotiation is implemented.
  *
  * @author Ram Marti
  * @author Brad Wetmore
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2003-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,8 @@
  * @test
  * @bug 4948079
  * @summary SSLEngineResult needs updating [none yet]
+ * @ignore incompatible with disabled unsafe renegotiation (6898739), please
+ *         reenable when safe renegotiation is implemented.
  *
  * This is a simple hack to test a bunch of conditions and check
  * their return codes.
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2003-2004 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,8 @@
  * @bug 4495742
  * @summary Add non-blocking SSL/TLS functionality, usable with any
  *      I/O abstraction
+ * @ignore incompatible with disabled unsafe renegotiation (6898739), please
+ *         reenable when safe renegotiation is implemented.
  *
  * This is a bit hacky, meant to test various conditions.  The main
  * thing I wanted to do with this was to do buffer reads/writes
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,8 @@
  * @test
  * @bug 4495742
  * @summary Demonstrate SSLEngine switch from no client auth to client auth.
+ * @ignore incompatible with disabled unsafe renegotiation (6898739), please
+ *         reenable when safe renegotiation is implemented.
  *
  * @author Brad R. Wetmore
  */
--- a/jdk/test/sun/security/ssl/sanity/ciphersuites/CheckCipherSuites.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/sun/security/ssl/sanity/ciphersuites/CheckCipherSuites.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2003 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2002-2010 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -40,9 +40,21 @@
         "SSL_RSA_WITH_RC4_128_MD5",
         "SSL_RSA_WITH_RC4_128_SHA",
         "TLS_RSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDH_ECDSA_WITH_RC4_128_SHA",
+        "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDH_RSA_WITH_RC4_128_SHA",
+        "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
+        "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
+        "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
         "TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
         "TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
         "SSL_RSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
         "SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
         "SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
         "SSL_RSA_WITH_DES_CBC_SHA",
@@ -59,11 +71,27 @@
         "SSL_RSA_WITH_RC4_128_SHA",
         "TLS_RSA_WITH_AES_128_CBC_SHA",
         "TLS_RSA_WITH_AES_256_CBC_SHA",
+        "TLS_ECDH_ECDSA_WITH_RC4_128_SHA",
+        "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA",
+        "TLS_ECDH_RSA_WITH_RC4_128_SHA",
+        "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA",
+        "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
+        "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
+        "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
+        "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
         "TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
         "TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
         "TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
         "TLS_DHE_DSS_WITH_AES_256_CBC_SHA",
         "SSL_RSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
         "SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
         "SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
         "SSL_RSA_WITH_DES_CBC_SHA",
@@ -81,9 +109,21 @@
         "SSL_RSA_WITH_RC4_128_MD5",
         "SSL_RSA_WITH_RC4_128_SHA",
         "TLS_RSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDH_ECDSA_WITH_RC4_128_SHA",
+        "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDH_RSA_WITH_RC4_128_SHA",
+        "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
+        "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
+        "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
         "TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
         "TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
         "SSL_RSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
         "SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
         "SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
         "SSL_RSA_WITH_DES_CBC_SHA",
@@ -93,14 +133,23 @@
         "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
         "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
         "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA",
+
         "SSL_RSA_WITH_NULL_MD5",
         "SSL_RSA_WITH_NULL_SHA",
+        "TLS_ECDH_ECDSA_WITH_NULL_SHA",
+        "TLS_ECDH_RSA_WITH_NULL_SHA",
+        "TLS_ECDHE_ECDSA_WITH_NULL_SHA",
+        "TLS_ECDHE_RSA_WITH_NULL_SHA",
         "SSL_DH_anon_WITH_RC4_128_MD5",
         "TLS_DH_anon_WITH_AES_128_CBC_SHA",
         "SSL_DH_anon_WITH_3DES_EDE_CBC_SHA",
         "SSL_DH_anon_WITH_DES_CBC_SHA",
+        "TLS_ECDH_anon_WITH_RC4_128_SHA",
+        "TLS_ECDH_anon_WITH_AES_128_CBC_SHA",
+        "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA",
         "SSL_DH_anon_EXPORT_WITH_RC4_40_MD5",
         "SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA",
+        "TLS_ECDH_anon_WITH_NULL_SHA",
         "TLS_KRB5_WITH_RC4_128_SHA",
         "TLS_KRB5_WITH_RC4_128_MD5",
         "TLS_KRB5_WITH_3DES_EDE_CBC_SHA",
@@ -110,7 +159,7 @@
         "TLS_KRB5_EXPORT_WITH_RC4_40_SHA",
         "TLS_KRB5_EXPORT_WITH_RC4_40_MD5",
         "TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA",
-        "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5"
+        "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5",
     };
 
     // supported ciphersuites using unlimited JCE policy jurisdiction files
@@ -120,11 +169,27 @@
         "SSL_RSA_WITH_RC4_128_SHA",
         "TLS_RSA_WITH_AES_128_CBC_SHA",
         "TLS_RSA_WITH_AES_256_CBC_SHA",
+        "TLS_ECDH_ECDSA_WITH_RC4_128_SHA",
+        "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA",
+        "TLS_ECDH_RSA_WITH_RC4_128_SHA",
+        "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA",
+        "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
+        "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
+        "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
+        "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
+        "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
         "TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
         "TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
         "TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
         "TLS_DHE_DSS_WITH_AES_256_CBC_SHA",
         "SSL_RSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
+        "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
         "SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
         "SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
         "SSL_RSA_WITH_DES_CBC_SHA",
@@ -134,15 +199,25 @@
         "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
         "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
         "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA",
+
         "SSL_RSA_WITH_NULL_MD5",
         "SSL_RSA_WITH_NULL_SHA",
+        "TLS_ECDH_ECDSA_WITH_NULL_SHA",
+        "TLS_ECDH_RSA_WITH_NULL_SHA",
+        "TLS_ECDHE_ECDSA_WITH_NULL_SHA",
+        "TLS_ECDHE_RSA_WITH_NULL_SHA",
         "SSL_DH_anon_WITH_RC4_128_MD5",
         "TLS_DH_anon_WITH_AES_128_CBC_SHA",
         "TLS_DH_anon_WITH_AES_256_CBC_SHA",
         "SSL_DH_anon_WITH_3DES_EDE_CBC_SHA",
         "SSL_DH_anon_WITH_DES_CBC_SHA",
+        "TLS_ECDH_anon_WITH_RC4_128_SHA",
+        "TLS_ECDH_anon_WITH_AES_128_CBC_SHA",
+        "TLS_ECDH_anon_WITH_AES_256_CBC_SHA",
+        "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA",
         "SSL_DH_anon_EXPORT_WITH_RC4_40_MD5",
         "SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA",
+        "TLS_ECDH_anon_WITH_NULL_SHA",
         "TLS_KRB5_WITH_RC4_128_SHA",
         "TLS_KRB5_WITH_RC4_128_MD5",
         "TLS_KRB5_WITH_3DES_EDE_CBC_SHA",
@@ -152,7 +227,7 @@
         "TLS_KRB5_EXPORT_WITH_RC4_40_SHA",
         "TLS_KRB5_EXPORT_WITH_RC4_40_MD5",
         "TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA",
-        "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5"
+        "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5",
     };
 
     private static void showSuites(String[] suites) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,879 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* @test
+ * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
+ * @bug 6766775
+ * @author Xuelei Fan
+ */
+
+import java.net.*;
+import java.util.*;
+import java.io.*;
+import javax.net.ssl.*;
+import java.security.KeyStore;
+import java.security.KeyFactory;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
+import java.security.spec.*;
+import java.security.interfaces.*;
+import java.math.BigInteger;
+
+import sun.security.ssl.SSLSocketImpl;
+
+/*
+ * Certificates and key used in the test.
+ *
+ * TLS server certificate:
+ * server private key:
+ * -----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,D9AE407F6D0E389A
+ *
+ * WPrA7TFol/cQCcp9oHnXWNpYlvRbbIcQj0m+RKT2Iuzfus+DHt3Zadf8nJpKfX2e
+ * h2rnhlzCN9M7djRDooZKDOPCsdBn51Au7HlZF3S3Opgo7D8XFM1a8t1Je4ke14oI
+ * nw6QKYsBblRziPnP2PZ0zvX24nOv7bbY8beynlJHGs00VWSFdoH2DS0aE1p6D+3n
+ * ptJuJ75dVfZFK4X7162APlNXevX8D6PEQpSiRw1rjjGGcnvQ4HdWk3BxDVDcCNJb
+ * Y1aGNRxsjTDvPi3R9Qx2M+W03QzEPx4SR3ZHVskeSJHaetM0TM/w/45Paq4GokXP
+ * ZeTnbEx1xmjkA7h+t4doLL4watx5F6yLsJzu8xB3lt/1EtmkYtLz1t7X4BetPAXz
+ * zS69X/VwhKfsOI3qXBWuL2oHPyhDmT1gcaUQwEPSV6ogHEEQEDXdiUS8heNK13KF
+ * TCQYFkETvV2BLxUhV1hypPzRQ6tUpJiAbD5KmoK2lD9slshG2QtvKQq0/bgkDY5J
+ * LhDHV2dtcZ3kDPkkZXpbcJQvoeH3d09C5sIsuTFo2zgNR6oETHUc5TzP6FY2YYRa
+ * QcK5HcmtsRRiXFm01ac+aMejJUIujjFt84SiKWT/73vC8AmY4tYcJBLjCg4XIxSH
+ * fdDFLL1YZENNO5ivlp8mdiHqcawx+36L7DrEZQ8RZt6cqST5t/+XTdM74s6k81GT
+ * pNsa82P2K2zmIUZ/DL2mKjW1vfRByw1NQFEBkN3vdyZxYfM/JyUzX4hbjXBEkh9Q
+ * QYrcwLKLjis2QzSvK04B3bvRzRb+4ocWiso8ZPAXAIxZFBWDpTMM2A==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICXAIBAAKBgQClrFscN6LdmYktsnm4j9VIpecchBeNaZzGrG358h0fORna03Ie
+ * buxEzHCk3LoAMPagTz1UemFqzFfQCn+VKBg/mtmU8hvIJIh+/p0PPftXUwizIDPU
+ * PxdHFNHN6gjYDnVOr77M0uyvqXpJ38LZrLgkQJCmA1Yq0DAFQCxPq9l0iQIDAQAB
+ * AoGAbqcbg1E1mkR99uOJoNeQYKFOJyGiiXTMnXV1TseC4+PDfQBU7Dax35GcesBi
+ * CtapIpFKKS5D+ozY6b7ZT8ojxuQ/uHLPAvz0WDR3ds4iRF8tyu71Q1ZHcQsJa17y
+ * yO7UbkSSKn/Mp9Rb+/dKqftUGNXVFLqgHBOzN2s3We3bbbECQQDYBPKOg3hkaGHo
+ * OhpHKqtQ6EVkldihG/3i4WejRonelXN+HRh1KrB2HBx0M8D/qAzP1i3rNSlSHer4
+ * 59YRTJnHAkEAxFX/sVYSn07BHv9Zhn6XXct/Cj43z/tKNbzlNbcxqQwQerw3IH51
+ * 8UH2YOA+GD3lXbKp+MytoFLWv8zg4YT/LwJAfqan75Z1R6lLffRS49bIiq8jwE16
+ * rTrUJ+kv8jKxMqc9B3vXkxpsS1M/+4E8bqgAmvpgAb8xcsvHsBd9ErdukQJBAKs2
+ * j67W75BrPjBI34pQ1LEfp56IGWXOrq1kF8IbCjxv3+MYRT6Z6UJFkpRymNPNDjsC
+ * dgUYgITiGJHUGXuw3lMCQHEHqo9ZtXz92yFT+VhsNc29B8m/sqUJdtCcMd/jGpAF
+ * u6GHufjqIZBpQsk63wbwESAPZZ+kk1O1kS5GIRLX608=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ *     00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ *     d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ *     1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ *     ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ *     7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ *     9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ *     d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ *     7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ *     30:05:40:2c:4f:ab:d9:74:89
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ *     6e:a7:1b:83:51:35:9a:44:7d:f6:e3:89:a0:d7:90:
+ *     60:a1:4e:27:21:a2:89:74:cc:9d:75:75:4e:c7:82:
+ *     e3:e3:c3:7d:00:54:ec:36:b1:df:91:9c:7a:c0:62:
+ *     0a:d6:a9:22:91:4a:29:2e:43:fa:8c:d8:e9:be:d9:
+ *     4f:ca:23:c6:e4:3f:b8:72:cf:02:fc:f4:58:34:77:
+ *     76:ce:22:44:5f:2d:ca:ee:f5:43:56:47:71:0b:09:
+ *     6b:5e:f2:c8:ee:d4:6e:44:92:2a:7f:cc:a7:d4:5b:
+ *     fb:f7:4a:a9:fb:54:18:d5:d5:14:ba:a0:1c:13:b3:
+ *     37:6b:37:59:ed:db:6d:b1
+ * prime1:
+ *     00:d8:04:f2:8e:83:78:64:68:61:e8:3a:1a:47:2a:
+ *     ab:50:e8:45:64:95:d8:a1:1b:fd:e2:e1:67:a3:46:
+ *     89:de:95:73:7e:1d:18:75:2a:b0:76:1c:1c:74:33:
+ *     c0:ff:a8:0c:cf:d6:2d:eb:35:29:52:1d:ea:f8:e7:
+ *     d6:11:4c:99:c7
+ * prime2:
+ *     00:c4:55:ff:b1:56:12:9f:4e:c1:1e:ff:59:86:7e:
+ *     97:5d:cb:7f:0a:3e:37:cf:fb:4a:35:bc:e5:35:b7:
+ *     31:a9:0c:10:7a:bc:37:20:7e:75:f1:41:f6:60:e0:
+ *     3e:18:3d:e5:5d:b2:a9:f8:cc:ad:a0:52:d6:bf:cc:
+ *     e0:e1:84:ff:2f
+ * exponent1:
+ *     7e:a6:a7:ef:96:75:47:a9:4b:7d:f4:52:e3:d6:c8:
+ *     8a:af:23:c0:4d:7a:ad:3a:d4:27:e9:2f:f2:32:b1:
+ *     32:a7:3d:07:7b:d7:93:1a:6c:4b:53:3f:fb:81:3c:
+ *     6e:a8:00:9a:fa:60:01:bf:31:72:cb:c7:b0:17:7d:
+ *     12:b7:6e:91
+ * exponent2:
+ *     00:ab:36:8f:ae:d6:ef:90:6b:3e:30:48:df:8a:50:
+ *     d4:b1:1f:a7:9e:88:19:65:ce:ae:ad:64:17:c2:1b:
+ *     0a:3c:6f:df:e3:18:45:3e:99:e9:42:45:92:94:72:
+ *     98:d3:cd:0e:3b:02:76:05:18:80:84:e2:18:91:d4:
+ *     19:7b:b0:de:53
+ * coefficient:
+ *     71:07:aa:8f:59:b5:7c:fd:db:21:53:f9:58:6c:35:
+ *     cd:bd:07:c9:bf:b2:a5:09:76:d0:9c:31:df:e3:1a:
+ *     90:05:bb:a1:87:b9:f8:ea:21:90:69:42:c9:3a:df:
+ *     06:f0:11:20:0f:65:9f:a4:93:53:b5:91:2e:46:21:
+ *     12:d7:eb:4f
+ *
+ *
+ * server certificate:
+ * Data:
+ *     Version: 3 (0x2)
+ *     Serial Number: 8 (0x8)
+ *     Signature Algorithm: md5WithRSAEncryption
+ *     Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Validity
+ *         Not Before: Dec  8 03:43:04 2008 GMT
+ *         Not After : Aug 25 03:43:04 2028 GMT
+ *     Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Server, CN=localhost
+ *     Subject Public Key Info:
+ *         Public Key Algorithm: rsaEncryption
+ *         RSA Public Key: (1024 bit)
+ *             Modulus (1024 bit):
+ *                 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ *                 d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ *                 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ *                 ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ *                 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ *                 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ *                 d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ *                 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ *                 30:05:40:2c:4f:ab:d9:74:89
+ *             Exponent: 65537 (0x10001)
+ *     X509v3 extensions:
+ *         X509v3 Basic Constraints:
+ *             CA:FALSE
+ *         X509v3 Key Usage:
+ *             Digital Signature, Non Repudiation, Key Encipherment
+ *         X509v3 Subject Key Identifier:
+ *             ED:6E:DB:F4:B5:56:C8:FB:1A:06:61:3F:0F:08:BB:A6:04:D8:16:54
+ *         X509v3 Authority Key Identifier:
+ *             keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ *         X509v3 Subject Alternative Name: critical
+ *             DNS:localhost
+ * Signature Algorithm: md5WithRSAEncryption0
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICpDCCAg2gAwIBAgIBCDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMDRaFw0yODA4MjUwMzQzMDRaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3
+ * ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6
+ * YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS
+ * 7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjczBxMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh
+ * bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAoqVTciHtcvsUj+YaTct8tUh3aTCsKsac
+ * PHhfQ+ObjiXSgxsKYTX7ym/wk/wvlbUcbqLKxsu7qrcJitH+H9heV1hEHEu65Uoi
+ * nRugFruyOrwvAylV8Cm2af7ddilmYJ+sdJA6N2M3xJRxR0G2LFHEXDNEjYReyexn
+ * JqCpf5uZGOo=
+ * -----END CERTIFICATE-----
+ *
+ *
+ * TLS client certificate:
+ * client private key:
+ * ----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,FA2A435CD35A9390
+ *
+ * Z+Y2uaETbsUWIyJUyVu1UV2G4rgFYJyACZT6Tp1KjRtxflSh2kXkJ9MpuXMXA0V4
+ * Yy3fDzPqCL9NJmQAYRlAx/W/+j4F5EyMWDIx8fUxzONRZyoiwF7jLm+KscAfv6Pf
+ * q7ItWOdj3z7IYrwlB8YIGd3F2cDKT3S+lYRk7rKb/qT7itbuHnY4Ardh3yl+MZak
+ * jBp+ELUlRsUqSr1V0LoM+0rCCykarpyfhpxEcqsrl0v9Cyi5uhU50/oKv5zql3SH
+ * l2ImgDjp3batAs8+Bd4NF2aqi0a7Hy44JUHxRm4caZryU/i/D9N1MbuM6882HLat
+ * 5N0G+NaIUfywa8mjwq2D5aiit18HqKA6XeRRYeJ5Dvu9DCO4GeFSwcUFIBMI0L46
+ * 7s114+oDodg57pMgITi+04vmUxvqlN9aiyd7f5Fgd7PeHGeOdbMz1NaJLJaPI9++
+ * NakK8eK9iwT/Gdq0Uap5/CHW7vCT5PO+h3HY0STH0lWStXhdWnFO04zTdywsbSp+
+ * DLpHeFT66shfeUlxR0PsCbG9vPRt/QmGLeYQZITppWo/ylSq4j+pRIuXvuWHdBRN
+ * rTZ8QF4Y7AxQUXVz1j1++s6ZMHTzaK2i9HrhmDs1MbJl+QwWre3Xpv3LvTVz3k5U
+ * wX8kuY1m3STt71QCaRWENq5sRaMImLxZbxc/ivFl9RAzUqo4NCxLod/QgA4iLqtO
+ * ztnlpzwlC/F8HbQ1oqYWwnZAPhzU/cULtstl+Yrws2c2atO323LbPXZqbASySgig
+ * sNpFXQMObdfP6LN23bY+1SvtK7V4NUTNhpdIc6INQAQ=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICWwIBAAKBgQC78EA2rCZUTvSjWgAvaSFvuXo6k+yi9uGOx2PYLxIwmS6w8o/4
+ * Jy0keCiE9wG/jUR53TvSVfPOPLJbIX3v/TNKsaP/xsibuQ98QTWX+ds6BWAFFa9Z
+ * F5KjEK0WHOQHU6+odqJWKpLT+SjgeM9eH0irXBnd4WdDunWN9YKsQ5JEGwIDAQAB
+ * AoGAEbdqNj0wN85hnWyEi/ObJU8UyKTdL9eaF72QGfcF/fLSxfd3vurihIeXOkGW
+ * tpn4lIxYcVGM9CognhqgJpl11jFTQzn1KqZ+NEJRKkCHA4hDabKJbSC9fXHvRwrf
+ * BsFpZqgiNxp3HseUTiwnaUVeyPgMt/jAj5nB5Sib+UyUxrECQQDnNQBiF2aifEg6
+ * zbJOOC7he5CHAdkFxSxWVFVHL6EfXfqdLVkUohMbgZv+XxyIeU2biOExSg49Kds3
+ * FOKgTau1AkEA0Bd1haj6QuCo8I0AXm2WO+MMTZMTvtHD/bGjKNM+fT4I8rKYnQRX
+ * 1acHdqS9Xx2rNJqZgkMmpESIdPR2fc4yjwJALFeM6EMmqvj8/VIf5UJ/Mz14fXwM
+ * PEARfckUxd9LnnFutCBTWlKvKXJVEZb6KO5ixPaegc57Jp3Vbh3yTN44lQJADD/1
+ * SSMDaIB1MYP7a5Oj7m6VQNPRq8AJe5vDcRnOae0G9dKRrVyeFxO4GsHj6/+BHp2j
+ * P8nYMn9eURQ7DXjf/QJAAQzMlWnKGSO8pyTDtnQx3hRMoUkOEhmNq4bQhLkYqtnY
+ * FcqpUQ2qMjW+NiNWk5HnTrMS3L9EdJobMUzaNZLy4w==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ *     00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ *     21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ *     12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ *     01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ *     7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ *     35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ *     ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ *     28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ *     75:8d:f5:82:ac:43:92:44:1b
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ *     11:b7:6a:36:3d:30:37:ce:61:9d:6c:84:8b:f3:9b:
+ *     25:4f:14:c8:a4:dd:2f:d7:9a:17:bd:90:19:f7:05:
+ *     fd:f2:d2:c5:f7:77:be:ea:e2:84:87:97:3a:41:96:
+ *     b6:99:f8:94:8c:58:71:51:8c:f4:2a:20:9e:1a:a0:
+ *     26:99:75:d6:31:53:43:39:f5:2a:a6:7e:34:42:51:
+ *     2a:40:87:03:88:43:69:b2:89:6d:20:bd:7d:71:ef:
+ *     47:0a:df:06:c1:69:66:a8:22:37:1a:77:1e:c7:94:
+ *     4e:2c:27:69:45:5e:c8:f8:0c:b7:f8:c0:8f:99:c1:
+ *     e5:28:9b:f9:4c:94:c6:b1
+ * prime1:
+ *     00:e7:35:00:62:17:66:a2:7c:48:3a:cd:b2:4e:38:
+ *     2e:e1:7b:90:87:01:d9:05:c5:2c:56:54:55:47:2f:
+ *     a1:1f:5d:fa:9d:2d:59:14:a2:13:1b:81:9b:fe:5f:
+ *     1c:88:79:4d:9b:88:e1:31:4a:0e:3d:29:db:37:14:
+ *     e2:a0:4d:ab:b5
+ * prime2:
+ *     00:d0:17:75:85:a8:fa:42:e0:a8:f0:8d:00:5e:6d:
+ *     96:3b:e3:0c:4d:93:13:be:d1:c3:fd:b1:a3:28:d3:
+ *     3e:7d:3e:08:f2:b2:98:9d:04:57:d5:a7:07:76:a4:
+ *     bd:5f:1d:ab:34:9a:99:82:43:26:a4:44:88:74:f4:
+ *     76:7d:ce:32:8f
+ * exponent1:
+ *     2c:57:8c:e8:43:26:aa:f8:fc:fd:52:1f:e5:42:7f:
+ *     33:3d:78:7d:7c:0c:3c:40:11:7d:c9:14:c5:df:4b:
+ *     9e:71:6e:b4:20:53:5a:52:af:29:72:55:11:96:fa:
+ *     28:ee:62:c4:f6:9e:81:ce:7b:26:9d:d5:6e:1d:f2:
+ *     4c:de:38:95
+ * exponent2:
+ *     0c:3f:f5:49:23:03:68:80:75:31:83:fb:6b:93:a3:
+ *     ee:6e:95:40:d3:d1:ab:c0:09:7b:9b:c3:71:19:ce:
+ *     69:ed:06:f5:d2:91:ad:5c:9e:17:13:b8:1a:c1:e3:
+ *     eb:ff:81:1e:9d:a3:3f:c9:d8:32:7f:5e:51:14:3b:
+ *     0d:78:df:fd
+ * coefficient:
+ *     01:0c:cc:95:69:ca:19:23:bc:a7:24:c3:b6:74:31:
+ *     de:14:4c:a1:49:0e:12:19:8d:ab:86:d0:84:b9:18:
+ *     aa:d9:d8:15:ca:a9:51:0d:aa:32:35:be:36:23:56:
+ *     93:91:e7:4e:b3:12:dc:bf:44:74:9a:1b:31:4c:da:
+ *     35:92:f2:e3
+ *
+ * client certificate:
+ * Data:
+ *     Version: 3 (0x2)
+ *     Serial Number: 9 (0x9)
+ *     Signature Algorithm: md5WithRSAEncryption
+ *     Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Validity
+ *         Not Before: Dec  8 03:43:24 2008 GMT
+ *         Not After : Aug 25 03:43:24 2028 GMT
+ *     Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Client, CN=localhost
+ *     Subject Public Key Info:
+ *         Public Key Algorithm: rsaEncryption
+ *         RSA Public Key: (1024 bit)
+ *             Modulus (1024 bit):
+ *                 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ *                 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ *                 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ *                 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ *                 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ *                 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ *                 ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ *                 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ *                 75:8d:f5:82:ac:43:92:44:1b
+ *             Exponent: 65537 (0x10001)
+ *     X509v3 extensions:
+ *         X509v3 Basic Constraints:
+ *             CA:FALSE
+ *         X509v3 Key Usage:
+ *             Digital Signature, Non Repudiation, Key Encipherment
+ *         X509v3 Subject Key Identifier:
+ *             CD:BB:C8:85:AA:91:BD:FD:1D:BE:CD:67:7C:FF:B3:E9:4C:A8:22:E6
+ *         X509v3 Authority Key Identifier:
+ *             keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ *         X509v3 Subject Alternative Name: critical
+ *             DNS:localhost
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICpDCCAg2gAwIBAgIBCTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMjRaFw0yODA4MjUwMzQzMjRaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas
+ * JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV
+ * 8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq
+ * ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjczBxMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh
+ * bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAm25gJyqW1JznQ1EyOtTGswBVwfgBOf+F
+ * HJuBTcflYQLbTD/AETPQJGvZU9tdhuLtbG3OPhR7vSY8zeAbfM3dbH7QFr3r47Gj
+ * XEH7qM/MX+Z3ifVaC4MeJmrYQkYFSuKeyyKpdRVX4w4nnFHF6OsNASsYrMW6LpxN
+ * cl/epUcHL7E=
+ * -----END CERTIFICATE-----
+ *
+ *
+ *
+ * Trusted CA certificate:
+ * Certificate:
+ *   Data:
+ *     Version: 3 (0x2)
+ *     Serial Number: 0 (0x0)
+ *     Signature Algorithm: md5WithRSAEncryption
+ *     Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Validity
+ *         Not Before: Dec  8 02:43:36 2008 GMT
+ *         Not After : Aug 25 02:43:36 2028 GMT
+ *     Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Subject Public Key Info:
+ *         Public Key Algorithm: rsaEncryption
+ *         RSA Public Key: (1024 bit)
+ *             Modulus (1024 bit):
+ *                 00:cb:c4:38:20:07:be:88:a7:93:b0:a1:43:51:2d:
+ *                 d7:8e:85:af:54:dd:ad:a2:7b:23:5b:cf:99:13:53:
+ *                 99:45:7d:ee:6d:ba:2d:bf:e3:ad:6e:3d:9f:1a:f9:
+ *                 03:97:e0:17:55:ae:11:26:57:de:01:29:8e:05:3f:
+ *                 21:f7:e7:36:e8:2e:37:d7:48:ac:53:d6:60:0e:c7:
+ *                 50:6d:f6:c5:85:f7:8b:a6:c5:91:35:72:3c:94:ee:
+ *                 f1:17:f0:71:e3:ec:1b:ce:ca:4e:40:42:b0:6d:ee:
+ *                 6a:0e:d6:e5:ad:3c:0f:c9:ba:82:4f:78:f8:89:97:
+ *                 89:2a:95:12:4c:d8:09:2a:e9
+ *             Exponent: 65537 (0x10001)
+ *     X509v3 extensions:
+ *         X509v3 Subject Key Identifier:
+ *             FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *         X509v3 Authority Key Identifier:
+ *             keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *             DirName:/C=US/ST=Some-State/L=Some-City/O=Some-Org
+ *             serial:00
+ *
+ *         X509v3 Basic Constraints:
+ *             CA:TRUE
+ *  Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+ * gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX
+ * 4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj
+ * 7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G
+ * A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ
+ * hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt
+ * U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw
+ * DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA
+ * ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ
+ * LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P
+ * 6Mvf0r1PNTY2hwTJLJmKtg==
+ * -----END CERTIFICATE---
+ */
+
+
+public class DNSIdentities {
+    static Map cookies;
+    ServerSocket ss;
+
+    /*
+     * =============================================================
+     * Set the various variables needed for the tests, then
+     * specify what tests to run on each side.
+     */
+
+    /*
+     * Should we run the client or server in a separate thread?
+     * Both sides can throw exceptions, but do you have a preference
+     * as to which side should be the main thread.
+     */
+    static boolean separateServerThread = true;
+
+    /*
+     * Where do we find the keystores?
+     */
+    static String trusedCertStr =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+        "EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ\n" +
+        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" +
+        "gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX\n" +
+        "4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj\n" +
+        "7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G\n" +
+        "A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ\n" +
+        "hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt\n" +
+        "U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw\n" +
+        "DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA\n" +
+        "ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ\n" +
+        "LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P\n" +
+        "6Mvf0r1PNTY2hwTJLJmKtg==\n" +
+        "-----END CERTIFICATE-----";
+
+    static String serverCertStr =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIICpDCCAg2gAwIBAgIBCDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+        "EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMDRaFw0yODA4MjUwMzQzMDRaMHIxCzAJ\n" +
+        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD\n" +
+        "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3\n" +
+        "ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6\n" +
+        "YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS\n" +
+        "7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjczBxMAkGA1UdEwQCMAAw\n" +
+        "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV\n" +
+        "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh\n" +
+        "bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAoqVTciHtcvsUj+YaTct8tUh3aTCsKsac\n" +
+        "PHhfQ+ObjiXSgxsKYTX7ym/wk/wvlbUcbqLKxsu7qrcJitH+H9heV1hEHEu65Uoi\n" +
+        "nRugFruyOrwvAylV8Cm2af7ddilmYJ+sdJA6N2M3xJRxR0G2LFHEXDNEjYReyexn\n" +
+        "JqCpf5uZGOo=\n" +
+        "-----END CERTIFICATE-----";
+
+    static String clientCertStr =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIICpDCCAg2gAwIBAgIBCTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+        "EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMjRaFw0yODA4MjUwMzQzMjRaMHIxCzAJ\n" +
+        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD\n" +
+        "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas\n" +
+        "JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV\n" +
+        "8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq\n" +
+        "ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjczBxMAkGA1UdEwQCMAAw\n" +
+        "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV\n" +
+        "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh\n" +
+        "bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAm25gJyqW1JznQ1EyOtTGswBVwfgBOf+F\n" +
+        "HJuBTcflYQLbTD/AETPQJGvZU9tdhuLtbG3OPhR7vSY8zeAbfM3dbH7QFr3r47Gj\n" +
+        "XEH7qM/MX+Z3ifVaC4MeJmrYQkYFSuKeyyKpdRVX4w4nnFHF6OsNASsYrMW6LpxN\n" +
+        "cl/epUcHL7E=\n" +
+        "-----END CERTIFICATE-----";
+
+    static byte serverPrivateExponent[] = {
+        (byte)0x6e, (byte)0xa7, (byte)0x1b, (byte)0x83,
+        (byte)0x51, (byte)0x35, (byte)0x9a, (byte)0x44,
+        (byte)0x7d, (byte)0xf6, (byte)0xe3, (byte)0x89,
+        (byte)0xa0, (byte)0xd7, (byte)0x90, (byte)0x60,
+        (byte)0xa1, (byte)0x4e, (byte)0x27, (byte)0x21,
+        (byte)0xa2, (byte)0x89, (byte)0x74, (byte)0xcc,
+        (byte)0x9d, (byte)0x75, (byte)0x75, (byte)0x4e,
+        (byte)0xc7, (byte)0x82, (byte)0xe3, (byte)0xe3,
+        (byte)0xc3, (byte)0x7d, (byte)0x00, (byte)0x54,
+        (byte)0xec, (byte)0x36, (byte)0xb1, (byte)0xdf,
+        (byte)0x91, (byte)0x9c, (byte)0x7a, (byte)0xc0,
+        (byte)0x62, (byte)0x0a, (byte)0xd6, (byte)0xa9,
+        (byte)0x22, (byte)0x91, (byte)0x4a, (byte)0x29,
+        (byte)0x2e, (byte)0x43, (byte)0xfa, (byte)0x8c,
+        (byte)0xd8, (byte)0xe9, (byte)0xbe, (byte)0xd9,
+        (byte)0x4f, (byte)0xca, (byte)0x23, (byte)0xc6,
+        (byte)0xe4, (byte)0x3f, (byte)0xb8, (byte)0x72,
+        (byte)0xcf, (byte)0x02, (byte)0xfc, (byte)0xf4,
+        (byte)0x58, (byte)0x34, (byte)0x77, (byte)0x76,
+        (byte)0xce, (byte)0x22, (byte)0x44, (byte)0x5f,
+        (byte)0x2d, (byte)0xca, (byte)0xee, (byte)0xf5,
+        (byte)0x43, (byte)0x56, (byte)0x47, (byte)0x71,
+        (byte)0x0b, (byte)0x09, (byte)0x6b, (byte)0x5e,
+        (byte)0xf2, (byte)0xc8, (byte)0xee, (byte)0xd4,
+        (byte)0x6e, (byte)0x44, (byte)0x92, (byte)0x2a,
+        (byte)0x7f, (byte)0xcc, (byte)0xa7, (byte)0xd4,
+        (byte)0x5b, (byte)0xfb, (byte)0xf7, (byte)0x4a,
+        (byte)0xa9, (byte)0xfb, (byte)0x54, (byte)0x18,
+        (byte)0xd5, (byte)0xd5, (byte)0x14, (byte)0xba,
+        (byte)0xa0, (byte)0x1c, (byte)0x13, (byte)0xb3,
+        (byte)0x37, (byte)0x6b, (byte)0x37, (byte)0x59,
+        (byte)0xed, (byte)0xdb, (byte)0x6d, (byte)0xb1
+    };
+
+    static byte serverModulus[] = {
+        (byte)0x00,
+        (byte)0xa5, (byte)0xac, (byte)0x5b, (byte)0x1c,
+        (byte)0x37, (byte)0xa2, (byte)0xdd, (byte)0x99,
+        (byte)0x89, (byte)0x2d, (byte)0xb2, (byte)0x79,
+        (byte)0xb8, (byte)0x8f, (byte)0xd5, (byte)0x48,
+        (byte)0xa5, (byte)0xe7, (byte)0x1c, (byte)0x84,
+        (byte)0x17, (byte)0x8d, (byte)0x69, (byte)0x9c,
+        (byte)0xc6, (byte)0xac, (byte)0x6d, (byte)0xf9,
+        (byte)0xf2, (byte)0x1d, (byte)0x1f, (byte)0x39,
+        (byte)0x19, (byte)0xda, (byte)0xd3, (byte)0x72,
+        (byte)0x1e, (byte)0x6e, (byte)0xec, (byte)0x44,
+        (byte)0xcc, (byte)0x70, (byte)0xa4, (byte)0xdc,
+        (byte)0xba, (byte)0x00, (byte)0x30, (byte)0xf6,
+        (byte)0xa0, (byte)0x4f, (byte)0x3d, (byte)0x54,
+        (byte)0x7a, (byte)0x61, (byte)0x6a, (byte)0xcc,
+        (byte)0x57, (byte)0xd0, (byte)0x0a, (byte)0x7f,
+        (byte)0x95, (byte)0x28, (byte)0x18, (byte)0x3f,
+        (byte)0x9a, (byte)0xd9, (byte)0x94, (byte)0xf2,
+        (byte)0x1b, (byte)0xc8, (byte)0x24, (byte)0x88,
+        (byte)0x7e, (byte)0xfe, (byte)0x9d, (byte)0x0f,
+        (byte)0x3d, (byte)0xfb, (byte)0x57, (byte)0x53,
+        (byte)0x08, (byte)0xb3, (byte)0x20, (byte)0x33,
+        (byte)0xd4, (byte)0x3f, (byte)0x17, (byte)0x47,
+        (byte)0x14, (byte)0xd1, (byte)0xcd, (byte)0xea,
+        (byte)0x08, (byte)0xd8, (byte)0x0e, (byte)0x75,
+        (byte)0x4e, (byte)0xaf, (byte)0xbe, (byte)0xcc,
+        (byte)0xd2, (byte)0xec, (byte)0xaf, (byte)0xa9,
+        (byte)0x7a, (byte)0x49, (byte)0xdf, (byte)0xc2,
+        (byte)0xd9, (byte)0xac, (byte)0xb8, (byte)0x24,
+        (byte)0x40, (byte)0x90, (byte)0xa6, (byte)0x03,
+        (byte)0x56, (byte)0x2a, (byte)0xd0, (byte)0x30,
+        (byte)0x05, (byte)0x40, (byte)0x2c, (byte)0x4f,
+        (byte)0xab, (byte)0xd9, (byte)0x74, (byte)0x89
+    };
+
+    static byte clientPrivateExponent[] = {
+        (byte)0x11, (byte)0xb7, (byte)0x6a, (byte)0x36,
+        (byte)0x3d, (byte)0x30, (byte)0x37, (byte)0xce,
+        (byte)0x61, (byte)0x9d, (byte)0x6c, (byte)0x84,
+        (byte)0x8b, (byte)0xf3, (byte)0x9b, (byte)0x25,
+        (byte)0x4f, (byte)0x14, (byte)0xc8, (byte)0xa4,
+        (byte)0xdd, (byte)0x2f, (byte)0xd7, (byte)0x9a,
+        (byte)0x17, (byte)0xbd, (byte)0x90, (byte)0x19,
+        (byte)0xf7, (byte)0x05, (byte)0xfd, (byte)0xf2,
+        (byte)0xd2, (byte)0xc5, (byte)0xf7, (byte)0x77,
+        (byte)0xbe, (byte)0xea, (byte)0xe2, (byte)0x84,
+        (byte)0x87, (byte)0x97, (byte)0x3a, (byte)0x41,
+        (byte)0x96, (byte)0xb6, (byte)0x99, (byte)0xf8,
+        (byte)0x94, (byte)0x8c, (byte)0x58, (byte)0x71,
+        (byte)0x51, (byte)0x8c, (byte)0xf4, (byte)0x2a,
+        (byte)0x20, (byte)0x9e, (byte)0x1a, (byte)0xa0,
+        (byte)0x26, (byte)0x99, (byte)0x75, (byte)0xd6,
+        (byte)0x31, (byte)0x53, (byte)0x43, (byte)0x39,
+        (byte)0xf5, (byte)0x2a, (byte)0xa6, (byte)0x7e,
+        (byte)0x34, (byte)0x42, (byte)0x51, (byte)0x2a,
+        (byte)0x40, (byte)0x87, (byte)0x03, (byte)0x88,
+        (byte)0x43, (byte)0x69, (byte)0xb2, (byte)0x89,
+        (byte)0x6d, (byte)0x20, (byte)0xbd, (byte)0x7d,
+        (byte)0x71, (byte)0xef, (byte)0x47, (byte)0x0a,
+        (byte)0xdf, (byte)0x06, (byte)0xc1, (byte)0x69,
+        (byte)0x66, (byte)0xa8, (byte)0x22, (byte)0x37,
+        (byte)0x1a, (byte)0x77, (byte)0x1e, (byte)0xc7,
+        (byte)0x94, (byte)0x4e, (byte)0x2c, (byte)0x27,
+        (byte)0x69, (byte)0x45, (byte)0x5e, (byte)0xc8,
+        (byte)0xf8, (byte)0x0c, (byte)0xb7, (byte)0xf8,
+        (byte)0xc0, (byte)0x8f, (byte)0x99, (byte)0xc1,
+        (byte)0xe5, (byte)0x28, (byte)0x9b, (byte)0xf9,
+        (byte)0x4c, (byte)0x94, (byte)0xc6, (byte)0xb1
+    };
+
+    static byte clientModulus[] = {
+        (byte)0x00,
+        (byte)0xbb, (byte)0xf0, (byte)0x40, (byte)0x36,
+        (byte)0xac, (byte)0x26, (byte)0x54, (byte)0x4e,
+        (byte)0xf4, (byte)0xa3, (byte)0x5a, (byte)0x00,
+        (byte)0x2f, (byte)0x69, (byte)0x21, (byte)0x6f,
+        (byte)0xb9, (byte)0x7a, (byte)0x3a, (byte)0x93,
+        (byte)0xec, (byte)0xa2, (byte)0xf6, (byte)0xe1,
+        (byte)0x8e, (byte)0xc7, (byte)0x63, (byte)0xd8,
+        (byte)0x2f, (byte)0x12, (byte)0x30, (byte)0x99,
+        (byte)0x2e, (byte)0xb0, (byte)0xf2, (byte)0x8f,
+        (byte)0xf8, (byte)0x27, (byte)0x2d, (byte)0x24,
+        (byte)0x78, (byte)0x28, (byte)0x84, (byte)0xf7,
+        (byte)0x01, (byte)0xbf, (byte)0x8d, (byte)0x44,
+        (byte)0x79, (byte)0xdd, (byte)0x3b, (byte)0xd2,
+        (byte)0x55, (byte)0xf3, (byte)0xce, (byte)0x3c,
+        (byte)0xb2, (byte)0x5b, (byte)0x21, (byte)0x7d,
+        (byte)0xef, (byte)0xfd, (byte)0x33, (byte)0x4a,
+        (byte)0xb1, (byte)0xa3, (byte)0xff, (byte)0xc6,
+        (byte)0xc8, (byte)0x9b, (byte)0xb9, (byte)0x0f,
+        (byte)0x7c, (byte)0x41, (byte)0x35, (byte)0x97,
+        (byte)0xf9, (byte)0xdb, (byte)0x3a, (byte)0x05,
+        (byte)0x60, (byte)0x05, (byte)0x15, (byte)0xaf,
+        (byte)0x59, (byte)0x17, (byte)0x92, (byte)0xa3,
+        (byte)0x10, (byte)0xad, (byte)0x16, (byte)0x1c,
+        (byte)0xe4, (byte)0x07, (byte)0x53, (byte)0xaf,
+        (byte)0xa8, (byte)0x76, (byte)0xa2, (byte)0x56,
+        (byte)0x2a, (byte)0x92, (byte)0xd3, (byte)0xf9,
+        (byte)0x28, (byte)0xe0, (byte)0x78, (byte)0xcf,
+        (byte)0x5e, (byte)0x1f, (byte)0x48, (byte)0xab,
+        (byte)0x5c, (byte)0x19, (byte)0xdd, (byte)0xe1,
+        (byte)0x67, (byte)0x43, (byte)0xba, (byte)0x75,
+        (byte)0x8d, (byte)0xf5, (byte)0x82, (byte)0xac,
+        (byte)0x43, (byte)0x92, (byte)0x44, (byte)0x1b
+    };
+
+    static char passphrase[] = "passphrase".toCharArray();
+
+    /*
+     * Is the server ready to serve?
+     */
+    volatile static boolean serverReady = false;
+
+    /*
+     * Turn on SSL debugging?
+     */
+    static boolean debug = false;
+
+    private SSLServerSocket sslServerSocket = null;
+
+    /*
+     * Define the server side of the test.
+     *
+     * If the server prematurely exits, serverReady will be set to true
+     * to avoid infinite hangs.
+     */
+    void doServerSide() throws Exception {
+        SSLContext context = getSSLContext(trusedCertStr, serverCertStr,
+            serverModulus, serverPrivateExponent, passphrase);
+        SSLServerSocketFactory sslssf = context.getServerSocketFactory();
+
+        sslServerSocket =
+            (SSLServerSocket) sslssf.createServerSocket(serverPort);
+        serverPort = sslServerSocket.getLocalPort();
+
+        /*
+         * Signal Client, we're ready for his connect.
+         */
+        serverReady = true;
+
+        SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
+        sslSocket.setNeedClientAuth(true);
+        if (sslSocket instanceof SSLSocketImpl) {
+            ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
+        }
+
+        PrintStream out =
+                new PrintStream(sslSocket.getOutputStream());
+
+        try {
+            // ignore request data
+
+            // send the response
+            out.print("HTTP/1.1 200 OK\r\n");
+            out.print("Content-Type: text/html; charset=iso-8859-1\r\n");
+            out.print("Content-Length: "+ 9 +"\r\n");
+            out.print("\r\n");
+            out.print("Testing\r\n");
+            out.flush();
+        } finally {
+             // close the socket
+             Thread.sleep(2000);
+             System.out.println("Server closing socket");
+             sslSocket.close();
+             serverReady = false;
+        }
+
+    }
+
+    /*
+     * Define the client side of the test.
+     *
+     * If the server prematurely exits, serverReady will be set to true
+     * to avoid infinite hangs.
+     */
+    void doClientSide() throws Exception {
+        SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
+            clientModulus, clientPrivateExponent, passphrase);
+
+        SSLContext.setDefault(context);
+
+        /*
+         * Wait for server to get started.
+         */
+        while (!serverReady) {
+            Thread.sleep(50);
+        }
+
+        HttpsURLConnection http = null;
+
+        /* establish http connection to server */
+        URL url = new URL("https://localhost:" + serverPort+"/");
+        System.out.println("url is "+url.toString());
+
+        http = (HttpsURLConnection)url.openConnection();
+
+        int respCode = http.getResponseCode();
+        System.out.println("respCode = "+respCode);
+
+        http.disconnect();
+    }
+
+    /*
+     * =============================================================
+     * The remainder is just support stuff
+     */
+
+    // use any free port by default
+    volatile int serverPort = 0;
+
+    volatile Exception serverException = null;
+    volatile Exception clientException = null;
+
+    public static void main(String args[]) throws Exception {
+        if (debug)
+            System.setProperty("javax.net.debug", "all");
+
+        /*
+         * Start the tests.
+         */
+        new DNSIdentities();
+    }
+
+    Thread clientThread = null;
+    Thread serverThread = null;
+    /*
+     * Primary constructor, used to drive remainder of the test.
+     *
+     * Fork off the other side, then do your work.
+     */
+    DNSIdentities() throws Exception {
+        if (separateServerThread) {
+            startServer(true);
+            startClient(false);
+        } else {
+            startClient(true);
+            startServer(false);
+        }
+
+        /*
+         * Wait for other side to close down.
+         */
+        if (separateServerThread) {
+            serverThread.join();
+        } else {
+            clientThread.join();
+        }
+
+        /*
+         * When we get here, the test is pretty much over.
+         *
+         * If the main thread excepted, that propagates back
+         * immediately.  If the other thread threw an exception, we
+         * should report back.
+         */
+        if (serverException != null)
+            throw serverException;
+        if (clientException != null)
+            throw clientException;
+    }
+
+    void startServer(boolean newThread) throws Exception {
+        if (newThread) {
+            serverThread = new Thread() {
+                public void run() {
+                    try {
+                        doServerSide();
+                    } catch (Exception e) {
+                        /*
+                         * Our server thread just died.
+                         *
+                         * Release the client, if not active already...
+                         */
+                        System.err.println("Server died...");
+                        serverReady = true;
+                        serverException = e;
+                    }
+                }
+            };
+            serverThread.start();
+        } else {
+            doServerSide();
+        }
+    }
+
+    void startClient(boolean newThread) throws Exception {
+        if (newThread) {
+            clientThread = new Thread() {
+                public void run() {
+                    try {
+                        doClientSide();
+                    } catch (Exception e) {
+                        /*
+                         * Our client thread just died.
+                         */
+                        System.err.println("Client died...");
+                        clientException = e;
+                    }
+                }
+            };
+            clientThread.start();
+        } else {
+            doClientSide();
+        }
+    }
+
+    // get the ssl context
+    private static SSLContext getSSLContext(String trusedCertStr,
+            String keyCertStr, byte[] modulus,
+            byte[] privateExponent, char[] passphrase) throws Exception {
+
+        // generate certificate from cert string
+        CertificateFactory cf = CertificateFactory.getInstance("X.509");
+
+        ByteArrayInputStream is =
+                    new ByteArrayInputStream(trusedCertStr.getBytes());
+        Certificate trusedCert = cf.generateCertificate(is);
+        is.close();
+
+        // create a key store
+        KeyStore ks = KeyStore.getInstance("JKS");
+        ks.load(null, null);
+
+        // import the trused cert
+        ks.setCertificateEntry("RSA Export Signer", trusedCert);
+
+        if (keyCertStr != null) {
+            // generate the private key.
+            RSAPrivateKeySpec priKeySpec = new RSAPrivateKeySpec(
+                                            new BigInteger(modulus),
+                                            new BigInteger(privateExponent));
+            KeyFactory kf = KeyFactory.getInstance("RSA");
+            RSAPrivateKey priKey =
+                    (RSAPrivateKey)kf.generatePrivate(priKeySpec);
+
+            // generate certificate chain
+            is = new ByteArrayInputStream(keyCertStr.getBytes());
+            Certificate keyCert = cf.generateCertificate(is);
+            is.close();
+
+            Certificate[] chain = new Certificate[2];
+            chain[0] = keyCert;
+            chain[1] = trusedCert;
+
+            // import the key entry.
+            ks.setKeyEntry("Whatever", priKey, passphrase, chain);
+        }
+
+        // create SSL context
+        TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
+        tmf.init(ks);
+
+        SSLContext ctx = SSLContext.getInstance("TLS");
+
+        if (keyCertStr != null) {
+            KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
+            kmf.init(ks, passphrase);
+
+            ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+        } else {
+            ctx.init(null, tmf.getTrustManagers(), null);
+        }
+
+        return ctx;
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,210 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * @test
+ * @bug 6771432
+ * @summary createSocket() - smpatch fails using 1.6.0_10 because of "Unconnected sockets not implemented"
+ */
+
+import javax.net.SocketFactory;
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSession;
+import javax.net.ssl.SSLSocketFactory;
+import java.security.NoSuchAlgorithmException;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.net.URL;
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import com.sun.net.httpserver.HttpExchange;
+import com.sun.net.httpserver.HttpHandler;
+import com.sun.net.httpserver.HttpsConfigurator;
+
+/*
+ * This class tests that the HTTPS protocol handler is using its socket factory for
+ * creating new Sockets. It does this by wrapping the default SSLSocketFactory with
+ * its own socket factory, SimpleSSLSocketFactory, and verifying that when a https
+ * connection is made one of the socket factories createSocket methods, that
+ * actually creates a Socket, is being invoked by the protocol handler.
+ */
+
+public class HttpsCreateSockTest
+{
+    /*
+     * Where do we find the keystores?
+     */
+    static String pathToStores = "../../../../../../etc";
+    static String keyStoreFile = "keystore";
+    static String trustStoreFile = "truststore";
+    static String passwd = "passphrase";
+
+    com.sun.net.httpserver.HttpsServer httpsServer;
+    MyHandler httpHandler;
+
+    public static void main(String[] args) {
+        String keyFilename =
+            System.getProperty("test.src", "./") + "/" + pathToStores +
+                "/" + keyStoreFile;
+        String trustFilename =
+            System.getProperty("test.src", "./") + "/" + pathToStores +
+                "/" + trustStoreFile;
+
+        System.setProperty("javax.net.ssl.keyStore", keyFilename);
+        System.setProperty("javax.net.ssl.keyStorePassword", passwd);
+        System.setProperty("javax.net.ssl.trustStore", trustFilename);
+        System.setProperty("javax.net.ssl.trustStorePassword", passwd);
+
+        new HttpsCreateSockTest();
+    }
+
+    public HttpsCreateSockTest() {
+        try {
+            startHttpsServer();
+            doClient();
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        } catch (IOException ioe) {
+            ioe.printStackTrace();
+        } finally {
+           httpsServer.stop(1);
+        }
+    }
+
+    void doClient() throws IOException {
+        InetSocketAddress address = httpsServer.getAddress();
+
+        URL url = new URL("https://localhost:" + address.getPort() + "/");
+        System.out.println("trying to connect to " + url + "...");
+
+        HttpsURLConnection uc = (HttpsURLConnection) url.openConnection();
+        uc.setHostnameVerifier(new AllHostnameVerifier());
+        if (uc instanceof javax.net.ssl.HttpsURLConnection) {
+            ((javax.net.ssl.HttpsURLConnection) uc).setSSLSocketFactory(new SimpleSSLSocketFactory());
+            System.out.println("Using TestSocketFactory");
+        }
+        uc.connect();
+        System.out.println("CONNECTED " + uc);
+        System.out.println(uc.getResponseMessage());
+        uc.disconnect();
+    }
+
+    /**
+     * Https Server
+     */
+    public void startHttpsServer() throws IOException, NoSuchAlgorithmException  {
+        httpsServer = com.sun.net.httpserver.HttpsServer.create(new InetSocketAddress(0), 0);
+        httpsServer.createContext("/", new MyHandler());
+        httpsServer.setHttpsConfigurator(new HttpsConfigurator(SSLContext.getDefault()));
+        httpsServer.start();
+    }
+
+    class MyHandler implements HttpHandler {
+        private String message = "This is a message!";
+
+        @Override
+        public void handle(HttpExchange t) throws IOException {
+            t.sendResponseHeaders(200, message.length());
+            BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(t.getResponseBody(), "ISO8859-1"));
+            writer.write(message, 0, message.length());
+            writer.close();
+            t.close();
+        }
+    }
+
+    /**
+     * Simple wrapper on default SSLSocketFactory
+     */
+    class SimpleSSLSocketFactory extends SSLSocketFactory
+    {
+        /*
+         * true if this factory has been used to create a new Socket, i.e.
+         * one of the SocketFactory methods has been called.
+         */
+        boolean socketCreated = false;
+
+        /*
+         * true if this factory has been used to wrap a Socket, i.e.
+         * the SSLSocketFactory method,
+         * createSocket(Socket, String, int, boolean), has been called.
+         */
+        boolean socketWrapped = false;
+
+        @Override
+        public Socket createSocket(InetAddress host, int port) throws IOException {
+            socketCreated = true;
+            return SocketFactory.getDefault().createSocket(host, port);
+        }
+
+        @Override
+        public Socket createSocket(InetAddress address, int port, InetAddress localAddress,
+                                   int localPort) throws IOException {
+            socketCreated = true;
+            return SocketFactory.getDefault().createSocket(address, port, localAddress, localPort);
+        }
+
+        @Override
+        public Socket createSocket(String host, int port) throws IOException {
+            socketCreated = true;
+            return SocketFactory.getDefault().createSocket(host, port);
+        }
+
+        @Override
+        public Socket createSocket(String host, int port, InetAddress localHost,
+                                   int localPort) throws IOException {
+            socketCreated = true;
+            return SocketFactory.getDefault().createSocket(host, port, localHost, localPort);
+        }
+
+        // methods from SSLSocketFactory
+        @Override
+        public Socket createSocket(Socket s, String host, int port,
+                                   boolean autoClose) throws IOException {
+            socketWrapped = true;
+            return ((SSLSocketFactory) SSLSocketFactory.getDefault()).createSocket
+                                                               (s, host, port, autoClose);
+        }
+
+        @Override
+        public String[] getDefaultCipherSuites() {
+            return ((SSLSocketFactory) SSLSocketFactory.getDefault()).getDefaultCipherSuites();
+        }
+
+        @Override
+        public String[] getSupportedCipherSuites()  {
+             return ((SSLSocketFactory) SSLSocketFactory.getDefault()).getSupportedCipherSuites();
+        }
+    }
+
+    class AllHostnameVerifier implements HostnameVerifier
+    {
+        @Override
+        public boolean verify(String hostname, SSLSession session) {
+            return true;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,225 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6614957
+ * @summary HttpsURLConnection not using the set SSLSocketFactory for creating all its Sockets
+ * @run main/othervm HttpsSocketFacTest
+ */
+
+import javax.net.SocketFactory;
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSession;
+import javax.net.ssl.SSLSocketFactory;
+import java.security.NoSuchAlgorithmException;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.net.URL;
+import java.io.BufferedWriter;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import com.sun.net.httpserver.HttpExchange;
+import com.sun.net.httpserver.HttpHandler;
+import com.sun.net.httpserver.HttpsConfigurator;
+
+/*
+ * This class tests that the HTTPS protocol handler is using its socket factory for
+ * creating new Sockets. It does this by wrapping the default SSLSocketFactory with
+ * its own socket factory, SimpleSSLSocketFactory, and verifying that when a https
+ * connection is made one of the socket factories createSocket methods, that
+ * actually creates a Socket, is being invoked by the protocol handler.
+ */
+
+public class HttpsSocketFacTest
+{
+    /*
+     * Where do we find the keystores?
+     */
+    static String pathToStores = "../../../../../../etc";
+    static String keyStoreFile = "keystore";
+    static String trustStoreFile = "truststore";
+    static String passwd = "passphrase";
+
+    com.sun.net.httpserver.HttpsServer httpsServer;
+    MyHandler httpHandler;
+
+    public static void main(String[] args) {
+        String keyFilename =
+            System.getProperty("test.src", "./") + "/" + pathToStores +
+                "/" + keyStoreFile;
+        String trustFilename =
+            System.getProperty("test.src", "./") + "/" + pathToStores +
+                "/" + trustStoreFile;
+
+        System.setProperty("javax.net.ssl.keyStore", keyFilename);
+        System.setProperty("javax.net.ssl.keyStorePassword", passwd);
+        System.setProperty("javax.net.ssl.trustStore", trustFilename);
+        System.setProperty("javax.net.ssl.trustStorePassword", passwd);
+
+        new HttpsSocketFacTest();
+    }
+
+    public HttpsSocketFacTest() {
+        try {
+            startHttpsServer();
+            doClient();
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        } catch (IOException ioe) {
+            ioe.printStackTrace();
+        } finally {
+           httpsServer.stop(1);
+        }
+    }
+
+    void doClient() throws IOException {
+        InetSocketAddress address = httpsServer.getAddress();
+        URL url = new URL("https://localhost:" + address.getPort() + "/test6614957/");
+        System.out.println("trying to connect to " + url + "...");
+
+        HttpsURLConnection uc = (HttpsURLConnection) url.openConnection();
+        SimpleSSLSocketFactory sssf = new SimpleSSLSocketFactory();
+        uc.setSSLSocketFactory(sssf);
+        uc.setHostnameVerifier(new AllHostnameVerifier());
+        InputStream is = uc.getInputStream();
+
+        byte[] ba = new byte[1024];
+        int read = 0;
+        while ((read = is.read(ba)) != -1) {
+            System.out.println(new String(ba, 0, read));
+        }
+
+        System.out.println("SimpleSSLSocketFactory.socketCreated = " + sssf.socketCreated);
+        System.out.println("SimpleSSLSocketFactory.socketWrapped = " + sssf.socketWrapped);
+
+        if (!sssf.socketCreated)
+            throw new RuntimeException("Failed: Socket Factory not being called to create Socket");
+    }
+
+    /**
+     * Https Server
+     */
+    public void startHttpsServer() throws IOException, NoSuchAlgorithmException  {
+        httpsServer = com.sun.net.httpserver.HttpsServer.create(new InetSocketAddress(0), 0);
+        httpsServer.createContext("/test6614957/", new MyHandler());
+        httpsServer.setHttpsConfigurator(new HttpsConfigurator(SSLContext.getDefault()));
+        httpsServer.start();
+    }
+
+    class MyHandler implements HttpHandler {
+        private String message = "This is a message!";
+
+        @Override
+        public void handle(HttpExchange t) throws IOException {
+            t.sendResponseHeaders(200, message.length());
+            BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(t.getResponseBody(), "ISO8859-1"));
+            writer.write(message, 0, message.length());
+            writer.close();
+            t.close();
+        }
+    }
+
+    /**
+     * Simple wrapper on default SSLSocketFactory
+     */
+    class SimpleSSLSocketFactory extends SSLSocketFactory
+    {
+        /*
+         * true if this factory has been used to create a new Socket, i.e.
+         * one of the SocketFactory methods has been called.
+         */
+        boolean socketCreated = false;
+
+        /*
+         * true if this factory has been used to wrap a Socket, i.e.
+         * the SSLSocketFactory method,
+         * createSocket(Socket, String, int, boolean), has been called.
+         */
+        boolean socketWrapped = false;
+
+        // methods for SocketFactory
+        @Override
+        public Socket createSocket() throws IOException {
+            socketCreated = true;
+            return SocketFactory.getDefault().createSocket();
+        }
+
+        @Override
+        public Socket createSocket(InetAddress host, int port) throws IOException {
+            socketCreated = true;
+            return SocketFactory.getDefault().createSocket(host, port);
+        }
+
+        @Override
+        public Socket createSocket(InetAddress address, int port, InetAddress localAddress,
+                                   int localPort) throws IOException {
+            socketCreated = true;
+            return SocketFactory.getDefault().createSocket(address, port, localAddress, localPort);
+        }
+
+        @Override
+        public Socket createSocket(String host, int port) throws IOException {
+            socketCreated = true;
+            return SocketFactory.getDefault().createSocket(host, port);
+        }
+
+        @Override
+        public Socket createSocket(String host, int port, InetAddress localHost,
+                                   int localPort) throws IOException {
+            socketCreated = true;
+            return SocketFactory.getDefault().createSocket(host, port, localHost, localPort);
+        }
+
+        // methods from SSLSocketFactory
+        @Override
+        public Socket createSocket(Socket s, String host, int port,
+                                   boolean autoClose) throws IOException {
+            socketWrapped = true;
+            return ((SSLSocketFactory) SSLSocketFactory.getDefault()).createSocket
+                                                               (s, host, port, autoClose);
+        }
+
+        @Override
+        public String[] getDefaultCipherSuites() {
+            return ((SSLSocketFactory) SSLSocketFactory.getDefault()).getDefaultCipherSuites();
+        }
+
+        @Override
+        public String[] getSupportedCipherSuites()  {
+             return ((SSLSocketFactory) SSLSocketFactory.getDefault()).getSupportedCipherSuites();
+        }
+    }
+
+    class AllHostnameVerifier implements HostnameVerifier
+    {
+        @Override
+        public boolean verify(String hostname, SSLSession session) {
+            return true;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,887 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* @test
+ * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
+ * @bug 6766775
+ * @author Xuelei Fan
+ */
+
+import java.net.*;
+import java.util.*;
+import java.io.*;
+import javax.net.ssl.*;
+import java.security.KeyStore;
+import java.security.KeyFactory;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
+import java.security.spec.*;
+import java.security.interfaces.*;
+import java.math.BigInteger;
+
+import sun.security.ssl.SSLSocketImpl;
+
+/*
+ * Certificates and key used in the test.
+ *
+ * TLS server certificate:
+ * server private key:
+ * -----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,D9AE407F6D0E389A
+ *
+ * WPrA7TFol/cQCcp9oHnXWNpYlvRbbIcQj0m+RKT2Iuzfus+DHt3Zadf8nJpKfX2e
+ * h2rnhlzCN9M7djRDooZKDOPCsdBn51Au7HlZF3S3Opgo7D8XFM1a8t1Je4ke14oI
+ * nw6QKYsBblRziPnP2PZ0zvX24nOv7bbY8beynlJHGs00VWSFdoH2DS0aE1p6D+3n
+ * ptJuJ75dVfZFK4X7162APlNXevX8D6PEQpSiRw1rjjGGcnvQ4HdWk3BxDVDcCNJb
+ * Y1aGNRxsjTDvPi3R9Qx2M+W03QzEPx4SR3ZHVskeSJHaetM0TM/w/45Paq4GokXP
+ * ZeTnbEx1xmjkA7h+t4doLL4watx5F6yLsJzu8xB3lt/1EtmkYtLz1t7X4BetPAXz
+ * zS69X/VwhKfsOI3qXBWuL2oHPyhDmT1gcaUQwEPSV6ogHEEQEDXdiUS8heNK13KF
+ * TCQYFkETvV2BLxUhV1hypPzRQ6tUpJiAbD5KmoK2lD9slshG2QtvKQq0/bgkDY5J
+ * LhDHV2dtcZ3kDPkkZXpbcJQvoeH3d09C5sIsuTFo2zgNR6oETHUc5TzP6FY2YYRa
+ * QcK5HcmtsRRiXFm01ac+aMejJUIujjFt84SiKWT/73vC8AmY4tYcJBLjCg4XIxSH
+ * fdDFLL1YZENNO5ivlp8mdiHqcawx+36L7DrEZQ8RZt6cqST5t/+XTdM74s6k81GT
+ * pNsa82P2K2zmIUZ/DL2mKjW1vfRByw1NQFEBkN3vdyZxYfM/JyUzX4hbjXBEkh9Q
+ * QYrcwLKLjis2QzSvK04B3bvRzRb+4ocWiso8ZPAXAIxZFBWDpTMM2A==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICXAIBAAKBgQClrFscN6LdmYktsnm4j9VIpecchBeNaZzGrG358h0fORna03Ie
+ * buxEzHCk3LoAMPagTz1UemFqzFfQCn+VKBg/mtmU8hvIJIh+/p0PPftXUwizIDPU
+ * PxdHFNHN6gjYDnVOr77M0uyvqXpJ38LZrLgkQJCmA1Yq0DAFQCxPq9l0iQIDAQAB
+ * AoGAbqcbg1E1mkR99uOJoNeQYKFOJyGiiXTMnXV1TseC4+PDfQBU7Dax35GcesBi
+ * CtapIpFKKS5D+ozY6b7ZT8ojxuQ/uHLPAvz0WDR3ds4iRF8tyu71Q1ZHcQsJa17y
+ * yO7UbkSSKn/Mp9Rb+/dKqftUGNXVFLqgHBOzN2s3We3bbbECQQDYBPKOg3hkaGHo
+ * OhpHKqtQ6EVkldihG/3i4WejRonelXN+HRh1KrB2HBx0M8D/qAzP1i3rNSlSHer4
+ * 59YRTJnHAkEAxFX/sVYSn07BHv9Zhn6XXct/Cj43z/tKNbzlNbcxqQwQerw3IH51
+ * 8UH2YOA+GD3lXbKp+MytoFLWv8zg4YT/LwJAfqan75Z1R6lLffRS49bIiq8jwE16
+ * rTrUJ+kv8jKxMqc9B3vXkxpsS1M/+4E8bqgAmvpgAb8xcsvHsBd9ErdukQJBAKs2
+ * j67W75BrPjBI34pQ1LEfp56IGWXOrq1kF8IbCjxv3+MYRT6Z6UJFkpRymNPNDjsC
+ * dgUYgITiGJHUGXuw3lMCQHEHqo9ZtXz92yFT+VhsNc29B8m/sqUJdtCcMd/jGpAF
+ * u6GHufjqIZBpQsk63wbwESAPZZ+kk1O1kS5GIRLX608=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ *     00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ *     d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ *     1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ *     ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ *     7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ *     9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ *     d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ *     7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ *     30:05:40:2c:4f:ab:d9:74:89
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ *     6e:a7:1b:83:51:35:9a:44:7d:f6:e3:89:a0:d7:90:
+ *     60:a1:4e:27:21:a2:89:74:cc:9d:75:75:4e:c7:82:
+ *     e3:e3:c3:7d:00:54:ec:36:b1:df:91:9c:7a:c0:62:
+ *     0a:d6:a9:22:91:4a:29:2e:43:fa:8c:d8:e9:be:d9:
+ *     4f:ca:23:c6:e4:3f:b8:72:cf:02:fc:f4:58:34:77:
+ *     76:ce:22:44:5f:2d:ca:ee:f5:43:56:47:71:0b:09:
+ *     6b:5e:f2:c8:ee:d4:6e:44:92:2a:7f:cc:a7:d4:5b:
+ *     fb:f7:4a:a9:fb:54:18:d5:d5:14:ba:a0:1c:13:b3:
+ *     37:6b:37:59:ed:db:6d:b1
+ * prime1:
+ *     00:d8:04:f2:8e:83:78:64:68:61:e8:3a:1a:47:2a:
+ *     ab:50:e8:45:64:95:d8:a1:1b:fd:e2:e1:67:a3:46:
+ *     89:de:95:73:7e:1d:18:75:2a:b0:76:1c:1c:74:33:
+ *     c0:ff:a8:0c:cf:d6:2d:eb:35:29:52:1d:ea:f8:e7:
+ *     d6:11:4c:99:c7
+ * prime2:
+ *     00:c4:55:ff:b1:56:12:9f:4e:c1:1e:ff:59:86:7e:
+ *     97:5d:cb:7f:0a:3e:37:cf:fb:4a:35:bc:e5:35:b7:
+ *     31:a9:0c:10:7a:bc:37:20:7e:75:f1:41:f6:60:e0:
+ *     3e:18:3d:e5:5d:b2:a9:f8:cc:ad:a0:52:d6:bf:cc:
+ *     e0:e1:84:ff:2f
+ * exponent1:
+ *     7e:a6:a7:ef:96:75:47:a9:4b:7d:f4:52:e3:d6:c8:
+ *     8a:af:23:c0:4d:7a:ad:3a:d4:27:e9:2f:f2:32:b1:
+ *     32:a7:3d:07:7b:d7:93:1a:6c:4b:53:3f:fb:81:3c:
+ *     6e:a8:00:9a:fa:60:01:bf:31:72:cb:c7:b0:17:7d:
+ *     12:b7:6e:91
+ * exponent2:
+ *     00:ab:36:8f:ae:d6:ef:90:6b:3e:30:48:df:8a:50:
+ *     d4:b1:1f:a7:9e:88:19:65:ce:ae:ad:64:17:c2:1b:
+ *     0a:3c:6f:df:e3:18:45:3e:99:e9:42:45:92:94:72:
+ *     98:d3:cd:0e:3b:02:76:05:18:80:84:e2:18:91:d4:
+ *     19:7b:b0:de:53
+ * coefficient:
+ *     71:07:aa:8f:59:b5:7c:fd:db:21:53:f9:58:6c:35:
+ *     cd:bd:07:c9:bf:b2:a5:09:76:d0:9c:31:df:e3:1a:
+ *     90:05:bb:a1:87:b9:f8:ea:21:90:69:42:c9:3a:df:
+ *     06:f0:11:20:0f:65:9f:a4:93:53:b5:91:2e:46:21:
+ *     12:d7:eb:4f
+ *
+ *
+ * server certificate:
+ * Data:
+ *     Version: 3 (0x2)
+ *     Serial Number: 8 (0x8)
+ *     Signature Algorithm: md5WithRSAEncryption
+ *     Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Validity
+ *         Not Before: Dec  8 03:43:04 2008 GMT
+ *         Not After : Aug 25 03:43:04 2028 GMT
+ *     Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Server, CN=localhost
+ *     Subject Public Key Info:
+ *         Public Key Algorithm: rsaEncryption
+ *         RSA Public Key: (1024 bit)
+ *             Modulus (1024 bit):
+ *                 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ *                 d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ *                 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ *                 ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ *                 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ *                 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ *                 d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ *                 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ *                 30:05:40:2c:4f:ab:d9:74:89
+ *             Exponent: 65537 (0x10001)
+ *     X509v3 extensions:
+ *         X509v3 Basic Constraints:
+ *             CA:FALSE
+ *         X509v3 Key Usage:
+ *             Digital Signature, Non Repudiation, Key Encipherment
+ *         X509v3 Subject Key Identifier:
+ *             ED:6E:DB:F4:B5:56:C8:FB:1A:06:61:3F:0F:08:BB:A6:04:D8:16:54
+ *         X509v3 Authority Key Identifier:
+ *             keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ *         X509v3 Subject Alternative Name: critical
+ *             DNS:localhost
+ * Signature Algorithm: md5WithRSAEncryption0
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICpDCCAg2gAwIBAgIBCDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMDRaFw0yODA4MjUwMzQzMDRaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3
+ * ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6
+ * YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS
+ * 7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjczBxMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh
+ * bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAoqVTciHtcvsUj+YaTct8tUh3aTCsKsac
+ * PHhfQ+ObjiXSgxsKYTX7ym/wk/wvlbUcbqLKxsu7qrcJitH+H9heV1hEHEu65Uoi
+ * nRugFruyOrwvAylV8Cm2af7ddilmYJ+sdJA6N2M3xJRxR0G2LFHEXDNEjYReyexn
+ * JqCpf5uZGOo=
+ * -----END CERTIFICATE-----
+ *
+ *
+ * TLS client certificate:
+ * client private key:
+ * ----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,FA2A435CD35A9390
+ *
+ * Z+Y2uaETbsUWIyJUyVu1UV2G4rgFYJyACZT6Tp1KjRtxflSh2kXkJ9MpuXMXA0V4
+ * Yy3fDzPqCL9NJmQAYRlAx/W/+j4F5EyMWDIx8fUxzONRZyoiwF7jLm+KscAfv6Pf
+ * q7ItWOdj3z7IYrwlB8YIGd3F2cDKT3S+lYRk7rKb/qT7itbuHnY4Ardh3yl+MZak
+ * jBp+ELUlRsUqSr1V0LoM+0rCCykarpyfhpxEcqsrl0v9Cyi5uhU50/oKv5zql3SH
+ * l2ImgDjp3batAs8+Bd4NF2aqi0a7Hy44JUHxRm4caZryU/i/D9N1MbuM6882HLat
+ * 5N0G+NaIUfywa8mjwq2D5aiit18HqKA6XeRRYeJ5Dvu9DCO4GeFSwcUFIBMI0L46
+ * 7s114+oDodg57pMgITi+04vmUxvqlN9aiyd7f5Fgd7PeHGeOdbMz1NaJLJaPI9++
+ * NakK8eK9iwT/Gdq0Uap5/CHW7vCT5PO+h3HY0STH0lWStXhdWnFO04zTdywsbSp+
+ * DLpHeFT66shfeUlxR0PsCbG9vPRt/QmGLeYQZITppWo/ylSq4j+pRIuXvuWHdBRN
+ * rTZ8QF4Y7AxQUXVz1j1++s6ZMHTzaK2i9HrhmDs1MbJl+QwWre3Xpv3LvTVz3k5U
+ * wX8kuY1m3STt71QCaRWENq5sRaMImLxZbxc/ivFl9RAzUqo4NCxLod/QgA4iLqtO
+ * ztnlpzwlC/F8HbQ1oqYWwnZAPhzU/cULtstl+Yrws2c2atO323LbPXZqbASySgig
+ * sNpFXQMObdfP6LN23bY+1SvtK7V4NUTNhpdIc6INQAQ=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICWwIBAAKBgQC78EA2rCZUTvSjWgAvaSFvuXo6k+yi9uGOx2PYLxIwmS6w8o/4
+ * Jy0keCiE9wG/jUR53TvSVfPOPLJbIX3v/TNKsaP/xsibuQ98QTWX+ds6BWAFFa9Z
+ * F5KjEK0WHOQHU6+odqJWKpLT+SjgeM9eH0irXBnd4WdDunWN9YKsQ5JEGwIDAQAB
+ * AoGAEbdqNj0wN85hnWyEi/ObJU8UyKTdL9eaF72QGfcF/fLSxfd3vurihIeXOkGW
+ * tpn4lIxYcVGM9CognhqgJpl11jFTQzn1KqZ+NEJRKkCHA4hDabKJbSC9fXHvRwrf
+ * BsFpZqgiNxp3HseUTiwnaUVeyPgMt/jAj5nB5Sib+UyUxrECQQDnNQBiF2aifEg6
+ * zbJOOC7he5CHAdkFxSxWVFVHL6EfXfqdLVkUohMbgZv+XxyIeU2biOExSg49Kds3
+ * FOKgTau1AkEA0Bd1haj6QuCo8I0AXm2WO+MMTZMTvtHD/bGjKNM+fT4I8rKYnQRX
+ * 1acHdqS9Xx2rNJqZgkMmpESIdPR2fc4yjwJALFeM6EMmqvj8/VIf5UJ/Mz14fXwM
+ * PEARfckUxd9LnnFutCBTWlKvKXJVEZb6KO5ixPaegc57Jp3Vbh3yTN44lQJADD/1
+ * SSMDaIB1MYP7a5Oj7m6VQNPRq8AJe5vDcRnOae0G9dKRrVyeFxO4GsHj6/+BHp2j
+ * P8nYMn9eURQ7DXjf/QJAAQzMlWnKGSO8pyTDtnQx3hRMoUkOEhmNq4bQhLkYqtnY
+ * FcqpUQ2qMjW+NiNWk5HnTrMS3L9EdJobMUzaNZLy4w==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ *     00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ *     21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ *     12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ *     01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ *     7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ *     35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ *     ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ *     28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ *     75:8d:f5:82:ac:43:92:44:1b
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ *     11:b7:6a:36:3d:30:37:ce:61:9d:6c:84:8b:f3:9b:
+ *     25:4f:14:c8:a4:dd:2f:d7:9a:17:bd:90:19:f7:05:
+ *     fd:f2:d2:c5:f7:77:be:ea:e2:84:87:97:3a:41:96:
+ *     b6:99:f8:94:8c:58:71:51:8c:f4:2a:20:9e:1a:a0:
+ *     26:99:75:d6:31:53:43:39:f5:2a:a6:7e:34:42:51:
+ *     2a:40:87:03:88:43:69:b2:89:6d:20:bd:7d:71:ef:
+ *     47:0a:df:06:c1:69:66:a8:22:37:1a:77:1e:c7:94:
+ *     4e:2c:27:69:45:5e:c8:f8:0c:b7:f8:c0:8f:99:c1:
+ *     e5:28:9b:f9:4c:94:c6:b1
+ * prime1:
+ *     00:e7:35:00:62:17:66:a2:7c:48:3a:cd:b2:4e:38:
+ *     2e:e1:7b:90:87:01:d9:05:c5:2c:56:54:55:47:2f:
+ *     a1:1f:5d:fa:9d:2d:59:14:a2:13:1b:81:9b:fe:5f:
+ *     1c:88:79:4d:9b:88:e1:31:4a:0e:3d:29:db:37:14:
+ *     e2:a0:4d:ab:b5
+ * prime2:
+ *     00:d0:17:75:85:a8:fa:42:e0:a8:f0:8d:00:5e:6d:
+ *     96:3b:e3:0c:4d:93:13:be:d1:c3:fd:b1:a3:28:d3:
+ *     3e:7d:3e:08:f2:b2:98:9d:04:57:d5:a7:07:76:a4:
+ *     bd:5f:1d:ab:34:9a:99:82:43:26:a4:44:88:74:f4:
+ *     76:7d:ce:32:8f
+ * exponent1:
+ *     2c:57:8c:e8:43:26:aa:f8:fc:fd:52:1f:e5:42:7f:
+ *     33:3d:78:7d:7c:0c:3c:40:11:7d:c9:14:c5:df:4b:
+ *     9e:71:6e:b4:20:53:5a:52:af:29:72:55:11:96:fa:
+ *     28:ee:62:c4:f6:9e:81:ce:7b:26:9d:d5:6e:1d:f2:
+ *     4c:de:38:95
+ * exponent2:
+ *     0c:3f:f5:49:23:03:68:80:75:31:83:fb:6b:93:a3:
+ *     ee:6e:95:40:d3:d1:ab:c0:09:7b:9b:c3:71:19:ce:
+ *     69:ed:06:f5:d2:91:ad:5c:9e:17:13:b8:1a:c1:e3:
+ *     eb:ff:81:1e:9d:a3:3f:c9:d8:32:7f:5e:51:14:3b:
+ *     0d:78:df:fd
+ * coefficient:
+ *     01:0c:cc:95:69:ca:19:23:bc:a7:24:c3:b6:74:31:
+ *     de:14:4c:a1:49:0e:12:19:8d:ab:86:d0:84:b9:18:
+ *     aa:d9:d8:15:ca:a9:51:0d:aa:32:35:be:36:23:56:
+ *     93:91:e7:4e:b3:12:dc:bf:44:74:9a:1b:31:4c:da:
+ *     35:92:f2:e3
+ *
+ * client certificate:
+ * Data:
+ *     Version: 3 (0x2)
+ *     Serial Number: 9 (0x9)
+ *     Signature Algorithm: md5WithRSAEncryption
+ *     Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Validity
+ *         Not Before: Dec  8 03:43:24 2008 GMT
+ *         Not After : Aug 25 03:43:24 2028 GMT
+ *     Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Client, CN=localhost
+ *     Subject Public Key Info:
+ *         Public Key Algorithm: rsaEncryption
+ *         RSA Public Key: (1024 bit)
+ *             Modulus (1024 bit):
+ *                 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ *                 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ *                 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ *                 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ *                 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ *                 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ *                 ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ *                 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ *                 75:8d:f5:82:ac:43:92:44:1b
+ *             Exponent: 65537 (0x10001)
+ *     X509v3 extensions:
+ *         X509v3 Basic Constraints:
+ *             CA:FALSE
+ *         X509v3 Key Usage:
+ *             Digital Signature, Non Repudiation, Key Encipherment
+ *         X509v3 Subject Key Identifier:
+ *             CD:BB:C8:85:AA:91:BD:FD:1D:BE:CD:67:7C:FF:B3:E9:4C:A8:22:E6
+ *         X509v3 Authority Key Identifier:
+ *             keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ *         X509v3 Subject Alternative Name: critical
+ *             DNS:localhost
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICpDCCAg2gAwIBAgIBCTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMjRaFw0yODA4MjUwMzQzMjRaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas
+ * JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV
+ * 8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq
+ * ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjczBxMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh
+ * bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAm25gJyqW1JznQ1EyOtTGswBVwfgBOf+F
+ * HJuBTcflYQLbTD/AETPQJGvZU9tdhuLtbG3OPhR7vSY8zeAbfM3dbH7QFr3r47Gj
+ * XEH7qM/MX+Z3ifVaC4MeJmrYQkYFSuKeyyKpdRVX4w4nnFHF6OsNASsYrMW6LpxN
+ * cl/epUcHL7E=
+ * -----END CERTIFICATE-----
+ *
+ *
+ *
+ * Trusted CA certificate:
+ * Certificate:
+ *   Data:
+ *     Version: 3 (0x2)
+ *     Serial Number: 0 (0x0)
+ *     Signature Algorithm: md5WithRSAEncryption
+ *     Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Validity
+ *         Not Before: Dec  8 02:43:36 2008 GMT
+ *         Not After : Aug 25 02:43:36 2028 GMT
+ *     Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Subject Public Key Info:
+ *         Public Key Algorithm: rsaEncryption
+ *         RSA Public Key: (1024 bit)
+ *             Modulus (1024 bit):
+ *                 00:cb:c4:38:20:07:be:88:a7:93:b0:a1:43:51:2d:
+ *                 d7:8e:85:af:54:dd:ad:a2:7b:23:5b:cf:99:13:53:
+ *                 99:45:7d:ee:6d:ba:2d:bf:e3:ad:6e:3d:9f:1a:f9:
+ *                 03:97:e0:17:55:ae:11:26:57:de:01:29:8e:05:3f:
+ *                 21:f7:e7:36:e8:2e:37:d7:48:ac:53:d6:60:0e:c7:
+ *                 50:6d:f6:c5:85:f7:8b:a6:c5:91:35:72:3c:94:ee:
+ *                 f1:17:f0:71:e3:ec:1b:ce:ca:4e:40:42:b0:6d:ee:
+ *                 6a:0e:d6:e5:ad:3c:0f:c9:ba:82:4f:78:f8:89:97:
+ *                 89:2a:95:12:4c:d8:09:2a:e9
+ *             Exponent: 65537 (0x10001)
+ *     X509v3 extensions:
+ *         X509v3 Subject Key Identifier:
+ *             FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *         X509v3 Authority Key Identifier:
+ *             keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *             DirName:/C=US/ST=Some-State/L=Some-City/O=Some-Org
+ *             serial:00
+ *
+ *         X509v3 Basic Constraints:
+ *             CA:TRUE
+ *  Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+ * gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX
+ * 4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj
+ * 7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G
+ * A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ
+ * hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt
+ * U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw
+ * DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA
+ * ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ
+ * LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P
+ * 6Mvf0r1PNTY2hwTJLJmKtg==
+ * -----END CERTIFICATE---
+ */
+
+
+public class IPAddressDNSIdentities {
+    static Map cookies;
+    ServerSocket ss;
+
+    /*
+     * =============================================================
+     * Set the various variables needed for the tests, then
+     * specify what tests to run on each side.
+     */
+
+    /*
+     * Should we run the client or server in a separate thread?
+     * Both sides can throw exceptions, but do you have a preference
+     * as to which side should be the main thread.
+     */
+    static boolean separateServerThread = true;
+
+    /*
+     * Where do we find the keystores?
+     */
+    static String trusedCertStr =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+        "EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ\n" +
+        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" +
+        "gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX\n" +
+        "4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj\n" +
+        "7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G\n" +
+        "A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ\n" +
+        "hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt\n" +
+        "U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw\n" +
+        "DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA\n" +
+        "ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ\n" +
+        "LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P\n" +
+        "6Mvf0r1PNTY2hwTJLJmKtg==\n" +
+        "-----END CERTIFICATE-----";
+
+    static String serverCertStr =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIICpDCCAg2gAwIBAgIBCDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+        "EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMDRaFw0yODA4MjUwMzQzMDRaMHIxCzAJ\n" +
+        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD\n" +
+        "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3\n" +
+        "ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6\n" +
+        "YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS\n" +
+        "7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjczBxMAkGA1UdEwQCMAAw\n" +
+        "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV\n" +
+        "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh\n" +
+        "bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAoqVTciHtcvsUj+YaTct8tUh3aTCsKsac\n" +
+        "PHhfQ+ObjiXSgxsKYTX7ym/wk/wvlbUcbqLKxsu7qrcJitH+H9heV1hEHEu65Uoi\n" +
+        "nRugFruyOrwvAylV8Cm2af7ddilmYJ+sdJA6N2M3xJRxR0G2LFHEXDNEjYReyexn\n" +
+        "JqCpf5uZGOo=\n" +
+        "-----END CERTIFICATE-----";
+
+    static String clientCertStr =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIICpDCCAg2gAwIBAgIBCTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+        "EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMjRaFw0yODA4MjUwMzQzMjRaMHIxCzAJ\n" +
+        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD\n" +
+        "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas\n" +
+        "JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV\n" +
+        "8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq\n" +
+        "ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjczBxMAkGA1UdEwQCMAAw\n" +
+        "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV\n" +
+        "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh\n" +
+        "bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAm25gJyqW1JznQ1EyOtTGswBVwfgBOf+F\n" +
+        "HJuBTcflYQLbTD/AETPQJGvZU9tdhuLtbG3OPhR7vSY8zeAbfM3dbH7QFr3r47Gj\n" +
+        "XEH7qM/MX+Z3ifVaC4MeJmrYQkYFSuKeyyKpdRVX4w4nnFHF6OsNASsYrMW6LpxN\n" +
+        "cl/epUcHL7E=\n" +
+        "-----END CERTIFICATE-----";
+
+    static byte serverPrivateExponent[] = {
+        (byte)0x6e, (byte)0xa7, (byte)0x1b, (byte)0x83,
+        (byte)0x51, (byte)0x35, (byte)0x9a, (byte)0x44,
+        (byte)0x7d, (byte)0xf6, (byte)0xe3, (byte)0x89,
+        (byte)0xa0, (byte)0xd7, (byte)0x90, (byte)0x60,
+        (byte)0xa1, (byte)0x4e, (byte)0x27, (byte)0x21,
+        (byte)0xa2, (byte)0x89, (byte)0x74, (byte)0xcc,
+        (byte)0x9d, (byte)0x75, (byte)0x75, (byte)0x4e,
+        (byte)0xc7, (byte)0x82, (byte)0xe3, (byte)0xe3,
+        (byte)0xc3, (byte)0x7d, (byte)0x00, (byte)0x54,
+        (byte)0xec, (byte)0x36, (byte)0xb1, (byte)0xdf,
+        (byte)0x91, (byte)0x9c, (byte)0x7a, (byte)0xc0,
+        (byte)0x62, (byte)0x0a, (byte)0xd6, (byte)0xa9,
+        (byte)0x22, (byte)0x91, (byte)0x4a, (byte)0x29,
+        (byte)0x2e, (byte)0x43, (byte)0xfa, (byte)0x8c,
+        (byte)0xd8, (byte)0xe9, (byte)0xbe, (byte)0xd9,
+        (byte)0x4f, (byte)0xca, (byte)0x23, (byte)0xc6,
+        (byte)0xe4, (byte)0x3f, (byte)0xb8, (byte)0x72,
+        (byte)0xcf, (byte)0x02, (byte)0xfc, (byte)0xf4,
+        (byte)0x58, (byte)0x34, (byte)0x77, (byte)0x76,
+        (byte)0xce, (byte)0x22, (byte)0x44, (byte)0x5f,
+        (byte)0x2d, (byte)0xca, (byte)0xee, (byte)0xf5,
+        (byte)0x43, (byte)0x56, (byte)0x47, (byte)0x71,
+        (byte)0x0b, (byte)0x09, (byte)0x6b, (byte)0x5e,
+        (byte)0xf2, (byte)0xc8, (byte)0xee, (byte)0xd4,
+        (byte)0x6e, (byte)0x44, (byte)0x92, (byte)0x2a,
+        (byte)0x7f, (byte)0xcc, (byte)0xa7, (byte)0xd4,
+        (byte)0x5b, (byte)0xfb, (byte)0xf7, (byte)0x4a,
+        (byte)0xa9, (byte)0xfb, (byte)0x54, (byte)0x18,
+        (byte)0xd5, (byte)0xd5, (byte)0x14, (byte)0xba,
+        (byte)0xa0, (byte)0x1c, (byte)0x13, (byte)0xb3,
+        (byte)0x37, (byte)0x6b, (byte)0x37, (byte)0x59,
+        (byte)0xed, (byte)0xdb, (byte)0x6d, (byte)0xb1
+    };
+
+    static byte serverModulus[] = {
+        (byte)0x00,
+        (byte)0xa5, (byte)0xac, (byte)0x5b, (byte)0x1c,
+        (byte)0x37, (byte)0xa2, (byte)0xdd, (byte)0x99,
+        (byte)0x89, (byte)0x2d, (byte)0xb2, (byte)0x79,
+        (byte)0xb8, (byte)0x8f, (byte)0xd5, (byte)0x48,
+        (byte)0xa5, (byte)0xe7, (byte)0x1c, (byte)0x84,
+        (byte)0x17, (byte)0x8d, (byte)0x69, (byte)0x9c,
+        (byte)0xc6, (byte)0xac, (byte)0x6d, (byte)0xf9,
+        (byte)0xf2, (byte)0x1d, (byte)0x1f, (byte)0x39,
+        (byte)0x19, (byte)0xda, (byte)0xd3, (byte)0x72,
+        (byte)0x1e, (byte)0x6e, (byte)0xec, (byte)0x44,
+        (byte)0xcc, (byte)0x70, (byte)0xa4, (byte)0xdc,
+        (byte)0xba, (byte)0x00, (byte)0x30, (byte)0xf6,
+        (byte)0xa0, (byte)0x4f, (byte)0x3d, (byte)0x54,
+        (byte)0x7a, (byte)0x61, (byte)0x6a, (byte)0xcc,
+        (byte)0x57, (byte)0xd0, (byte)0x0a, (byte)0x7f,
+        (byte)0x95, (byte)0x28, (byte)0x18, (byte)0x3f,
+        (byte)0x9a, (byte)0xd9, (byte)0x94, (byte)0xf2,
+        (byte)0x1b, (byte)0xc8, (byte)0x24, (byte)0x88,
+        (byte)0x7e, (byte)0xfe, (byte)0x9d, (byte)0x0f,
+        (byte)0x3d, (byte)0xfb, (byte)0x57, (byte)0x53,
+        (byte)0x08, (byte)0xb3, (byte)0x20, (byte)0x33,
+        (byte)0xd4, (byte)0x3f, (byte)0x17, (byte)0x47,
+        (byte)0x14, (byte)0xd1, (byte)0xcd, (byte)0xea,
+        (byte)0x08, (byte)0xd8, (byte)0x0e, (byte)0x75,
+        (byte)0x4e, (byte)0xaf, (byte)0xbe, (byte)0xcc,
+        (byte)0xd2, (byte)0xec, (byte)0xaf, (byte)0xa9,
+        (byte)0x7a, (byte)0x49, (byte)0xdf, (byte)0xc2,
+        (byte)0xd9, (byte)0xac, (byte)0xb8, (byte)0x24,
+        (byte)0x40, (byte)0x90, (byte)0xa6, (byte)0x03,
+        (byte)0x56, (byte)0x2a, (byte)0xd0, (byte)0x30,
+        (byte)0x05, (byte)0x40, (byte)0x2c, (byte)0x4f,
+        (byte)0xab, (byte)0xd9, (byte)0x74, (byte)0x89
+    };
+
+    static byte clientPrivateExponent[] = {
+        (byte)0x11, (byte)0xb7, (byte)0x6a, (byte)0x36,
+        (byte)0x3d, (byte)0x30, (byte)0x37, (byte)0xce,
+        (byte)0x61, (byte)0x9d, (byte)0x6c, (byte)0x84,
+        (byte)0x8b, (byte)0xf3, (byte)0x9b, (byte)0x25,
+        (byte)0x4f, (byte)0x14, (byte)0xc8, (byte)0xa4,
+        (byte)0xdd, (byte)0x2f, (byte)0xd7, (byte)0x9a,
+        (byte)0x17, (byte)0xbd, (byte)0x90, (byte)0x19,
+        (byte)0xf7, (byte)0x05, (byte)0xfd, (byte)0xf2,
+        (byte)0xd2, (byte)0xc5, (byte)0xf7, (byte)0x77,
+        (byte)0xbe, (byte)0xea, (byte)0xe2, (byte)0x84,
+        (byte)0x87, (byte)0x97, (byte)0x3a, (byte)0x41,
+        (byte)0x96, (byte)0xb6, (byte)0x99, (byte)0xf8,
+        (byte)0x94, (byte)0x8c, (byte)0x58, (byte)0x71,
+        (byte)0x51, (byte)0x8c, (byte)0xf4, (byte)0x2a,
+        (byte)0x20, (byte)0x9e, (byte)0x1a, (byte)0xa0,
+        (byte)0x26, (byte)0x99, (byte)0x75, (byte)0xd6,
+        (byte)0x31, (byte)0x53, (byte)0x43, (byte)0x39,
+        (byte)0xf5, (byte)0x2a, (byte)0xa6, (byte)0x7e,
+        (byte)0x34, (byte)0x42, (byte)0x51, (byte)0x2a,
+        (byte)0x40, (byte)0x87, (byte)0x03, (byte)0x88,
+        (byte)0x43, (byte)0x69, (byte)0xb2, (byte)0x89,
+        (byte)0x6d, (byte)0x20, (byte)0xbd, (byte)0x7d,
+        (byte)0x71, (byte)0xef, (byte)0x47, (byte)0x0a,
+        (byte)0xdf, (byte)0x06, (byte)0xc1, (byte)0x69,
+        (byte)0x66, (byte)0xa8, (byte)0x22, (byte)0x37,
+        (byte)0x1a, (byte)0x77, (byte)0x1e, (byte)0xc7,
+        (byte)0x94, (byte)0x4e, (byte)0x2c, (byte)0x27,
+        (byte)0x69, (byte)0x45, (byte)0x5e, (byte)0xc8,
+        (byte)0xf8, (byte)0x0c, (byte)0xb7, (byte)0xf8,
+        (byte)0xc0, (byte)0x8f, (byte)0x99, (byte)0xc1,
+        (byte)0xe5, (byte)0x28, (byte)0x9b, (byte)0xf9,
+        (byte)0x4c, (byte)0x94, (byte)0xc6, (byte)0xb1
+    };
+
+    static byte clientModulus[] = {
+        (byte)0x00,
+        (byte)0xbb, (byte)0xf0, (byte)0x40, (byte)0x36,
+        (byte)0xac, (byte)0x26, (byte)0x54, (byte)0x4e,
+        (byte)0xf4, (byte)0xa3, (byte)0x5a, (byte)0x00,
+        (byte)0x2f, (byte)0x69, (byte)0x21, (byte)0x6f,
+        (byte)0xb9, (byte)0x7a, (byte)0x3a, (byte)0x93,
+        (byte)0xec, (byte)0xa2, (byte)0xf6, (byte)0xe1,
+        (byte)0x8e, (byte)0xc7, (byte)0x63, (byte)0xd8,
+        (byte)0x2f, (byte)0x12, (byte)0x30, (byte)0x99,
+        (byte)0x2e, (byte)0xb0, (byte)0xf2, (byte)0x8f,
+        (byte)0xf8, (byte)0x27, (byte)0x2d, (byte)0x24,
+        (byte)0x78, (byte)0x28, (byte)0x84, (byte)0xf7,
+        (byte)0x01, (byte)0xbf, (byte)0x8d, (byte)0x44,
+        (byte)0x79, (byte)0xdd, (byte)0x3b, (byte)0xd2,
+        (byte)0x55, (byte)0xf3, (byte)0xce, (byte)0x3c,
+        (byte)0xb2, (byte)0x5b, (byte)0x21, (byte)0x7d,
+        (byte)0xef, (byte)0xfd, (byte)0x33, (byte)0x4a,
+        (byte)0xb1, (byte)0xa3, (byte)0xff, (byte)0xc6,
+        (byte)0xc8, (byte)0x9b, (byte)0xb9, (byte)0x0f,
+        (byte)0x7c, (byte)0x41, (byte)0x35, (byte)0x97,
+        (byte)0xf9, (byte)0xdb, (byte)0x3a, (byte)0x05,
+        (byte)0x60, (byte)0x05, (byte)0x15, (byte)0xaf,
+        (byte)0x59, (byte)0x17, (byte)0x92, (byte)0xa3,
+        (byte)0x10, (byte)0xad, (byte)0x16, (byte)0x1c,
+        (byte)0xe4, (byte)0x07, (byte)0x53, (byte)0xaf,
+        (byte)0xa8, (byte)0x76, (byte)0xa2, (byte)0x56,
+        (byte)0x2a, (byte)0x92, (byte)0xd3, (byte)0xf9,
+        (byte)0x28, (byte)0xe0, (byte)0x78, (byte)0xcf,
+        (byte)0x5e, (byte)0x1f, (byte)0x48, (byte)0xab,
+        (byte)0x5c, (byte)0x19, (byte)0xdd, (byte)0xe1,
+        (byte)0x67, (byte)0x43, (byte)0xba, (byte)0x75,
+        (byte)0x8d, (byte)0xf5, (byte)0x82, (byte)0xac,
+        (byte)0x43, (byte)0x92, (byte)0x44, (byte)0x1b
+    };
+
+    static char passphrase[] = "passphrase".toCharArray();
+
+    /*
+     * Is the server ready to serve?
+     */
+    volatile static boolean serverReady = false;
+
+    /*
+     * Turn on SSL debugging?
+     */
+    static boolean debug = false;
+
+    private SSLServerSocket sslServerSocket = null;
+
+    /*
+     * Define the server side of the test.
+     *
+     * If the server prematurely exits, serverReady will be set to true
+     * to avoid infinite hangs.
+     */
+    void doServerSide() throws Exception {
+        SSLContext context = getSSLContext(trusedCertStr, serverCertStr,
+            serverModulus, serverPrivateExponent, passphrase);
+        SSLServerSocketFactory sslssf = context.getServerSocketFactory();
+
+        sslServerSocket =
+            (SSLServerSocket) sslssf.createServerSocket(serverPort);
+        serverPort = sslServerSocket.getLocalPort();
+
+        /*
+         * Signal Client, we're ready for his connect.
+         */
+        serverReady = true;
+
+        SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
+        sslSocket.setNeedClientAuth(true);
+        if (sslSocket instanceof SSLSocketImpl) {
+            ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
+        }
+
+        PrintStream out =
+                new PrintStream(sslSocket.getOutputStream());
+
+        try {
+            // ignore request data
+
+            // send the response
+            out.print("HTTP/1.1 200 OK\r\n");
+            out.print("Content-Type: text/html; charset=iso-8859-1\r\n");
+            out.print("Content-Length: "+ 9 +"\r\n");
+            out.print("\r\n");
+            out.print("Testing\r\n");
+            out.flush();
+        } finally {
+             // close the socket
+             Thread.sleep(2000);
+             System.out.println("Server closing socket");
+             sslSocket.close();
+             serverReady = false;
+        }
+
+    }
+
+    /*
+     * Define the client side of the test.
+     *
+     * If the server prematurely exits, serverReady will be set to true
+     * to avoid infinite hangs.
+     */
+    void doClientSide() throws Exception {
+        SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
+            clientModulus, clientPrivateExponent, passphrase);
+
+        SSLContext.setDefault(context);
+
+        /*
+         * Wait for server to get started.
+         */
+        while (!serverReady) {
+            Thread.sleep(50);
+        }
+
+        HttpsURLConnection http = null;
+
+        /* establish http connection to server */
+        URL url = new URL("https://127.0.0.1:" + serverPort+"/");
+        System.out.println("url is "+url.toString());
+
+        try {
+            http = (HttpsURLConnection)url.openConnection();
+
+            int respCode = http.getResponseCode();
+            System.out.println("respCode = "+respCode);
+
+            throw new Exception("Unexpectly found subject alternative name " +
+                                "matching IP address");
+        } catch (SSLHandshakeException sslhe) {
+            // no subject alternative names matching IP address 127.0.0.1 found
+            // that's the expected exception, ignore it.
+        } finally {
+            http.disconnect();
+        }
+    }
+
+    /*
+     * =============================================================
+     * The remainder is just support stuff
+     */
+
+    // use any free port by default
+    volatile int serverPort = 0;
+
+    volatile Exception serverException = null;
+    volatile Exception clientException = null;
+
+    public static void main(String args[]) throws Exception {
+        if (debug)
+            System.setProperty("javax.net.debug", "all");
+
+        /*
+         * Start the tests.
+         */
+        new IPAddressDNSIdentities();
+    }
+
+    Thread clientThread = null;
+    Thread serverThread = null;
+    /*
+     * Primary constructor, used to drive remainder of the test.
+     *
+     * Fork off the other side, then do your work.
+     */
+    IPAddressDNSIdentities() throws Exception {
+        if (separateServerThread) {
+            startServer(true);
+            startClient(false);
+        } else {
+            startClient(true);
+            startServer(false);
+        }
+
+        /*
+         * Wait for other side to close down.
+         */
+        if (separateServerThread) {
+            serverThread.join();
+        } else {
+            clientThread.join();
+        }
+
+        /*
+         * When we get here, the test is pretty much over.
+         *
+         * If the main thread excepted, that propagates back
+         * immediately.  If the other thread threw an exception, we
+         * should report back.
+         */
+        if (serverException != null)
+            throw serverException;
+        if (clientException != null)
+            throw clientException;
+    }
+
+    void startServer(boolean newThread) throws Exception {
+        if (newThread) {
+            serverThread = new Thread() {
+                public void run() {
+                    try {
+                        doServerSide();
+                    } catch (Exception e) {
+                        /*
+                         * Our server thread just died.
+                         *
+                         * Release the client, if not active already...
+                         */
+                        System.err.println("Server died...");
+                        serverReady = true;
+                        serverException = e;
+                    }
+                }
+            };
+            serverThread.start();
+        } else {
+            doServerSide();
+        }
+    }
+
+    void startClient(boolean newThread) throws Exception {
+        if (newThread) {
+            clientThread = new Thread() {
+                public void run() {
+                    try {
+                        doClientSide();
+                    } catch (Exception e) {
+                        /*
+                         * Our client thread just died.
+                         */
+                        System.err.println("Client died...");
+                        clientException = e;
+                    }
+                }
+            };
+            clientThread.start();
+        } else {
+            doClientSide();
+        }
+    }
+
+    // get the ssl context
+    private static SSLContext getSSLContext(String trusedCertStr,
+            String keyCertStr, byte[] modulus,
+            byte[] privateExponent, char[] passphrase) throws Exception {
+
+        // generate certificate from cert string
+        CertificateFactory cf = CertificateFactory.getInstance("X.509");
+
+        ByteArrayInputStream is =
+                    new ByteArrayInputStream(trusedCertStr.getBytes());
+        Certificate trusedCert = cf.generateCertificate(is);
+        is.close();
+
+        // create a key store
+        KeyStore ks = KeyStore.getInstance("JKS");
+        ks.load(null, null);
+
+        // import the trused cert
+        ks.setCertificateEntry("RSA Export Signer", trusedCert);
+
+        if (keyCertStr != null) {
+            // generate the private key.
+            RSAPrivateKeySpec priKeySpec = new RSAPrivateKeySpec(
+                                            new BigInteger(modulus),
+                                            new BigInteger(privateExponent));
+            KeyFactory kf = KeyFactory.getInstance("RSA");
+            RSAPrivateKey priKey =
+                    (RSAPrivateKey)kf.generatePrivate(priKeySpec);
+
+            // generate certificate chain
+            is = new ByteArrayInputStream(keyCertStr.getBytes());
+            Certificate keyCert = cf.generateCertificate(is);
+            is.close();
+
+            Certificate[] chain = new Certificate[2];
+            chain[0] = keyCert;
+            chain[1] = trusedCert;
+
+            // import the key entry.
+            ks.setKeyEntry("Whatever", priKey, passphrase, chain);
+        }
+
+        // create SSL context
+        TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
+        tmf.init(ks);
+
+        SSLContext ctx = SSLContext.getInstance("TLS");
+
+        if (keyCertStr != null) {
+            KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
+            kmf.init(ks, passphrase);
+
+            ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+        } else {
+            ctx.init(null, tmf.getTrustManagers(), null);
+        }
+
+        return ctx;
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,880 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* @test
+ * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
+ * @bug 6766775
+ * @author Xuelei Fan
+ */
+
+import java.net.*;
+import java.util.*;
+import java.io.*;
+import javax.net.ssl.*;
+import java.security.KeyStore;
+import java.security.KeyFactory;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
+import java.security.spec.*;
+import java.security.interfaces.*;
+import java.math.BigInteger;
+
+import sun.security.ssl.SSLSocketImpl;
+
+/*
+ * Certificates and key used in the test.
+ *
+ * TLS server certificate:
+ * server private key:
+ * -----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,D9AE407F6D0E389A
+ *
+ * WPrA7TFol/cQCcp9oHnXWNpYlvRbbIcQj0m+RKT2Iuzfus+DHt3Zadf8nJpKfX2e
+ * h2rnhlzCN9M7djRDooZKDOPCsdBn51Au7HlZF3S3Opgo7D8XFM1a8t1Je4ke14oI
+ * nw6QKYsBblRziPnP2PZ0zvX24nOv7bbY8beynlJHGs00VWSFdoH2DS0aE1p6D+3n
+ * ptJuJ75dVfZFK4X7162APlNXevX8D6PEQpSiRw1rjjGGcnvQ4HdWk3BxDVDcCNJb
+ * Y1aGNRxsjTDvPi3R9Qx2M+W03QzEPx4SR3ZHVskeSJHaetM0TM/w/45Paq4GokXP
+ * ZeTnbEx1xmjkA7h+t4doLL4watx5F6yLsJzu8xB3lt/1EtmkYtLz1t7X4BetPAXz
+ * zS69X/VwhKfsOI3qXBWuL2oHPyhDmT1gcaUQwEPSV6ogHEEQEDXdiUS8heNK13KF
+ * TCQYFkETvV2BLxUhV1hypPzRQ6tUpJiAbD5KmoK2lD9slshG2QtvKQq0/bgkDY5J
+ * LhDHV2dtcZ3kDPkkZXpbcJQvoeH3d09C5sIsuTFo2zgNR6oETHUc5TzP6FY2YYRa
+ * QcK5HcmtsRRiXFm01ac+aMejJUIujjFt84SiKWT/73vC8AmY4tYcJBLjCg4XIxSH
+ * fdDFLL1YZENNO5ivlp8mdiHqcawx+36L7DrEZQ8RZt6cqST5t/+XTdM74s6k81GT
+ * pNsa82P2K2zmIUZ/DL2mKjW1vfRByw1NQFEBkN3vdyZxYfM/JyUzX4hbjXBEkh9Q
+ * QYrcwLKLjis2QzSvK04B3bvRzRb+4ocWiso8ZPAXAIxZFBWDpTMM2A==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICXAIBAAKBgQClrFscN6LdmYktsnm4j9VIpecchBeNaZzGrG358h0fORna03Ie
+ * buxEzHCk3LoAMPagTz1UemFqzFfQCn+VKBg/mtmU8hvIJIh+/p0PPftXUwizIDPU
+ * PxdHFNHN6gjYDnVOr77M0uyvqXpJ38LZrLgkQJCmA1Yq0DAFQCxPq9l0iQIDAQAB
+ * AoGAbqcbg1E1mkR99uOJoNeQYKFOJyGiiXTMnXV1TseC4+PDfQBU7Dax35GcesBi
+ * CtapIpFKKS5D+ozY6b7ZT8ojxuQ/uHLPAvz0WDR3ds4iRF8tyu71Q1ZHcQsJa17y
+ * yO7UbkSSKn/Mp9Rb+/dKqftUGNXVFLqgHBOzN2s3We3bbbECQQDYBPKOg3hkaGHo
+ * OhpHKqtQ6EVkldihG/3i4WejRonelXN+HRh1KrB2HBx0M8D/qAzP1i3rNSlSHer4
+ * 59YRTJnHAkEAxFX/sVYSn07BHv9Zhn6XXct/Cj43z/tKNbzlNbcxqQwQerw3IH51
+ * 8UH2YOA+GD3lXbKp+MytoFLWv8zg4YT/LwJAfqan75Z1R6lLffRS49bIiq8jwE16
+ * rTrUJ+kv8jKxMqc9B3vXkxpsS1M/+4E8bqgAmvpgAb8xcsvHsBd9ErdukQJBAKs2
+ * j67W75BrPjBI34pQ1LEfp56IGWXOrq1kF8IbCjxv3+MYRT6Z6UJFkpRymNPNDjsC
+ * dgUYgITiGJHUGXuw3lMCQHEHqo9ZtXz92yFT+VhsNc29B8m/sqUJdtCcMd/jGpAF
+ * u6GHufjqIZBpQsk63wbwESAPZZ+kk1O1kS5GIRLX608=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ *     00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ *     d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ *     1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ *     ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ *     7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ *     9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ *     d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ *     7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ *     30:05:40:2c:4f:ab:d9:74:89
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ *     6e:a7:1b:83:51:35:9a:44:7d:f6:e3:89:a0:d7:90:
+ *     60:a1:4e:27:21:a2:89:74:cc:9d:75:75:4e:c7:82:
+ *     e3:e3:c3:7d:00:54:ec:36:b1:df:91:9c:7a:c0:62:
+ *     0a:d6:a9:22:91:4a:29:2e:43:fa:8c:d8:e9:be:d9:
+ *     4f:ca:23:c6:e4:3f:b8:72:cf:02:fc:f4:58:34:77:
+ *     76:ce:22:44:5f:2d:ca:ee:f5:43:56:47:71:0b:09:
+ *     6b:5e:f2:c8:ee:d4:6e:44:92:2a:7f:cc:a7:d4:5b:
+ *     fb:f7:4a:a9:fb:54:18:d5:d5:14:ba:a0:1c:13:b3:
+ *     37:6b:37:59:ed:db:6d:b1
+ * prime1:
+ *     00:d8:04:f2:8e:83:78:64:68:61:e8:3a:1a:47:2a:
+ *     ab:50:e8:45:64:95:d8:a1:1b:fd:e2:e1:67:a3:46:
+ *     89:de:95:73:7e:1d:18:75:2a:b0:76:1c:1c:74:33:
+ *     c0:ff:a8:0c:cf:d6:2d:eb:35:29:52:1d:ea:f8:e7:
+ *     d6:11:4c:99:c7
+ * prime2:
+ *     00:c4:55:ff:b1:56:12:9f:4e:c1:1e:ff:59:86:7e:
+ *     97:5d:cb:7f:0a:3e:37:cf:fb:4a:35:bc:e5:35:b7:
+ *     31:a9:0c:10:7a:bc:37:20:7e:75:f1:41:f6:60:e0:
+ *     3e:18:3d:e5:5d:b2:a9:f8:cc:ad:a0:52:d6:bf:cc:
+ *     e0:e1:84:ff:2f
+ * exponent1:
+ *     7e:a6:a7:ef:96:75:47:a9:4b:7d:f4:52:e3:d6:c8:
+ *     8a:af:23:c0:4d:7a:ad:3a:d4:27:e9:2f:f2:32:b1:
+ *     32:a7:3d:07:7b:d7:93:1a:6c:4b:53:3f:fb:81:3c:
+ *     6e:a8:00:9a:fa:60:01:bf:31:72:cb:c7:b0:17:7d:
+ *     12:b7:6e:91
+ * exponent2:
+ *     00:ab:36:8f:ae:d6:ef:90:6b:3e:30:48:df:8a:50:
+ *     d4:b1:1f:a7:9e:88:19:65:ce:ae:ad:64:17:c2:1b:
+ *     0a:3c:6f:df:e3:18:45:3e:99:e9:42:45:92:94:72:
+ *     98:d3:cd:0e:3b:02:76:05:18:80:84:e2:18:91:d4:
+ *     19:7b:b0:de:53
+ * coefficient:
+ *     71:07:aa:8f:59:b5:7c:fd:db:21:53:f9:58:6c:35:
+ *     cd:bd:07:c9:bf:b2:a5:09:76:d0:9c:31:df:e3:1a:
+ *     90:05:bb:a1:87:b9:f8:ea:21:90:69:42:c9:3a:df:
+ *     06:f0:11:20:0f:65:9f:a4:93:53:b5:91:2e:46:21:
+ *     12:d7:eb:4f
+ *
+ *
+ * server certificate:
+ * Data:
+ *     Version: 3 (0x2)
+ *     Serial Number: 7 (0x7)
+ *     Signature Algorithm: md5WithRSAEncryption
+ *     Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Validity
+ *         Not Before: Dec  8 03:27:57 2008 GMT
+ *         Not After : Aug 25 03:27:57 2028 GMT
+ *     Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Server, CN=localhost
+ *     Subject Public Key Info:
+ *         Public Key Algorithm: rsaEncryption
+ *         RSA Public Key: (1024 bit)
+ *             Modulus (1024 bit):
+ *                 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ *                 d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ *                 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ *                 ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ *                 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ *                 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ *                 d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ *                 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ *                 30:05:40:2c:4f:ab:d9:74:89
+ *             Exponent: 65537 (0x10001)
+ *     X509v3 extensions:
+ *         X509v3 Basic Constraints:
+ *             CA:FALSE
+ *         X509v3 Key Usage:
+ *             Digital Signature, Non Repudiation, Key Encipherment
+ *         X509v3 Subject Key Identifier:
+ *             ED:6E:DB:F4:B5:56:C8:FB:1A:06:61:3F:0F:08:BB:A6:04:D8:16:54
+ *         X509v3 Authority Key Identifier:
+ *             keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ *         X509v3 Subject Alternative Name: critical
+ *             IP Address:127.0.0.1
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICnzCCAgigAwIBAgIBBzANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3NTdaFw0yODA4MjUwMzI3NTdaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3
+ * ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6
+ * YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS
+ * 7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjbjBsMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB
+ * MA0GCSqGSIb3DQEBBAUAA4GBAFJjItCtCBZcjD69wdqfIbKmRFa6eJAjR6LcoDva
+ * cKC/sDOLelpspiZ66Zb0Xdv5qQ7QrfOXt3K8QqJKRMdZLF9WfUfy0gJDM32ub91h
+ * pu+TmcGPs+6RdrAQcuvU1ZDV9X8SMj7BtKaim4d5sqFw1npncKiA5xFn8vOYwdun
+ * nZif
+ * -----END CERTIFICATE-----
+ *
+ *
+ * TLS client certificate:
+ * client private key:
+ * ----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,FA2A435CD35A9390
+ *
+ * Z+Y2uaETbsUWIyJUyVu1UV2G4rgFYJyACZT6Tp1KjRtxflSh2kXkJ9MpuXMXA0V4
+ * Yy3fDzPqCL9NJmQAYRlAx/W/+j4F5EyMWDIx8fUxzONRZyoiwF7jLm+KscAfv6Pf
+ * q7ItWOdj3z7IYrwlB8YIGd3F2cDKT3S+lYRk7rKb/qT7itbuHnY4Ardh3yl+MZak
+ * jBp+ELUlRsUqSr1V0LoM+0rCCykarpyfhpxEcqsrl0v9Cyi5uhU50/oKv5zql3SH
+ * l2ImgDjp3batAs8+Bd4NF2aqi0a7Hy44JUHxRm4caZryU/i/D9N1MbuM6882HLat
+ * 5N0G+NaIUfywa8mjwq2D5aiit18HqKA6XeRRYeJ5Dvu9DCO4GeFSwcUFIBMI0L46
+ * 7s114+oDodg57pMgITi+04vmUxvqlN9aiyd7f5Fgd7PeHGeOdbMz1NaJLJaPI9++
+ * NakK8eK9iwT/Gdq0Uap5/CHW7vCT5PO+h3HY0STH0lWStXhdWnFO04zTdywsbSp+
+ * DLpHeFT66shfeUlxR0PsCbG9vPRt/QmGLeYQZITppWo/ylSq4j+pRIuXvuWHdBRN
+ * rTZ8QF4Y7AxQUXVz1j1++s6ZMHTzaK2i9HrhmDs1MbJl+QwWre3Xpv3LvTVz3k5U
+ * wX8kuY1m3STt71QCaRWENq5sRaMImLxZbxc/ivFl9RAzUqo4NCxLod/QgA4iLqtO
+ * ztnlpzwlC/F8HbQ1oqYWwnZAPhzU/cULtstl+Yrws2c2atO323LbPXZqbASySgig
+ * sNpFXQMObdfP6LN23bY+1SvtK7V4NUTNhpdIc6INQAQ=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICWwIBAAKBgQC78EA2rCZUTvSjWgAvaSFvuXo6k+yi9uGOx2PYLxIwmS6w8o/4
+ * Jy0keCiE9wG/jUR53TvSVfPOPLJbIX3v/TNKsaP/xsibuQ98QTWX+ds6BWAFFa9Z
+ * F5KjEK0WHOQHU6+odqJWKpLT+SjgeM9eH0irXBnd4WdDunWN9YKsQ5JEGwIDAQAB
+ * AoGAEbdqNj0wN85hnWyEi/ObJU8UyKTdL9eaF72QGfcF/fLSxfd3vurihIeXOkGW
+ * tpn4lIxYcVGM9CognhqgJpl11jFTQzn1KqZ+NEJRKkCHA4hDabKJbSC9fXHvRwrf
+ * BsFpZqgiNxp3HseUTiwnaUVeyPgMt/jAj5nB5Sib+UyUxrECQQDnNQBiF2aifEg6
+ * zbJOOC7he5CHAdkFxSxWVFVHL6EfXfqdLVkUohMbgZv+XxyIeU2biOExSg49Kds3
+ * FOKgTau1AkEA0Bd1haj6QuCo8I0AXm2WO+MMTZMTvtHD/bGjKNM+fT4I8rKYnQRX
+ * 1acHdqS9Xx2rNJqZgkMmpESIdPR2fc4yjwJALFeM6EMmqvj8/VIf5UJ/Mz14fXwM
+ * PEARfckUxd9LnnFutCBTWlKvKXJVEZb6KO5ixPaegc57Jp3Vbh3yTN44lQJADD/1
+ * SSMDaIB1MYP7a5Oj7m6VQNPRq8AJe5vDcRnOae0G9dKRrVyeFxO4GsHj6/+BHp2j
+ * P8nYMn9eURQ7DXjf/QJAAQzMlWnKGSO8pyTDtnQx3hRMoUkOEhmNq4bQhLkYqtnY
+ * FcqpUQ2qMjW+NiNWk5HnTrMS3L9EdJobMUzaNZLy4w==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ *     00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ *     21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ *     12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ *     01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ *     7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ *     35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ *     ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ *     28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ *     75:8d:f5:82:ac:43:92:44:1b
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ *     11:b7:6a:36:3d:30:37:ce:61:9d:6c:84:8b:f3:9b:
+ *     25:4f:14:c8:a4:dd:2f:d7:9a:17:bd:90:19:f7:05:
+ *     fd:f2:d2:c5:f7:77:be:ea:e2:84:87:97:3a:41:96:
+ *     b6:99:f8:94:8c:58:71:51:8c:f4:2a:20:9e:1a:a0:
+ *     26:99:75:d6:31:53:43:39:f5:2a:a6:7e:34:42:51:
+ *     2a:40:87:03:88:43:69:b2:89:6d:20:bd:7d:71:ef:
+ *     47:0a:df:06:c1:69:66:a8:22:37:1a:77:1e:c7:94:
+ *     4e:2c:27:69:45:5e:c8:f8:0c:b7:f8:c0:8f:99:c1:
+ *     e5:28:9b:f9:4c:94:c6:b1
+ * prime1:
+ *     00:e7:35:00:62:17:66:a2:7c:48:3a:cd:b2:4e:38:
+ *     2e:e1:7b:90:87:01:d9:05:c5:2c:56:54:55:47:2f:
+ *     a1:1f:5d:fa:9d:2d:59:14:a2:13:1b:81:9b:fe:5f:
+ *     1c:88:79:4d:9b:88:e1:31:4a:0e:3d:29:db:37:14:
+ *     e2:a0:4d:ab:b5
+ * prime2:
+ *     00:d0:17:75:85:a8:fa:42:e0:a8:f0:8d:00:5e:6d:
+ *     96:3b:e3:0c:4d:93:13:be:d1:c3:fd:b1:a3:28:d3:
+ *     3e:7d:3e:08:f2:b2:98:9d:04:57:d5:a7:07:76:a4:
+ *     bd:5f:1d:ab:34:9a:99:82:43:26:a4:44:88:74:f4:
+ *     76:7d:ce:32:8f
+ * exponent1:
+ *     2c:57:8c:e8:43:26:aa:f8:fc:fd:52:1f:e5:42:7f:
+ *     33:3d:78:7d:7c:0c:3c:40:11:7d:c9:14:c5:df:4b:
+ *     9e:71:6e:b4:20:53:5a:52:af:29:72:55:11:96:fa:
+ *     28:ee:62:c4:f6:9e:81:ce:7b:26:9d:d5:6e:1d:f2:
+ *     4c:de:38:95
+ * exponent2:
+ *     0c:3f:f5:49:23:03:68:80:75:31:83:fb:6b:93:a3:
+ *     ee:6e:95:40:d3:d1:ab:c0:09:7b:9b:c3:71:19:ce:
+ *     69:ed:06:f5:d2:91:ad:5c:9e:17:13:b8:1a:c1:e3:
+ *     eb:ff:81:1e:9d:a3:3f:c9:d8:32:7f:5e:51:14:3b:
+ *     0d:78:df:fd
+ * coefficient:
+ *     01:0c:cc:95:69:ca:19:23:bc:a7:24:c3:b6:74:31:
+ *     de:14:4c:a1:49:0e:12:19:8d:ab:86:d0:84:b9:18:
+ *     aa:d9:d8:15:ca:a9:51:0d:aa:32:35:be:36:23:56:
+ *     93:91:e7:4e:b3:12:dc:bf:44:74:9a:1b:31:4c:da:
+ *     35:92:f2:e3
+ *
+ * client certificate:
+ * Data:
+ *     Version: 3 (0x2)
+ *     Serial Number: 6 (0x6)
+ *     Signature Algorithm: md5WithRSAEncryption
+ *     Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Validity
+ *         Not Before: Dec  8 03:27:34 2008 GMT
+ *         Not After : Aug 25 03:27:34 2028 GMT
+ *     Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Client, CN=localhost
+ *     Subject Public Key Info:
+ *         Public Key Algorithm: rsaEncryption
+ *         RSA Public Key: (1024 bit)
+ *             Modulus (1024 bit):
+ *                 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ *                 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ *                 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ *                 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ *                 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ *                 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ *                 ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ *                 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ *                 75:8d:f5:82:ac:43:92:44:1b
+ *             Exponent: 65537 (0x10001)
+ *     X509v3 extensions:
+ *         X509v3 Basic Constraints:
+ *             CA:FALSE
+ *         X509v3 Key Usage:
+ *             Digital Signature, Non Repudiation, Key Encipherment
+ *         X509v3 Subject Key Identifier:
+ *             CD:BB:C8:85:AA:91:BD:FD:1D:BE:CD:67:7C:FF:B3:E9:4C:A8:22:E6
+ *         X509v3 Authority Key Identifier:
+ *             keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ *         X509v3 Subject Alternative Name: critical
+ *             IP Address:127.0.0.1
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICnzCCAgigAwIBAgIBBjANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3MzRaFw0yODA4MjUwMzI3MzRaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas
+ * JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV
+ * 8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq
+ * ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjbjBsMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB
+ * MA0GCSqGSIb3DQEBBAUAA4GBACjj9PS+W6XOF7toFMwMOv/AemZeBOpcEF1Ei1Hx
+ * HjvB6EOHkMY8tFm5OPzkiWiK3+s3awpSW0jWdzMYwrQJ3/klMsPDpI7PEuirqwHP
+ * i5Wyl/vk7jmfWVcBO9MVhPUo4BYl4vS9aj6JA5QbkbkB95LOgT/BowY0WmHeVsXC
+ * I9aw
+ * -----END CERTIFICATE-----
+ *
+ *
+ *
+ * Trusted CA certificate:
+ * Certificate:
+ *   Data:
+ *     Version: 3 (0x2)
+ *     Serial Number: 0 (0x0)
+ *     Signature Algorithm: md5WithRSAEncryption
+ *     Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Validity
+ *         Not Before: Dec  8 02:43:36 2008 GMT
+ *         Not After : Aug 25 02:43:36 2028 GMT
+ *     Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Subject Public Key Info:
+ *         Public Key Algorithm: rsaEncryption
+ *         RSA Public Key: (1024 bit)
+ *             Modulus (1024 bit):
+ *                 00:cb:c4:38:20:07:be:88:a7:93:b0:a1:43:51:2d:
+ *                 d7:8e:85:af:54:dd:ad:a2:7b:23:5b:cf:99:13:53:
+ *                 99:45:7d:ee:6d:ba:2d:bf:e3:ad:6e:3d:9f:1a:f9:
+ *                 03:97:e0:17:55:ae:11:26:57:de:01:29:8e:05:3f:
+ *                 21:f7:e7:36:e8:2e:37:d7:48:ac:53:d6:60:0e:c7:
+ *                 50:6d:f6:c5:85:f7:8b:a6:c5:91:35:72:3c:94:ee:
+ *                 f1:17:f0:71:e3:ec:1b:ce:ca:4e:40:42:b0:6d:ee:
+ *                 6a:0e:d6:e5:ad:3c:0f:c9:ba:82:4f:78:f8:89:97:
+ *                 89:2a:95:12:4c:d8:09:2a:e9
+ *             Exponent: 65537 (0x10001)
+ *     X509v3 extensions:
+ *         X509v3 Subject Key Identifier:
+ *             FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *         X509v3 Authority Key Identifier:
+ *             keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *             DirName:/C=US/ST=Some-State/L=Some-City/O=Some-Org
+ *             serial:00
+ *
+ *         X509v3 Basic Constraints:
+ *             CA:TRUE
+ *  Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+ * gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX
+ * 4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj
+ * 7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G
+ * A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ
+ * hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt
+ * U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw
+ * DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA
+ * ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ
+ * LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P
+ * 6Mvf0r1PNTY2hwTJLJmKtg==
+ * -----END CERTIFICATE---
+ */
+
+
+public class IPAddressIPIdentities {
+    static Map cookies;
+    ServerSocket ss;
+
+    /*
+     * =============================================================
+     * Set the various variables needed for the tests, then
+     * specify what tests to run on each side.
+     */
+
+    /*
+     * Should we run the client or server in a separate thread?
+     * Both sides can throw exceptions, but do you have a preference
+     * as to which side should be the main thread.
+     */
+    static boolean separateServerThread = true;
+
+    /*
+     * Where do we find the keystores?
+     */
+    static String trusedCertStr =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+        "EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ\n" +
+        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" +
+        "gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX\n" +
+        "4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj\n" +
+        "7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G\n" +
+        "A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ\n" +
+        "hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt\n" +
+        "U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw\n" +
+        "DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA\n" +
+        "ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ\n" +
+        "LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P\n" +
+        "6Mvf0r1PNTY2hwTJLJmKtg==\n" +
+        "-----END CERTIFICATE-----";
+
+    static String serverCertStr =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIICnzCCAgigAwIBAgIBBzANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+        "EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3NTdaFw0yODA4MjUwMzI3NTdaMHIxCzAJ\n" +
+        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD\n" +
+        "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3\n" +
+        "ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6\n" +
+        "YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS\n" +
+        "7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjbjBsMAkGA1UdEwQCMAAw\n" +
+        "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV\n" +
+        "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB\n" +
+        "MA0GCSqGSIb3DQEBBAUAA4GBAFJjItCtCBZcjD69wdqfIbKmRFa6eJAjR6LcoDva\n" +
+        "cKC/sDOLelpspiZ66Zb0Xdv5qQ7QrfOXt3K8QqJKRMdZLF9WfUfy0gJDM32ub91h\n" +
+        "pu+TmcGPs+6RdrAQcuvU1ZDV9X8SMj7BtKaim4d5sqFw1npncKiA5xFn8vOYwdun\n" +
+        "nZif\n" +
+        "-----END CERTIFICATE-----";
+
+    static String clientCertStr =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIICnzCCAgigAwIBAgIBBjANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+        "EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3MzRaFw0yODA4MjUwMzI3MzRaMHIxCzAJ\n" +
+        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD\n" +
+        "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas\n" +
+        "JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV\n" +
+        "8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq\n" +
+        "ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjbjBsMAkGA1UdEwQCMAAw\n" +
+        "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV\n" +
+        "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB\n" +
+        "MA0GCSqGSIb3DQEBBAUAA4GBACjj9PS+W6XOF7toFMwMOv/AemZeBOpcEF1Ei1Hx\n" +
+        "HjvB6EOHkMY8tFm5OPzkiWiK3+s3awpSW0jWdzMYwrQJ3/klMsPDpI7PEuirqwHP\n" +
+        "i5Wyl/vk7jmfWVcBO9MVhPUo4BYl4vS9aj6JA5QbkbkB95LOgT/BowY0WmHeVsXC\n" +
+        "I9aw\n" +
+        "-----END CERTIFICATE-----";
+
+
+    static byte serverPrivateExponent[] = {
+        (byte)0x6e, (byte)0xa7, (byte)0x1b, (byte)0x83,
+        (byte)0x51, (byte)0x35, (byte)0x9a, (byte)0x44,
+        (byte)0x7d, (byte)0xf6, (byte)0xe3, (byte)0x89,
+        (byte)0xa0, (byte)0xd7, (byte)0x90, (byte)0x60,
+        (byte)0xa1, (byte)0x4e, (byte)0x27, (byte)0x21,
+        (byte)0xa2, (byte)0x89, (byte)0x74, (byte)0xcc,
+        (byte)0x9d, (byte)0x75, (byte)0x75, (byte)0x4e,
+        (byte)0xc7, (byte)0x82, (byte)0xe3, (byte)0xe3,
+        (byte)0xc3, (byte)0x7d, (byte)0x00, (byte)0x54,
+        (byte)0xec, (byte)0x36, (byte)0xb1, (byte)0xdf,
+        (byte)0x91, (byte)0x9c, (byte)0x7a, (byte)0xc0,
+        (byte)0x62, (byte)0x0a, (byte)0xd6, (byte)0xa9,
+        (byte)0x22, (byte)0x91, (byte)0x4a, (byte)0x29,
+        (byte)0x2e, (byte)0x43, (byte)0xfa, (byte)0x8c,
+        (byte)0xd8, (byte)0xe9, (byte)0xbe, (byte)0xd9,
+        (byte)0x4f, (byte)0xca, (byte)0x23, (byte)0xc6,
+        (byte)0xe4, (byte)0x3f, (byte)0xb8, (byte)0x72,
+        (byte)0xcf, (byte)0x02, (byte)0xfc, (byte)0xf4,
+        (byte)0x58, (byte)0x34, (byte)0x77, (byte)0x76,
+        (byte)0xce, (byte)0x22, (byte)0x44, (byte)0x5f,
+        (byte)0x2d, (byte)0xca, (byte)0xee, (byte)0xf5,
+        (byte)0x43, (byte)0x56, (byte)0x47, (byte)0x71,
+        (byte)0x0b, (byte)0x09, (byte)0x6b, (byte)0x5e,
+        (byte)0xf2, (byte)0xc8, (byte)0xee, (byte)0xd4,
+        (byte)0x6e, (byte)0x44, (byte)0x92, (byte)0x2a,
+        (byte)0x7f, (byte)0xcc, (byte)0xa7, (byte)0xd4,
+        (byte)0x5b, (byte)0xfb, (byte)0xf7, (byte)0x4a,
+        (byte)0xa9, (byte)0xfb, (byte)0x54, (byte)0x18,
+        (byte)0xd5, (byte)0xd5, (byte)0x14, (byte)0xba,
+        (byte)0xa0, (byte)0x1c, (byte)0x13, (byte)0xb3,
+        (byte)0x37, (byte)0x6b, (byte)0x37, (byte)0x59,
+        (byte)0xed, (byte)0xdb, (byte)0x6d, (byte)0xb1
+    };
+
+    static byte serverModulus[] = {
+        (byte)0x00,
+        (byte)0xa5, (byte)0xac, (byte)0x5b, (byte)0x1c,
+        (byte)0x37, (byte)0xa2, (byte)0xdd, (byte)0x99,
+        (byte)0x89, (byte)0x2d, (byte)0xb2, (byte)0x79,
+        (byte)0xb8, (byte)0x8f, (byte)0xd5, (byte)0x48,
+        (byte)0xa5, (byte)0xe7, (byte)0x1c, (byte)0x84,
+        (byte)0x17, (byte)0x8d, (byte)0x69, (byte)0x9c,
+        (byte)0xc6, (byte)0xac, (byte)0x6d, (byte)0xf9,
+        (byte)0xf2, (byte)0x1d, (byte)0x1f, (byte)0x39,
+        (byte)0x19, (byte)0xda, (byte)0xd3, (byte)0x72,
+        (byte)0x1e, (byte)0x6e, (byte)0xec, (byte)0x44,
+        (byte)0xcc, (byte)0x70, (byte)0xa4, (byte)0xdc,
+        (byte)0xba, (byte)0x00, (byte)0x30, (byte)0xf6,
+        (byte)0xa0, (byte)0x4f, (byte)0x3d, (byte)0x54,
+        (byte)0x7a, (byte)0x61, (byte)0x6a, (byte)0xcc,
+        (byte)0x57, (byte)0xd0, (byte)0x0a, (byte)0x7f,
+        (byte)0x95, (byte)0x28, (byte)0x18, (byte)0x3f,
+        (byte)0x9a, (byte)0xd9, (byte)0x94, (byte)0xf2,
+        (byte)0x1b, (byte)0xc8, (byte)0x24, (byte)0x88,
+        (byte)0x7e, (byte)0xfe, (byte)0x9d, (byte)0x0f,
+        (byte)0x3d, (byte)0xfb, (byte)0x57, (byte)0x53,
+        (byte)0x08, (byte)0xb3, (byte)0x20, (byte)0x33,
+        (byte)0xd4, (byte)0x3f, (byte)0x17, (byte)0x47,
+        (byte)0x14, (byte)0xd1, (byte)0xcd, (byte)0xea,
+        (byte)0x08, (byte)0xd8, (byte)0x0e, (byte)0x75,
+        (byte)0x4e, (byte)0xaf, (byte)0xbe, (byte)0xcc,
+        (byte)0xd2, (byte)0xec, (byte)0xaf, (byte)0xa9,
+        (byte)0x7a, (byte)0x49, (byte)0xdf, (byte)0xc2,
+        (byte)0xd9, (byte)0xac, (byte)0xb8, (byte)0x24,
+        (byte)0x40, (byte)0x90, (byte)0xa6, (byte)0x03,
+        (byte)0x56, (byte)0x2a, (byte)0xd0, (byte)0x30,
+        (byte)0x05, (byte)0x40, (byte)0x2c, (byte)0x4f,
+        (byte)0xab, (byte)0xd9, (byte)0x74, (byte)0x89
+    };
+
+    static byte clientPrivateExponent[] = {
+        (byte)0x11, (byte)0xb7, (byte)0x6a, (byte)0x36,
+        (byte)0x3d, (byte)0x30, (byte)0x37, (byte)0xce,
+        (byte)0x61, (byte)0x9d, (byte)0x6c, (byte)0x84,
+        (byte)0x8b, (byte)0xf3, (byte)0x9b, (byte)0x25,
+        (byte)0x4f, (byte)0x14, (byte)0xc8, (byte)0xa4,
+        (byte)0xdd, (byte)0x2f, (byte)0xd7, (byte)0x9a,
+        (byte)0x17, (byte)0xbd, (byte)0x90, (byte)0x19,
+        (byte)0xf7, (byte)0x05, (byte)0xfd, (byte)0xf2,
+        (byte)0xd2, (byte)0xc5, (byte)0xf7, (byte)0x77,
+        (byte)0xbe, (byte)0xea, (byte)0xe2, (byte)0x84,
+        (byte)0x87, (byte)0x97, (byte)0x3a, (byte)0x41,
+        (byte)0x96, (byte)0xb6, (byte)0x99, (byte)0xf8,
+        (byte)0x94, (byte)0x8c, (byte)0x58, (byte)0x71,
+        (byte)0x51, (byte)0x8c, (byte)0xf4, (byte)0x2a,
+        (byte)0x20, (byte)0x9e, (byte)0x1a, (byte)0xa0,
+        (byte)0x26, (byte)0x99, (byte)0x75, (byte)0xd6,
+        (byte)0x31, (byte)0x53, (byte)0x43, (byte)0x39,
+        (byte)0xf5, (byte)0x2a, (byte)0xa6, (byte)0x7e,
+        (byte)0x34, (byte)0x42, (byte)0x51, (byte)0x2a,
+        (byte)0x40, (byte)0x87, (byte)0x03, (byte)0x88,
+        (byte)0x43, (byte)0x69, (byte)0xb2, (byte)0x89,
+        (byte)0x6d, (byte)0x20, (byte)0xbd, (byte)0x7d,
+        (byte)0x71, (byte)0xef, (byte)0x47, (byte)0x0a,
+        (byte)0xdf, (byte)0x06, (byte)0xc1, (byte)0x69,
+        (byte)0x66, (byte)0xa8, (byte)0x22, (byte)0x37,
+        (byte)0x1a, (byte)0x77, (byte)0x1e, (byte)0xc7,
+        (byte)0x94, (byte)0x4e, (byte)0x2c, (byte)0x27,
+        (byte)0x69, (byte)0x45, (byte)0x5e, (byte)0xc8,
+        (byte)0xf8, (byte)0x0c, (byte)0xb7, (byte)0xf8,
+        (byte)0xc0, (byte)0x8f, (byte)0x99, (byte)0xc1,
+        (byte)0xe5, (byte)0x28, (byte)0x9b, (byte)0xf9,
+        (byte)0x4c, (byte)0x94, (byte)0xc6, (byte)0xb1
+    };
+
+    static byte clientModulus[] = {
+        (byte)0x00,
+        (byte)0xbb, (byte)0xf0, (byte)0x40, (byte)0x36,
+        (byte)0xac, (byte)0x26, (byte)0x54, (byte)0x4e,
+        (byte)0xf4, (byte)0xa3, (byte)0x5a, (byte)0x00,
+        (byte)0x2f, (byte)0x69, (byte)0x21, (byte)0x6f,
+        (byte)0xb9, (byte)0x7a, (byte)0x3a, (byte)0x93,
+        (byte)0xec, (byte)0xa2, (byte)0xf6, (byte)0xe1,
+        (byte)0x8e, (byte)0xc7, (byte)0x63, (byte)0xd8,
+        (byte)0x2f, (byte)0x12, (byte)0x30, (byte)0x99,
+        (byte)0x2e, (byte)0xb0, (byte)0xf2, (byte)0x8f,
+        (byte)0xf8, (byte)0x27, (byte)0x2d, (byte)0x24,
+        (byte)0x78, (byte)0x28, (byte)0x84, (byte)0xf7,
+        (byte)0x01, (byte)0xbf, (byte)0x8d, (byte)0x44,
+        (byte)0x79, (byte)0xdd, (byte)0x3b, (byte)0xd2,
+        (byte)0x55, (byte)0xf3, (byte)0xce, (byte)0x3c,
+        (byte)0xb2, (byte)0x5b, (byte)0x21, (byte)0x7d,
+        (byte)0xef, (byte)0xfd, (byte)0x33, (byte)0x4a,
+        (byte)0xb1, (byte)0xa3, (byte)0xff, (byte)0xc6,
+        (byte)0xc8, (byte)0x9b, (byte)0xb9, (byte)0x0f,
+        (byte)0x7c, (byte)0x41, (byte)0x35, (byte)0x97,
+        (byte)0xf9, (byte)0xdb, (byte)0x3a, (byte)0x05,
+        (byte)0x60, (byte)0x05, (byte)0x15, (byte)0xaf,
+        (byte)0x59, (byte)0x17, (byte)0x92, (byte)0xa3,
+        (byte)0x10, (byte)0xad, (byte)0x16, (byte)0x1c,
+        (byte)0xe4, (byte)0x07, (byte)0x53, (byte)0xaf,
+        (byte)0xa8, (byte)0x76, (byte)0xa2, (byte)0x56,
+        (byte)0x2a, (byte)0x92, (byte)0xd3, (byte)0xf9,
+        (byte)0x28, (byte)0xe0, (byte)0x78, (byte)0xcf,
+        (byte)0x5e, (byte)0x1f, (byte)0x48, (byte)0xab,
+        (byte)0x5c, (byte)0x19, (byte)0xdd, (byte)0xe1,
+        (byte)0x67, (byte)0x43, (byte)0xba, (byte)0x75,
+        (byte)0x8d, (byte)0xf5, (byte)0x82, (byte)0xac,
+        (byte)0x43, (byte)0x92, (byte)0x44, (byte)0x1b
+    };
+
+    static char passphrase[] = "passphrase".toCharArray();
+
+    /*
+     * Is the server ready to serve?
+     */
+    volatile static boolean serverReady = false;
+
+    /*
+     * Turn on SSL debugging?
+     */
+    static boolean debug = false;
+
+    private SSLServerSocket sslServerSocket = null;
+
+    /*
+     * Define the server side of the test.
+     *
+     * If the server prematurely exits, serverReady will be set to true
+     * to avoid infinite hangs.
+     */
+    void doServerSide() throws Exception {
+        SSLContext context = getSSLContext(trusedCertStr, serverCertStr,
+            serverModulus, serverPrivateExponent, passphrase);
+        SSLServerSocketFactory sslssf = context.getServerSocketFactory();
+
+        sslServerSocket =
+            (SSLServerSocket) sslssf.createServerSocket(serverPort);
+        serverPort = sslServerSocket.getLocalPort();
+
+        /*
+         * Signal Client, we're ready for his connect.
+         */
+        serverReady = true;
+
+        SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
+        sslSocket.setNeedClientAuth(true);
+        if (sslSocket instanceof SSLSocketImpl) {
+            ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
+        }
+
+        PrintStream out =
+                new PrintStream(sslSocket.getOutputStream());
+
+        try {
+            // ignore request data
+
+            // send the response
+            out.print("HTTP/1.1 200 OK\r\n");
+            out.print("Content-Type: text/html; charset=iso-8859-1\r\n");
+            out.print("Content-Length: "+ 9 +"\r\n");
+            out.print("\r\n");
+            out.print("Testing\r\n");
+            out.flush();
+        } finally {
+             // close the socket
+             Thread.sleep(2000);
+             System.out.println("Server closing socket");
+             sslSocket.close();
+             serverReady = false;
+        }
+
+    }
+
+    /*
+     * Define the client side of the test.
+     *
+     * If the server prematurely exits, serverReady will be set to true
+     * to avoid infinite hangs.
+     */
+    void doClientSide() throws Exception {
+        SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
+            clientModulus, clientPrivateExponent, passphrase);
+
+        SSLContext.setDefault(context);
+
+        /*
+         * Wait for server to get started.
+         */
+        while (!serverReady) {
+            Thread.sleep(50);
+        }
+
+        HttpsURLConnection http = null;
+
+        /* establish http connection to server */
+        URL url = new URL("https://127.0.0.1:" + serverPort+"/");
+        System.out.println("url is "+url.toString());
+
+        http = (HttpsURLConnection)url.openConnection();
+
+        int respCode = http.getResponseCode();
+        System.out.println("respCode = "+respCode);
+
+        http.disconnect();
+    }
+
+    /*
+     * =============================================================
+     * The remainder is just support stuff
+     */
+
+    // use any free port by default
+    volatile int serverPort = 0;
+
+    volatile Exception serverException = null;
+    volatile Exception clientException = null;
+
+    public static void main(String args[]) throws Exception {
+        if (debug)
+            System.setProperty("javax.net.debug", "all");
+
+        /*
+         * Start the tests.
+         */
+        new IPAddressIPIdentities();
+    }
+
+    Thread clientThread = null;
+    Thread serverThread = null;
+    /*
+     * Primary constructor, used to drive remainder of the test.
+     *
+     * Fork off the other side, then do your work.
+     */
+    IPAddressIPIdentities() throws Exception {
+        if (separateServerThread) {
+            startServer(true);
+            startClient(false);
+        } else {
+            startClient(true);
+            startServer(false);
+        }
+
+        /*
+         * Wait for other side to close down.
+         */
+        if (separateServerThread) {
+            serverThread.join();
+        } else {
+            clientThread.join();
+        }
+
+        /*
+         * When we get here, the test is pretty much over.
+         *
+         * If the main thread excepted, that propagates back
+         * immediately.  If the other thread threw an exception, we
+         * should report back.
+         */
+        if (serverException != null)
+            throw serverException;
+        if (clientException != null)
+            throw clientException;
+    }
+
+    void startServer(boolean newThread) throws Exception {
+        if (newThread) {
+            serverThread = new Thread() {
+                public void run() {
+                    try {
+                        doServerSide();
+                    } catch (Exception e) {
+                        /*
+                         * Our server thread just died.
+                         *
+                         * Release the client, if not active already...
+                         */
+                        System.err.println("Server died...");
+                        serverReady = true;
+                        serverException = e;
+                    }
+                }
+            };
+            serverThread.start();
+        } else {
+            doServerSide();
+        }
+    }
+
+    void startClient(boolean newThread) throws Exception {
+        if (newThread) {
+            clientThread = new Thread() {
+                public void run() {
+                    try {
+                        doClientSide();
+                    } catch (Exception e) {
+                        /*
+                         * Our client thread just died.
+                         */
+                        System.err.println("Client died...");
+                        clientException = e;
+                    }
+                }
+            };
+            clientThread.start();
+        } else {
+            doClientSide();
+        }
+    }
+
+    // get the ssl context
+    private static SSLContext getSSLContext(String trusedCertStr,
+            String keyCertStr, byte[] modulus,
+            byte[] privateExponent, char[] passphrase) throws Exception {
+
+        // generate certificate from cert string
+        CertificateFactory cf = CertificateFactory.getInstance("X.509");
+
+        ByteArrayInputStream is =
+                    new ByteArrayInputStream(trusedCertStr.getBytes());
+        Certificate trusedCert = cf.generateCertificate(is);
+        is.close();
+
+        // create a key store
+        KeyStore ks = KeyStore.getInstance("JKS");
+        ks.load(null, null);
+
+        // import the trused cert
+        ks.setCertificateEntry("RSA Export Signer", trusedCert);
+
+        if (keyCertStr != null) {
+            // generate the private key.
+            RSAPrivateKeySpec priKeySpec = new RSAPrivateKeySpec(
+                                            new BigInteger(modulus),
+                                            new BigInteger(privateExponent));
+            KeyFactory kf = KeyFactory.getInstance("RSA");
+            RSAPrivateKey priKey =
+                    (RSAPrivateKey)kf.generatePrivate(priKeySpec);
+
+            // generate certificate chain
+            is = new ByteArrayInputStream(keyCertStr.getBytes());
+            Certificate keyCert = cf.generateCertificate(is);
+            is.close();
+
+            Certificate[] chain = new Certificate[2];
+            chain[0] = keyCert;
+            chain[1] = trusedCert;
+
+            // import the key entry.
+            ks.setKeyEntry("Whatever", priKey, passphrase, chain);
+        }
+
+        // create SSL context
+        TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
+        tmf.init(ks);
+
+        SSLContext ctx = SSLContext.getInstance("TLS");
+
+        if (keyCertStr != null) {
+            KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
+            kmf.init(ks, passphrase);
+
+            ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+        } else {
+            ctx.init(null, tmf.getTrustManagers(), null);
+        }
+
+        return ctx;
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,880 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* @test
+ * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
+ * @bug 6766775
+ * @author Xuelei Fan
+ */
+
+import java.net.*;
+import java.util.*;
+import java.io.*;
+import javax.net.ssl.*;
+import java.security.KeyStore;
+import java.security.KeyFactory;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
+import java.security.spec.*;
+import java.security.interfaces.*;
+import java.math.BigInteger;
+
+import sun.security.ssl.SSLSocketImpl;
+
+/*
+ * Certificates and key used in the test.
+ *
+ * TLS server certificate:
+ * server private key:
+ * -----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,D9AE407F6D0E389A
+ *
+ * WPrA7TFol/cQCcp9oHnXWNpYlvRbbIcQj0m+RKT2Iuzfus+DHt3Zadf8nJpKfX2e
+ * h2rnhlzCN9M7djRDooZKDOPCsdBn51Au7HlZF3S3Opgo7D8XFM1a8t1Je4ke14oI
+ * nw6QKYsBblRziPnP2PZ0zvX24nOv7bbY8beynlJHGs00VWSFdoH2DS0aE1p6D+3n
+ * ptJuJ75dVfZFK4X7162APlNXevX8D6PEQpSiRw1rjjGGcnvQ4HdWk3BxDVDcCNJb
+ * Y1aGNRxsjTDvPi3R9Qx2M+W03QzEPx4SR3ZHVskeSJHaetM0TM/w/45Paq4GokXP
+ * ZeTnbEx1xmjkA7h+t4doLL4watx5F6yLsJzu8xB3lt/1EtmkYtLz1t7X4BetPAXz
+ * zS69X/VwhKfsOI3qXBWuL2oHPyhDmT1gcaUQwEPSV6ogHEEQEDXdiUS8heNK13KF
+ * TCQYFkETvV2BLxUhV1hypPzRQ6tUpJiAbD5KmoK2lD9slshG2QtvKQq0/bgkDY5J
+ * LhDHV2dtcZ3kDPkkZXpbcJQvoeH3d09C5sIsuTFo2zgNR6oETHUc5TzP6FY2YYRa
+ * QcK5HcmtsRRiXFm01ac+aMejJUIujjFt84SiKWT/73vC8AmY4tYcJBLjCg4XIxSH
+ * fdDFLL1YZENNO5ivlp8mdiHqcawx+36L7DrEZQ8RZt6cqST5t/+XTdM74s6k81GT
+ * pNsa82P2K2zmIUZ/DL2mKjW1vfRByw1NQFEBkN3vdyZxYfM/JyUzX4hbjXBEkh9Q
+ * QYrcwLKLjis2QzSvK04B3bvRzRb+4ocWiso8ZPAXAIxZFBWDpTMM2A==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICXAIBAAKBgQClrFscN6LdmYktsnm4j9VIpecchBeNaZzGrG358h0fORna03Ie
+ * buxEzHCk3LoAMPagTz1UemFqzFfQCn+VKBg/mtmU8hvIJIh+/p0PPftXUwizIDPU
+ * PxdHFNHN6gjYDnVOr77M0uyvqXpJ38LZrLgkQJCmA1Yq0DAFQCxPq9l0iQIDAQAB
+ * AoGAbqcbg1E1mkR99uOJoNeQYKFOJyGiiXTMnXV1TseC4+PDfQBU7Dax35GcesBi
+ * CtapIpFKKS5D+ozY6b7ZT8ojxuQ/uHLPAvz0WDR3ds4iRF8tyu71Q1ZHcQsJa17y
+ * yO7UbkSSKn/Mp9Rb+/dKqftUGNXVFLqgHBOzN2s3We3bbbECQQDYBPKOg3hkaGHo
+ * OhpHKqtQ6EVkldihG/3i4WejRonelXN+HRh1KrB2HBx0M8D/qAzP1i3rNSlSHer4
+ * 59YRTJnHAkEAxFX/sVYSn07BHv9Zhn6XXct/Cj43z/tKNbzlNbcxqQwQerw3IH51
+ * 8UH2YOA+GD3lXbKp+MytoFLWv8zg4YT/LwJAfqan75Z1R6lLffRS49bIiq8jwE16
+ * rTrUJ+kv8jKxMqc9B3vXkxpsS1M/+4E8bqgAmvpgAb8xcsvHsBd9ErdukQJBAKs2
+ * j67W75BrPjBI34pQ1LEfp56IGWXOrq1kF8IbCjxv3+MYRT6Z6UJFkpRymNPNDjsC
+ * dgUYgITiGJHUGXuw3lMCQHEHqo9ZtXz92yFT+VhsNc29B8m/sqUJdtCcMd/jGpAF
+ * u6GHufjqIZBpQsk63wbwESAPZZ+kk1O1kS5GIRLX608=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ *     00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ *     d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ *     1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ *     ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ *     7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ *     9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ *     d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ *     7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ *     30:05:40:2c:4f:ab:d9:74:89
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ *     6e:a7:1b:83:51:35:9a:44:7d:f6:e3:89:a0:d7:90:
+ *     60:a1:4e:27:21:a2:89:74:cc:9d:75:75:4e:c7:82:
+ *     e3:e3:c3:7d:00:54:ec:36:b1:df:91:9c:7a:c0:62:
+ *     0a:d6:a9:22:91:4a:29:2e:43:fa:8c:d8:e9:be:d9:
+ *     4f:ca:23:c6:e4:3f:b8:72:cf:02:fc:f4:58:34:77:
+ *     76:ce:22:44:5f:2d:ca:ee:f5:43:56:47:71:0b:09:
+ *     6b:5e:f2:c8:ee:d4:6e:44:92:2a:7f:cc:a7:d4:5b:
+ *     fb:f7:4a:a9:fb:54:18:d5:d5:14:ba:a0:1c:13:b3:
+ *     37:6b:37:59:ed:db:6d:b1
+ * prime1:
+ *     00:d8:04:f2:8e:83:78:64:68:61:e8:3a:1a:47:2a:
+ *     ab:50:e8:45:64:95:d8:a1:1b:fd:e2:e1:67:a3:46:
+ *     89:de:95:73:7e:1d:18:75:2a:b0:76:1c:1c:74:33:
+ *     c0:ff:a8:0c:cf:d6:2d:eb:35:29:52:1d:ea:f8:e7:
+ *     d6:11:4c:99:c7
+ * prime2:
+ *     00:c4:55:ff:b1:56:12:9f:4e:c1:1e:ff:59:86:7e:
+ *     97:5d:cb:7f:0a:3e:37:cf:fb:4a:35:bc:e5:35:b7:
+ *     31:a9:0c:10:7a:bc:37:20:7e:75:f1:41:f6:60:e0:
+ *     3e:18:3d:e5:5d:b2:a9:f8:cc:ad:a0:52:d6:bf:cc:
+ *     e0:e1:84:ff:2f
+ * exponent1:
+ *     7e:a6:a7:ef:96:75:47:a9:4b:7d:f4:52:e3:d6:c8:
+ *     8a:af:23:c0:4d:7a:ad:3a:d4:27:e9:2f:f2:32:b1:
+ *     32:a7:3d:07:7b:d7:93:1a:6c:4b:53:3f:fb:81:3c:
+ *     6e:a8:00:9a:fa:60:01:bf:31:72:cb:c7:b0:17:7d:
+ *     12:b7:6e:91
+ * exponent2:
+ *     00:ab:36:8f:ae:d6:ef:90:6b:3e:30:48:df:8a:50:
+ *     d4:b1:1f:a7:9e:88:19:65:ce:ae:ad:64:17:c2:1b:
+ *     0a:3c:6f:df:e3:18:45:3e:99:e9:42:45:92:94:72:
+ *     98:d3:cd:0e:3b:02:76:05:18:80:84:e2:18:91:d4:
+ *     19:7b:b0:de:53
+ * coefficient:
+ *     71:07:aa:8f:59:b5:7c:fd:db:21:53:f9:58:6c:35:
+ *     cd:bd:07:c9:bf:b2:a5:09:76:d0:9c:31:df:e3:1a:
+ *     90:05:bb:a1:87:b9:f8:ea:21:90:69:42:c9:3a:df:
+ *     06:f0:11:20:0f:65:9f:a4:93:53:b5:91:2e:46:21:
+ *     12:d7:eb:4f
+ *
+ *
+ * server certificate:
+ * Data:
+ *     Version: 3 (0x2)
+ *     Serial Number: 7 (0x7)
+ *     Signature Algorithm: md5WithRSAEncryption
+ *     Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Validity
+ *         Not Before: Dec  8 03:27:57 2008 GMT
+ *         Not After : Aug 25 03:27:57 2028 GMT
+ *     Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Server, CN=localhost
+ *     Subject Public Key Info:
+ *         Public Key Algorithm: rsaEncryption
+ *         RSA Public Key: (1024 bit)
+ *             Modulus (1024 bit):
+ *                 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ *                 d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ *                 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ *                 ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ *                 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ *                 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ *                 d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ *                 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ *                 30:05:40:2c:4f:ab:d9:74:89
+ *             Exponent: 65537 (0x10001)
+ *     X509v3 extensions:
+ *         X509v3 Basic Constraints:
+ *             CA:FALSE
+ *         X509v3 Key Usage:
+ *             Digital Signature, Non Repudiation, Key Encipherment
+ *         X509v3 Subject Key Identifier:
+ *             ED:6E:DB:F4:B5:56:C8:FB:1A:06:61:3F:0F:08:BB:A6:04:D8:16:54
+ *         X509v3 Authority Key Identifier:
+ *             keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ *         X509v3 Subject Alternative Name: critical
+ *             IP Address:127.0.0.1
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICnzCCAgigAwIBAgIBBzANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3NTdaFw0yODA4MjUwMzI3NTdaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3
+ * ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6
+ * YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS
+ * 7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjbjBsMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB
+ * MA0GCSqGSIb3DQEBBAUAA4GBAFJjItCtCBZcjD69wdqfIbKmRFa6eJAjR6LcoDva
+ * cKC/sDOLelpspiZ66Zb0Xdv5qQ7QrfOXt3K8QqJKRMdZLF9WfUfy0gJDM32ub91h
+ * pu+TmcGPs+6RdrAQcuvU1ZDV9X8SMj7BtKaim4d5sqFw1npncKiA5xFn8vOYwdun
+ * nZif
+ * -----END CERTIFICATE-----
+ *
+ *
+ * TLS client certificate:
+ * client private key:
+ * ----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,FA2A435CD35A9390
+ *
+ * Z+Y2uaETbsUWIyJUyVu1UV2G4rgFYJyACZT6Tp1KjRtxflSh2kXkJ9MpuXMXA0V4
+ * Yy3fDzPqCL9NJmQAYRlAx/W/+j4F5EyMWDIx8fUxzONRZyoiwF7jLm+KscAfv6Pf
+ * q7ItWOdj3z7IYrwlB8YIGd3F2cDKT3S+lYRk7rKb/qT7itbuHnY4Ardh3yl+MZak
+ * jBp+ELUlRsUqSr1V0LoM+0rCCykarpyfhpxEcqsrl0v9Cyi5uhU50/oKv5zql3SH
+ * l2ImgDjp3batAs8+Bd4NF2aqi0a7Hy44JUHxRm4caZryU/i/D9N1MbuM6882HLat
+ * 5N0G+NaIUfywa8mjwq2D5aiit18HqKA6XeRRYeJ5Dvu9DCO4GeFSwcUFIBMI0L46
+ * 7s114+oDodg57pMgITi+04vmUxvqlN9aiyd7f5Fgd7PeHGeOdbMz1NaJLJaPI9++
+ * NakK8eK9iwT/Gdq0Uap5/CHW7vCT5PO+h3HY0STH0lWStXhdWnFO04zTdywsbSp+
+ * DLpHeFT66shfeUlxR0PsCbG9vPRt/QmGLeYQZITppWo/ylSq4j+pRIuXvuWHdBRN
+ * rTZ8QF4Y7AxQUXVz1j1++s6ZMHTzaK2i9HrhmDs1MbJl+QwWre3Xpv3LvTVz3k5U
+ * wX8kuY1m3STt71QCaRWENq5sRaMImLxZbxc/ivFl9RAzUqo4NCxLod/QgA4iLqtO
+ * ztnlpzwlC/F8HbQ1oqYWwnZAPhzU/cULtstl+Yrws2c2atO323LbPXZqbASySgig
+ * sNpFXQMObdfP6LN23bY+1SvtK7V4NUTNhpdIc6INQAQ=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICWwIBAAKBgQC78EA2rCZUTvSjWgAvaSFvuXo6k+yi9uGOx2PYLxIwmS6w8o/4
+ * Jy0keCiE9wG/jUR53TvSVfPOPLJbIX3v/TNKsaP/xsibuQ98QTWX+ds6BWAFFa9Z
+ * F5KjEK0WHOQHU6+odqJWKpLT+SjgeM9eH0irXBnd4WdDunWN9YKsQ5JEGwIDAQAB
+ * AoGAEbdqNj0wN85hnWyEi/ObJU8UyKTdL9eaF72QGfcF/fLSxfd3vurihIeXOkGW
+ * tpn4lIxYcVGM9CognhqgJpl11jFTQzn1KqZ+NEJRKkCHA4hDabKJbSC9fXHvRwrf
+ * BsFpZqgiNxp3HseUTiwnaUVeyPgMt/jAj5nB5Sib+UyUxrECQQDnNQBiF2aifEg6
+ * zbJOOC7he5CHAdkFxSxWVFVHL6EfXfqdLVkUohMbgZv+XxyIeU2biOExSg49Kds3
+ * FOKgTau1AkEA0Bd1haj6QuCo8I0AXm2WO+MMTZMTvtHD/bGjKNM+fT4I8rKYnQRX
+ * 1acHdqS9Xx2rNJqZgkMmpESIdPR2fc4yjwJALFeM6EMmqvj8/VIf5UJ/Mz14fXwM
+ * PEARfckUxd9LnnFutCBTWlKvKXJVEZb6KO5ixPaegc57Jp3Vbh3yTN44lQJADD/1
+ * SSMDaIB1MYP7a5Oj7m6VQNPRq8AJe5vDcRnOae0G9dKRrVyeFxO4GsHj6/+BHp2j
+ * P8nYMn9eURQ7DXjf/QJAAQzMlWnKGSO8pyTDtnQx3hRMoUkOEhmNq4bQhLkYqtnY
+ * FcqpUQ2qMjW+NiNWk5HnTrMS3L9EdJobMUzaNZLy4w==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ *     00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ *     21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ *     12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ *     01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ *     7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ *     35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ *     ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ *     28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ *     75:8d:f5:82:ac:43:92:44:1b
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ *     11:b7:6a:36:3d:30:37:ce:61:9d:6c:84:8b:f3:9b:
+ *     25:4f:14:c8:a4:dd:2f:d7:9a:17:bd:90:19:f7:05:
+ *     fd:f2:d2:c5:f7:77:be:ea:e2:84:87:97:3a:41:96:
+ *     b6:99:f8:94:8c:58:71:51:8c:f4:2a:20:9e:1a:a0:
+ *     26:99:75:d6:31:53:43:39:f5:2a:a6:7e:34:42:51:
+ *     2a:40:87:03:88:43:69:b2:89:6d:20:bd:7d:71:ef:
+ *     47:0a:df:06:c1:69:66:a8:22:37:1a:77:1e:c7:94:
+ *     4e:2c:27:69:45:5e:c8:f8:0c:b7:f8:c0:8f:99:c1:
+ *     e5:28:9b:f9:4c:94:c6:b1
+ * prime1:
+ *     00:e7:35:00:62:17:66:a2:7c:48:3a:cd:b2:4e:38:
+ *     2e:e1:7b:90:87:01:d9:05:c5:2c:56:54:55:47:2f:
+ *     a1:1f:5d:fa:9d:2d:59:14:a2:13:1b:81:9b:fe:5f:
+ *     1c:88:79:4d:9b:88:e1:31:4a:0e:3d:29:db:37:14:
+ *     e2:a0:4d:ab:b5
+ * prime2:
+ *     00:d0:17:75:85:a8:fa:42:e0:a8:f0:8d:00:5e:6d:
+ *     96:3b:e3:0c:4d:93:13:be:d1:c3:fd:b1:a3:28:d3:
+ *     3e:7d:3e:08:f2:b2:98:9d:04:57:d5:a7:07:76:a4:
+ *     bd:5f:1d:ab:34:9a:99:82:43:26:a4:44:88:74:f4:
+ *     76:7d:ce:32:8f
+ * exponent1:
+ *     2c:57:8c:e8:43:26:aa:f8:fc:fd:52:1f:e5:42:7f:
+ *     33:3d:78:7d:7c:0c:3c:40:11:7d:c9:14:c5:df:4b:
+ *     9e:71:6e:b4:20:53:5a:52:af:29:72:55:11:96:fa:
+ *     28:ee:62:c4:f6:9e:81:ce:7b:26:9d:d5:6e:1d:f2:
+ *     4c:de:38:95
+ * exponent2:
+ *     0c:3f:f5:49:23:03:68:80:75:31:83:fb:6b:93:a3:
+ *     ee:6e:95:40:d3:d1:ab:c0:09:7b:9b:c3:71:19:ce:
+ *     69:ed:06:f5:d2:91:ad:5c:9e:17:13:b8:1a:c1:e3:
+ *     eb:ff:81:1e:9d:a3:3f:c9:d8:32:7f:5e:51:14:3b:
+ *     0d:78:df:fd
+ * coefficient:
+ *     01:0c:cc:95:69:ca:19:23:bc:a7:24:c3:b6:74:31:
+ *     de:14:4c:a1:49:0e:12:19:8d:ab:86:d0:84:b9:18:
+ *     aa:d9:d8:15:ca:a9:51:0d:aa:32:35:be:36:23:56:
+ *     93:91:e7:4e:b3:12:dc:bf:44:74:9a:1b:31:4c:da:
+ *     35:92:f2:e3
+ *
+ * client certificate:
+ * Data:
+ *     Version: 3 (0x2)
+ *     Serial Number: 6 (0x6)
+ *     Signature Algorithm: md5WithRSAEncryption
+ *     Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Validity
+ *         Not Before: Dec  8 03:27:34 2008 GMT
+ *         Not After : Aug 25 03:27:34 2028 GMT
+ *     Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Client, CN=localhost
+ *     Subject Public Key Info:
+ *         Public Key Algorithm: rsaEncryption
+ *         RSA Public Key: (1024 bit)
+ *             Modulus (1024 bit):
+ *                 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ *                 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ *                 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ *                 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ *                 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ *                 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ *                 ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ *                 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ *                 75:8d:f5:82:ac:43:92:44:1b
+ *             Exponent: 65537 (0x10001)
+ *     X509v3 extensions:
+ *         X509v3 Basic Constraints:
+ *             CA:FALSE
+ *         X509v3 Key Usage:
+ *             Digital Signature, Non Repudiation, Key Encipherment
+ *         X509v3 Subject Key Identifier:
+ *             CD:BB:C8:85:AA:91:BD:FD:1D:BE:CD:67:7C:FF:B3:E9:4C:A8:22:E6
+ *         X509v3 Authority Key Identifier:
+ *             keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ *         X509v3 Subject Alternative Name: critical
+ *             IP Address:127.0.0.1
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICnzCCAgigAwIBAgIBBjANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3MzRaFw0yODA4MjUwMzI3MzRaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas
+ * JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV
+ * 8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq
+ * ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjbjBsMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB
+ * MA0GCSqGSIb3DQEBBAUAA4GBACjj9PS+W6XOF7toFMwMOv/AemZeBOpcEF1Ei1Hx
+ * HjvB6EOHkMY8tFm5OPzkiWiK3+s3awpSW0jWdzMYwrQJ3/klMsPDpI7PEuirqwHP
+ * i5Wyl/vk7jmfWVcBO9MVhPUo4BYl4vS9aj6JA5QbkbkB95LOgT/BowY0WmHeVsXC
+ * I9aw
+ * -----END CERTIFICATE-----
+ *
+ *
+ *
+ * Trusted CA certificate:
+ * Certificate:
+ *   Data:
+ *     Version: 3 (0x2)
+ *     Serial Number: 0 (0x0)
+ *     Signature Algorithm: md5WithRSAEncryption
+ *     Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Validity
+ *         Not Before: Dec  8 02:43:36 2008 GMT
+ *         Not After : Aug 25 02:43:36 2028 GMT
+ *     Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Subject Public Key Info:
+ *         Public Key Algorithm: rsaEncryption
+ *         RSA Public Key: (1024 bit)
+ *             Modulus (1024 bit):
+ *                 00:cb:c4:38:20:07:be:88:a7:93:b0:a1:43:51:2d:
+ *                 d7:8e:85:af:54:dd:ad:a2:7b:23:5b:cf:99:13:53:
+ *                 99:45:7d:ee:6d:ba:2d:bf:e3:ad:6e:3d:9f:1a:f9:
+ *                 03:97:e0:17:55:ae:11:26:57:de:01:29:8e:05:3f:
+ *                 21:f7:e7:36:e8:2e:37:d7:48:ac:53:d6:60:0e:c7:
+ *                 50:6d:f6:c5:85:f7:8b:a6:c5:91:35:72:3c:94:ee:
+ *                 f1:17:f0:71:e3:ec:1b:ce:ca:4e:40:42:b0:6d:ee:
+ *                 6a:0e:d6:e5:ad:3c:0f:c9:ba:82:4f:78:f8:89:97:
+ *                 89:2a:95:12:4c:d8:09:2a:e9
+ *             Exponent: 65537 (0x10001)
+ *     X509v3 extensions:
+ *         X509v3 Subject Key Identifier:
+ *             FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *         X509v3 Authority Key Identifier:
+ *             keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *             DirName:/C=US/ST=Some-State/L=Some-City/O=Some-Org
+ *             serial:00
+ *
+ *         X509v3 Basic Constraints:
+ *             CA:TRUE
+ *  Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+ * gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX
+ * 4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj
+ * 7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G
+ * A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ
+ * hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt
+ * U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw
+ * DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA
+ * ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ
+ * LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P
+ * 6Mvf0r1PNTY2hwTJLJmKtg==
+ * -----END CERTIFICATE---
+ */
+
+
+public class IPIdentities {
+    static Map cookies;
+    ServerSocket ss;
+
+    /*
+     * =============================================================
+     * Set the various variables needed for the tests, then
+     * specify what tests to run on each side.
+     */
+
+    /*
+     * Should we run the client or server in a separate thread?
+     * Both sides can throw exceptions, but do you have a preference
+     * as to which side should be the main thread.
+     */
+    static boolean separateServerThread = true;
+
+    /*
+     * Where do we find the keystores?
+     */
+    static String trusedCertStr =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+        "EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ\n" +
+        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" +
+        "gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX\n" +
+        "4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj\n" +
+        "7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G\n" +
+        "A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ\n" +
+        "hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt\n" +
+        "U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw\n" +
+        "DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA\n" +
+        "ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ\n" +
+        "LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P\n" +
+        "6Mvf0r1PNTY2hwTJLJmKtg==\n" +
+        "-----END CERTIFICATE-----";
+
+    static String serverCertStr =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIICnzCCAgigAwIBAgIBBzANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+        "EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3NTdaFw0yODA4MjUwMzI3NTdaMHIxCzAJ\n" +
+        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD\n" +
+        "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3\n" +
+        "ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6\n" +
+        "YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS\n" +
+        "7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjbjBsMAkGA1UdEwQCMAAw\n" +
+        "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV\n" +
+        "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB\n" +
+        "MA0GCSqGSIb3DQEBBAUAA4GBAFJjItCtCBZcjD69wdqfIbKmRFa6eJAjR6LcoDva\n" +
+        "cKC/sDOLelpspiZ66Zb0Xdv5qQ7QrfOXt3K8QqJKRMdZLF9WfUfy0gJDM32ub91h\n" +
+        "pu+TmcGPs+6RdrAQcuvU1ZDV9X8SMj7BtKaim4d5sqFw1npncKiA5xFn8vOYwdun\n" +
+        "nZif\n" +
+        "-----END CERTIFICATE-----";
+
+    static String clientCertStr =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIICnzCCAgigAwIBAgIBBjANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+        "EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3MzRaFw0yODA4MjUwMzI3MzRaMHIxCzAJ\n" +
+        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD\n" +
+        "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas\n" +
+        "JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV\n" +
+        "8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq\n" +
+        "ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjbjBsMAkGA1UdEwQCMAAw\n" +
+        "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV\n" +
+        "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB\n" +
+        "MA0GCSqGSIb3DQEBBAUAA4GBACjj9PS+W6XOF7toFMwMOv/AemZeBOpcEF1Ei1Hx\n" +
+        "HjvB6EOHkMY8tFm5OPzkiWiK3+s3awpSW0jWdzMYwrQJ3/klMsPDpI7PEuirqwHP\n" +
+        "i5Wyl/vk7jmfWVcBO9MVhPUo4BYl4vS9aj6JA5QbkbkB95LOgT/BowY0WmHeVsXC\n" +
+        "I9aw\n" +
+        "-----END CERTIFICATE-----";
+
+
+    static byte serverPrivateExponent[] = {
+        (byte)0x6e, (byte)0xa7, (byte)0x1b, (byte)0x83,
+        (byte)0x51, (byte)0x35, (byte)0x9a, (byte)0x44,
+        (byte)0x7d, (byte)0xf6, (byte)0xe3, (byte)0x89,
+        (byte)0xa0, (byte)0xd7, (byte)0x90, (byte)0x60,
+        (byte)0xa1, (byte)0x4e, (byte)0x27, (byte)0x21,
+        (byte)0xa2, (byte)0x89, (byte)0x74, (byte)0xcc,
+        (byte)0x9d, (byte)0x75, (byte)0x75, (byte)0x4e,
+        (byte)0xc7, (byte)0x82, (byte)0xe3, (byte)0xe3,
+        (byte)0xc3, (byte)0x7d, (byte)0x00, (byte)0x54,
+        (byte)0xec, (byte)0x36, (byte)0xb1, (byte)0xdf,
+        (byte)0x91, (byte)0x9c, (byte)0x7a, (byte)0xc0,
+        (byte)0x62, (byte)0x0a, (byte)0xd6, (byte)0xa9,
+        (byte)0x22, (byte)0x91, (byte)0x4a, (byte)0x29,
+        (byte)0x2e, (byte)0x43, (byte)0xfa, (byte)0x8c,
+        (byte)0xd8, (byte)0xe9, (byte)0xbe, (byte)0xd9,
+        (byte)0x4f, (byte)0xca, (byte)0x23, (byte)0xc6,
+        (byte)0xe4, (byte)0x3f, (byte)0xb8, (byte)0x72,
+        (byte)0xcf, (byte)0x02, (byte)0xfc, (byte)0xf4,
+        (byte)0x58, (byte)0x34, (byte)0x77, (byte)0x76,
+        (byte)0xce, (byte)0x22, (byte)0x44, (byte)0x5f,
+        (byte)0x2d, (byte)0xca, (byte)0xee, (byte)0xf5,
+        (byte)0x43, (byte)0x56, (byte)0x47, (byte)0x71,
+        (byte)0x0b, (byte)0x09, (byte)0x6b, (byte)0x5e,
+        (byte)0xf2, (byte)0xc8, (byte)0xee, (byte)0xd4,
+        (byte)0x6e, (byte)0x44, (byte)0x92, (byte)0x2a,
+        (byte)0x7f, (byte)0xcc, (byte)0xa7, (byte)0xd4,
+        (byte)0x5b, (byte)0xfb, (byte)0xf7, (byte)0x4a,
+        (byte)0xa9, (byte)0xfb, (byte)0x54, (byte)0x18,
+        (byte)0xd5, (byte)0xd5, (byte)0x14, (byte)0xba,
+        (byte)0xa0, (byte)0x1c, (byte)0x13, (byte)0xb3,
+        (byte)0x37, (byte)0x6b, (byte)0x37, (byte)0x59,
+        (byte)0xed, (byte)0xdb, (byte)0x6d, (byte)0xb1
+    };
+
+    static byte serverModulus[] = {
+        (byte)0x00,
+        (byte)0xa5, (byte)0xac, (byte)0x5b, (byte)0x1c,
+        (byte)0x37, (byte)0xa2, (byte)0xdd, (byte)0x99,
+        (byte)0x89, (byte)0x2d, (byte)0xb2, (byte)0x79,
+        (byte)0xb8, (byte)0x8f, (byte)0xd5, (byte)0x48,
+        (byte)0xa5, (byte)0xe7, (byte)0x1c, (byte)0x84,
+        (byte)0x17, (byte)0x8d, (byte)0x69, (byte)0x9c,
+        (byte)0xc6, (byte)0xac, (byte)0x6d, (byte)0xf9,
+        (byte)0xf2, (byte)0x1d, (byte)0x1f, (byte)0x39,
+        (byte)0x19, (byte)0xda, (byte)0xd3, (byte)0x72,
+        (byte)0x1e, (byte)0x6e, (byte)0xec, (byte)0x44,
+        (byte)0xcc, (byte)0x70, (byte)0xa4, (byte)0xdc,
+        (byte)0xba, (byte)0x00, (byte)0x30, (byte)0xf6,
+        (byte)0xa0, (byte)0x4f, (byte)0x3d, (byte)0x54,
+        (byte)0x7a, (byte)0x61, (byte)0x6a, (byte)0xcc,
+        (byte)0x57, (byte)0xd0, (byte)0x0a, (byte)0x7f,
+        (byte)0x95, (byte)0x28, (byte)0x18, (byte)0x3f,
+        (byte)0x9a, (byte)0xd9, (byte)0x94, (byte)0xf2,
+        (byte)0x1b, (byte)0xc8, (byte)0x24, (byte)0x88,
+        (byte)0x7e, (byte)0xfe, (byte)0x9d, (byte)0x0f,
+        (byte)0x3d, (byte)0xfb, (byte)0x57, (byte)0x53,
+        (byte)0x08, (byte)0xb3, (byte)0x20, (byte)0x33,
+        (byte)0xd4, (byte)0x3f, (byte)0x17, (byte)0x47,
+        (byte)0x14, (byte)0xd1, (byte)0xcd, (byte)0xea,
+        (byte)0x08, (byte)0xd8, (byte)0x0e, (byte)0x75,
+        (byte)0x4e, (byte)0xaf, (byte)0xbe, (byte)0xcc,
+        (byte)0xd2, (byte)0xec, (byte)0xaf, (byte)0xa9,
+        (byte)0x7a, (byte)0x49, (byte)0xdf, (byte)0xc2,
+        (byte)0xd9, (byte)0xac, (byte)0xb8, (byte)0x24,
+        (byte)0x40, (byte)0x90, (byte)0xa6, (byte)0x03,
+        (byte)0x56, (byte)0x2a, (byte)0xd0, (byte)0x30,
+        (byte)0x05, (byte)0x40, (byte)0x2c, (byte)0x4f,
+        (byte)0xab, (byte)0xd9, (byte)0x74, (byte)0x89
+    };
+
+    static byte clientPrivateExponent[] = {
+        (byte)0x11, (byte)0xb7, (byte)0x6a, (byte)0x36,
+        (byte)0x3d, (byte)0x30, (byte)0x37, (byte)0xce,
+        (byte)0x61, (byte)0x9d, (byte)0x6c, (byte)0x84,
+        (byte)0x8b, (byte)0xf3, (byte)0x9b, (byte)0x25,
+        (byte)0x4f, (byte)0x14, (byte)0xc8, (byte)0xa4,
+        (byte)0xdd, (byte)0x2f, (byte)0xd7, (byte)0x9a,
+        (byte)0x17, (byte)0xbd, (byte)0x90, (byte)0x19,
+        (byte)0xf7, (byte)0x05, (byte)0xfd, (byte)0xf2,
+        (byte)0xd2, (byte)0xc5, (byte)0xf7, (byte)0x77,
+        (byte)0xbe, (byte)0xea, (byte)0xe2, (byte)0x84,
+        (byte)0x87, (byte)0x97, (byte)0x3a, (byte)0x41,
+        (byte)0x96, (byte)0xb6, (byte)0x99, (byte)0xf8,
+        (byte)0x94, (byte)0x8c, (byte)0x58, (byte)0x71,
+        (byte)0x51, (byte)0x8c, (byte)0xf4, (byte)0x2a,
+        (byte)0x20, (byte)0x9e, (byte)0x1a, (byte)0xa0,
+        (byte)0x26, (byte)0x99, (byte)0x75, (byte)0xd6,
+        (byte)0x31, (byte)0x53, (byte)0x43, (byte)0x39,
+        (byte)0xf5, (byte)0x2a, (byte)0xa6, (byte)0x7e,
+        (byte)0x34, (byte)0x42, (byte)0x51, (byte)0x2a,
+        (byte)0x40, (byte)0x87, (byte)0x03, (byte)0x88,
+        (byte)0x43, (byte)0x69, (byte)0xb2, (byte)0x89,
+        (byte)0x6d, (byte)0x20, (byte)0xbd, (byte)0x7d,
+        (byte)0x71, (byte)0xef, (byte)0x47, (byte)0x0a,
+        (byte)0xdf, (byte)0x06, (byte)0xc1, (byte)0x69,
+        (byte)0x66, (byte)0xa8, (byte)0x22, (byte)0x37,
+        (byte)0x1a, (byte)0x77, (byte)0x1e, (byte)0xc7,
+        (byte)0x94, (byte)0x4e, (byte)0x2c, (byte)0x27,
+        (byte)0x69, (byte)0x45, (byte)0x5e, (byte)0xc8,
+        (byte)0xf8, (byte)0x0c, (byte)0xb7, (byte)0xf8,
+        (byte)0xc0, (byte)0x8f, (byte)0x99, (byte)0xc1,
+        (byte)0xe5, (byte)0x28, (byte)0x9b, (byte)0xf9,
+        (byte)0x4c, (byte)0x94, (byte)0xc6, (byte)0xb1
+    };
+
+    static byte clientModulus[] = {
+        (byte)0x00,
+        (byte)0xbb, (byte)0xf0, (byte)0x40, (byte)0x36,
+        (byte)0xac, (byte)0x26, (byte)0x54, (byte)0x4e,
+        (byte)0xf4, (byte)0xa3, (byte)0x5a, (byte)0x00,
+        (byte)0x2f, (byte)0x69, (byte)0x21, (byte)0x6f,
+        (byte)0xb9, (byte)0x7a, (byte)0x3a, (byte)0x93,
+        (byte)0xec, (byte)0xa2, (byte)0xf6, (byte)0xe1,
+        (byte)0x8e, (byte)0xc7, (byte)0x63, (byte)0xd8,
+        (byte)0x2f, (byte)0x12, (byte)0x30, (byte)0x99,
+        (byte)0x2e, (byte)0xb0, (byte)0xf2, (byte)0x8f,
+        (byte)0xf8, (byte)0x27, (byte)0x2d, (byte)0x24,
+        (byte)0x78, (byte)0x28, (byte)0x84, (byte)0xf7,
+        (byte)0x01, (byte)0xbf, (byte)0x8d, (byte)0x44,
+        (byte)0x79, (byte)0xdd, (byte)0x3b, (byte)0xd2,
+        (byte)0x55, (byte)0xf3, (byte)0xce, (byte)0x3c,
+        (byte)0xb2, (byte)0x5b, (byte)0x21, (byte)0x7d,
+        (byte)0xef, (byte)0xfd, (byte)0x33, (byte)0x4a,
+        (byte)0xb1, (byte)0xa3, (byte)0xff, (byte)0xc6,
+        (byte)0xc8, (byte)0x9b, (byte)0xb9, (byte)0x0f,
+        (byte)0x7c, (byte)0x41, (byte)0x35, (byte)0x97,
+        (byte)0xf9, (byte)0xdb, (byte)0x3a, (byte)0x05,
+        (byte)0x60, (byte)0x05, (byte)0x15, (byte)0xaf,
+        (byte)0x59, (byte)0x17, (byte)0x92, (byte)0xa3,
+        (byte)0x10, (byte)0xad, (byte)0x16, (byte)0x1c,
+        (byte)0xe4, (byte)0x07, (byte)0x53, (byte)0xaf,
+        (byte)0xa8, (byte)0x76, (byte)0xa2, (byte)0x56,
+        (byte)0x2a, (byte)0x92, (byte)0xd3, (byte)0xf9,
+        (byte)0x28, (byte)0xe0, (byte)0x78, (byte)0xcf,
+        (byte)0x5e, (byte)0x1f, (byte)0x48, (byte)0xab,
+        (byte)0x5c, (byte)0x19, (byte)0xdd, (byte)0xe1,
+        (byte)0x67, (byte)0x43, (byte)0xba, (byte)0x75,
+        (byte)0x8d, (byte)0xf5, (byte)0x82, (byte)0xac,
+        (byte)0x43, (byte)0x92, (byte)0x44, (byte)0x1b
+    };
+
+    static char passphrase[] = "passphrase".toCharArray();
+
+    /*
+     * Is the server ready to serve?
+     */
+    volatile static boolean serverReady = false;
+
+    /*
+     * Turn on SSL debugging?
+     */
+    static boolean debug = false;
+
+    private SSLServerSocket sslServerSocket = null;
+
+    /*
+     * Define the server side of the test.
+     *
+     * If the server prematurely exits, serverReady will be set to true
+     * to avoid infinite hangs.
+     */
+    void doServerSide() throws Exception {
+        SSLContext context = getSSLContext(trusedCertStr, serverCertStr,
+            serverModulus, serverPrivateExponent, passphrase);
+        SSLServerSocketFactory sslssf = context.getServerSocketFactory();
+
+        sslServerSocket =
+            (SSLServerSocket) sslssf.createServerSocket(serverPort);
+        serverPort = sslServerSocket.getLocalPort();
+
+        /*
+         * Signal Client, we're ready for his connect.
+         */
+        serverReady = true;
+
+        SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
+        sslSocket.setNeedClientAuth(true);
+        if (sslSocket instanceof SSLSocketImpl) {
+            ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
+        }
+
+        PrintStream out =
+                new PrintStream(sslSocket.getOutputStream());
+
+        try {
+            // ignore request data
+
+            // send the response
+            out.print("HTTP/1.1 200 OK\r\n");
+            out.print("Content-Type: text/html; charset=iso-8859-1\r\n");
+            out.print("Content-Length: "+ 9 +"\r\n");
+            out.print("\r\n");
+            out.print("Testing\r\n");
+            out.flush();
+        } finally {
+             // close the socket
+             Thread.sleep(2000);
+             System.out.println("Server closing socket");
+             sslSocket.close();
+             serverReady = false;
+        }
+
+    }
+
+    /*
+     * Define the client side of the test.
+     *
+     * If the server prematurely exits, serverReady will be set to true
+     * to avoid infinite hangs.
+     */
+    void doClientSide() throws Exception {
+        SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
+            clientModulus, clientPrivateExponent, passphrase);
+
+        SSLContext.setDefault(context);
+
+        /*
+         * Wait for server to get started.
+         */
+        while (!serverReady) {
+            Thread.sleep(50);
+        }
+
+        HttpsURLConnection http = null;
+
+        /* establish http connection to server */
+        URL url = new URL("https://localhost:" + serverPort+"/");
+        System.out.println("url is "+url.toString());
+
+        http = (HttpsURLConnection)url.openConnection();
+
+        int respCode = http.getResponseCode();
+        System.out.println("respCode = "+respCode);
+
+        http.disconnect();
+    }
+
+    /*
+     * =============================================================
+     * The remainder is just support stuff
+     */
+
+    // use any free port by default
+    volatile int serverPort = 0;
+
+    volatile Exception serverException = null;
+    volatile Exception clientException = null;
+
+    public static void main(String args[]) throws Exception {
+        if (debug)
+            System.setProperty("javax.net.debug", "all");
+
+        /*
+         * Start the tests.
+         */
+        new IPIdentities();
+    }
+
+    Thread clientThread = null;
+    Thread serverThread = null;
+    /*
+     * Primary constructor, used to drive remainder of the test.
+     *
+     * Fork off the other side, then do your work.
+     */
+    IPIdentities() throws Exception {
+        if (separateServerThread) {
+            startServer(true);
+            startClient(false);
+        } else {
+            startClient(true);
+            startServer(false);
+        }
+
+        /*
+         * Wait for other side to close down.
+         */
+        if (separateServerThread) {
+            serverThread.join();
+        } else {
+            clientThread.join();
+        }
+
+        /*
+         * When we get here, the test is pretty much over.
+         *
+         * If the main thread excepted, that propagates back
+         * immediately.  If the other thread threw an exception, we
+         * should report back.
+         */
+        if (serverException != null)
+            throw serverException;
+        if (clientException != null)
+            throw clientException;
+    }
+
+    void startServer(boolean newThread) throws Exception {
+        if (newThread) {
+            serverThread = new Thread() {
+                public void run() {
+                    try {
+                        doServerSide();
+                    } catch (Exception e) {
+                        /*
+                         * Our server thread just died.
+                         *
+                         * Release the client, if not active already...
+                         */
+                        System.err.println("Server died...");
+                        serverReady = true;
+                        serverException = e;
+                    }
+                }
+            };
+            serverThread.start();
+        } else {
+            doServerSide();
+        }
+    }
+
+    void startClient(boolean newThread) throws Exception {
+        if (newThread) {
+            clientThread = new Thread() {
+                public void run() {
+                    try {
+                        doClientSide();
+                    } catch (Exception e) {
+                        /*
+                         * Our client thread just died.
+                         */
+                        System.err.println("Client died...");
+                        clientException = e;
+                    }
+                }
+            };
+            clientThread.start();
+        } else {
+            doClientSide();
+        }
+    }
+
+    // get the ssl context
+    private static SSLContext getSSLContext(String trusedCertStr,
+            String keyCertStr, byte[] modulus,
+            byte[] privateExponent, char[] passphrase) throws Exception {
+
+        // generate certificate from cert string
+        CertificateFactory cf = CertificateFactory.getInstance("X.509");
+
+        ByteArrayInputStream is =
+                    new ByteArrayInputStream(trusedCertStr.getBytes());
+        Certificate trusedCert = cf.generateCertificate(is);
+        is.close();
+
+        // create a key store
+        KeyStore ks = KeyStore.getInstance("JKS");
+        ks.load(null, null);
+
+        // import the trused cert
+        ks.setCertificateEntry("RSA Export Signer", trusedCert);
+
+        if (keyCertStr != null) {
+            // generate the private key.
+            RSAPrivateKeySpec priKeySpec = new RSAPrivateKeySpec(
+                                            new BigInteger(modulus),
+                                            new BigInteger(privateExponent));
+            KeyFactory kf = KeyFactory.getInstance("RSA");
+            RSAPrivateKey priKey =
+                    (RSAPrivateKey)kf.generatePrivate(priKeySpec);
+
+            // generate certificate chain
+            is = new ByteArrayInputStream(keyCertStr.getBytes());
+            Certificate keyCert = cf.generateCertificate(is);
+            is.close();
+
+            Certificate[] chain = new Certificate[2];
+            chain[0] = keyCert;
+            chain[1] = trusedCert;
+
+            // import the key entry.
+            ks.setKeyEntry("Whatever", priKey, passphrase, chain);
+        }
+
+        // create SSL context
+        TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
+        tmf.init(ks);
+
+        SSLContext ctx = SSLContext.getInstance("TLS");
+
+        if (keyCertStr != null) {
+            KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
+            kmf.init(ks, passphrase);
+
+            ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+        } else {
+            ctx.init(null, tmf.getTrustManagers(), null);
+        }
+
+        return ctx;
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,879 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* @test
+ * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
+ * @bug 6766775
+ * @author Xuelei Fan
+ */
+
+import java.net.*;
+import java.util.*;
+import java.io.*;
+import javax.net.ssl.*;
+import java.security.KeyStore;
+import java.security.KeyFactory;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
+import java.security.spec.*;
+import java.security.interfaces.*;
+import java.math.BigInteger;
+
+import sun.security.ssl.SSLSocketImpl;
+
+/*
+ * Certificates and key used in the test.
+ *
+ * TLS server certificate:
+ * server private key:
+ * -----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,D9AE407F6D0E389A
+ *
+ * WPrA7TFol/cQCcp9oHnXWNpYlvRbbIcQj0m+RKT2Iuzfus+DHt3Zadf8nJpKfX2e
+ * h2rnhlzCN9M7djRDooZKDOPCsdBn51Au7HlZF3S3Opgo7D8XFM1a8t1Je4ke14oI
+ * nw6QKYsBblRziPnP2PZ0zvX24nOv7bbY8beynlJHGs00VWSFdoH2DS0aE1p6D+3n
+ * ptJuJ75dVfZFK4X7162APlNXevX8D6PEQpSiRw1rjjGGcnvQ4HdWk3BxDVDcCNJb
+ * Y1aGNRxsjTDvPi3R9Qx2M+W03QzEPx4SR3ZHVskeSJHaetM0TM/w/45Paq4GokXP
+ * ZeTnbEx1xmjkA7h+t4doLL4watx5F6yLsJzu8xB3lt/1EtmkYtLz1t7X4BetPAXz
+ * zS69X/VwhKfsOI3qXBWuL2oHPyhDmT1gcaUQwEPSV6ogHEEQEDXdiUS8heNK13KF
+ * TCQYFkETvV2BLxUhV1hypPzRQ6tUpJiAbD5KmoK2lD9slshG2QtvKQq0/bgkDY5J
+ * LhDHV2dtcZ3kDPkkZXpbcJQvoeH3d09C5sIsuTFo2zgNR6oETHUc5TzP6FY2YYRa
+ * QcK5HcmtsRRiXFm01ac+aMejJUIujjFt84SiKWT/73vC8AmY4tYcJBLjCg4XIxSH
+ * fdDFLL1YZENNO5ivlp8mdiHqcawx+36L7DrEZQ8RZt6cqST5t/+XTdM74s6k81GT
+ * pNsa82P2K2zmIUZ/DL2mKjW1vfRByw1NQFEBkN3vdyZxYfM/JyUzX4hbjXBEkh9Q
+ * QYrcwLKLjis2QzSvK04B3bvRzRb+4ocWiso8ZPAXAIxZFBWDpTMM2A==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICXAIBAAKBgQClrFscN6LdmYktsnm4j9VIpecchBeNaZzGrG358h0fORna03Ie
+ * buxEzHCk3LoAMPagTz1UemFqzFfQCn+VKBg/mtmU8hvIJIh+/p0PPftXUwizIDPU
+ * PxdHFNHN6gjYDnVOr77M0uyvqXpJ38LZrLgkQJCmA1Yq0DAFQCxPq9l0iQIDAQAB
+ * AoGAbqcbg1E1mkR99uOJoNeQYKFOJyGiiXTMnXV1TseC4+PDfQBU7Dax35GcesBi
+ * CtapIpFKKS5D+ozY6b7ZT8ojxuQ/uHLPAvz0WDR3ds4iRF8tyu71Q1ZHcQsJa17y
+ * yO7UbkSSKn/Mp9Rb+/dKqftUGNXVFLqgHBOzN2s3We3bbbECQQDYBPKOg3hkaGHo
+ * OhpHKqtQ6EVkldihG/3i4WejRonelXN+HRh1KrB2HBx0M8D/qAzP1i3rNSlSHer4
+ * 59YRTJnHAkEAxFX/sVYSn07BHv9Zhn6XXct/Cj43z/tKNbzlNbcxqQwQerw3IH51
+ * 8UH2YOA+GD3lXbKp+MytoFLWv8zg4YT/LwJAfqan75Z1R6lLffRS49bIiq8jwE16
+ * rTrUJ+kv8jKxMqc9B3vXkxpsS1M/+4E8bqgAmvpgAb8xcsvHsBd9ErdukQJBAKs2
+ * j67W75BrPjBI34pQ1LEfp56IGWXOrq1kF8IbCjxv3+MYRT6Z6UJFkpRymNPNDjsC
+ * dgUYgITiGJHUGXuw3lMCQHEHqo9ZtXz92yFT+VhsNc29B8m/sqUJdtCcMd/jGpAF
+ * u6GHufjqIZBpQsk63wbwESAPZZ+kk1O1kS5GIRLX608=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ *     00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ *     d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ *     1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ *     ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ *     7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ *     9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ *     d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ *     7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ *     30:05:40:2c:4f:ab:d9:74:89
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ *     6e:a7:1b:83:51:35:9a:44:7d:f6:e3:89:a0:d7:90:
+ *     60:a1:4e:27:21:a2:89:74:cc:9d:75:75:4e:c7:82:
+ *     e3:e3:c3:7d:00:54:ec:36:b1:df:91:9c:7a:c0:62:
+ *     0a:d6:a9:22:91:4a:29:2e:43:fa:8c:d8:e9:be:d9:
+ *     4f:ca:23:c6:e4:3f:b8:72:cf:02:fc:f4:58:34:77:
+ *     76:ce:22:44:5f:2d:ca:ee:f5:43:56:47:71:0b:09:
+ *     6b:5e:f2:c8:ee:d4:6e:44:92:2a:7f:cc:a7:d4:5b:
+ *     fb:f7:4a:a9:fb:54:18:d5:d5:14:ba:a0:1c:13:b3:
+ *     37:6b:37:59:ed:db:6d:b1
+ * prime1:
+ *     00:d8:04:f2:8e:83:78:64:68:61:e8:3a:1a:47:2a:
+ *     ab:50:e8:45:64:95:d8:a1:1b:fd:e2:e1:67:a3:46:
+ *     89:de:95:73:7e:1d:18:75:2a:b0:76:1c:1c:74:33:
+ *     c0:ff:a8:0c:cf:d6:2d:eb:35:29:52:1d:ea:f8:e7:
+ *     d6:11:4c:99:c7
+ * prime2:
+ *     00:c4:55:ff:b1:56:12:9f:4e:c1:1e:ff:59:86:7e:
+ *     97:5d:cb:7f:0a:3e:37:cf:fb:4a:35:bc:e5:35:b7:
+ *     31:a9:0c:10:7a:bc:37:20:7e:75:f1:41:f6:60:e0:
+ *     3e:18:3d:e5:5d:b2:a9:f8:cc:ad:a0:52:d6:bf:cc:
+ *     e0:e1:84:ff:2f
+ * exponent1:
+ *     7e:a6:a7:ef:96:75:47:a9:4b:7d:f4:52:e3:d6:c8:
+ *     8a:af:23:c0:4d:7a:ad:3a:d4:27:e9:2f:f2:32:b1:
+ *     32:a7:3d:07:7b:d7:93:1a:6c:4b:53:3f:fb:81:3c:
+ *     6e:a8:00:9a:fa:60:01:bf:31:72:cb:c7:b0:17:7d:
+ *     12:b7:6e:91
+ * exponent2:
+ *     00:ab:36:8f:ae:d6:ef:90:6b:3e:30:48:df:8a:50:
+ *     d4:b1:1f:a7:9e:88:19:65:ce:ae:ad:64:17:c2:1b:
+ *     0a:3c:6f:df:e3:18:45:3e:99:e9:42:45:92:94:72:
+ *     98:d3:cd:0e:3b:02:76:05:18:80:84:e2:18:91:d4:
+ *     19:7b:b0:de:53
+ * coefficient:
+ *     71:07:aa:8f:59:b5:7c:fd:db:21:53:f9:58:6c:35:
+ *     cd:bd:07:c9:bf:b2:a5:09:76:d0:9c:31:df:e3:1a:
+ *     90:05:bb:a1:87:b9:f8:ea:21:90:69:42:c9:3a:df:
+ *     06:f0:11:20:0f:65:9f:a4:93:53:b5:91:2e:46:21:
+ *     12:d7:eb:4f
+ *
+ *
+ * server certificate:
+ * Data:
+ *     Version: 3 (0x2)
+ *     Serial Number: 4 (0x4)
+ *     Signature Algorithm: md5WithRSAEncryption
+ *     Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Validity
+ *         Not Before: Dec  8 03:21:16 2008 GMT
+ *         Not After : Aug 25 03:21:16 2028 GMT
+ *     Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Server, CN=localhost
+ *     Subject Public Key Info:
+ *         Public Key Algorithm: rsaEncryption
+ *         RSA Public Key: (1024 bit)
+ *             Modulus (1024 bit):
+ *                 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ *                 d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ *                 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ *                 ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ *                 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ *                 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ *                 d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ *                 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ *                 30:05:40:2c:4f:ab:d9:74:89
+ *             Exponent: 65537 (0x10001)
+ *     X509v3 extensions:
+ *         X509v3 Basic Constraints:
+ *             CA:FALSE
+ *         X509v3 Key Usage:
+ *             Digital Signature, Non Repudiation, Key Encipherment
+ *         X509v3 Subject Key Identifier:
+ *             ED:6E:DB:F4:B5:56:C8:FB:1A:06:61:3F:0F:08:BB:A6:04:D8:16:54
+ *         X509v3 Authority Key Identifier:
+ *             keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ *         X509v3 Subject Alternative Name: critical
+ *             IP Address:127.0.0.1, DNS:localhost
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICqjCCAhOgAwIBAgIBBDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzIxMTZaFw0yODA4MjUwMzIxMTZaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3
+ * ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6
+ * YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS
+ * 7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjeTB3MAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAdBgNVHREBAf8EEzARhwR/AAAB
+ * gglsb2NhbGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAWTrftGaL73lKLgRTrChGR+F6
+ * //qvs0OM94IOKVeHz36NO49cMJmhJSbKdiGIkppBgpLIBoWxZlN9NOO9oSXFYZsZ
+ * rHaAe9/lWMtQM7XpjqjhWVhB5VPvWFbkorQFMtRYLf7pkonGPFq8GOO1s0TKhogC
+ * jtYCdzlrU4v+om/J3H8=
+ * -----END CERTIFICATE-----
+ *
+ *
+ * TLS client certificate:
+ * client private key:
+ * ----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,FA2A435CD35A9390
+ *
+ * Z+Y2uaETbsUWIyJUyVu1UV2G4rgFYJyACZT6Tp1KjRtxflSh2kXkJ9MpuXMXA0V4
+ * Yy3fDzPqCL9NJmQAYRlAx/W/+j4F5EyMWDIx8fUxzONRZyoiwF7jLm+KscAfv6Pf
+ * q7ItWOdj3z7IYrwlB8YIGd3F2cDKT3S+lYRk7rKb/qT7itbuHnY4Ardh3yl+MZak
+ * jBp+ELUlRsUqSr1V0LoM+0rCCykarpyfhpxEcqsrl0v9Cyi5uhU50/oKv5zql3SH
+ * l2ImgDjp3batAs8+Bd4NF2aqi0a7Hy44JUHxRm4caZryU/i/D9N1MbuM6882HLat
+ * 5N0G+NaIUfywa8mjwq2D5aiit18HqKA6XeRRYeJ5Dvu9DCO4GeFSwcUFIBMI0L46
+ * 7s114+oDodg57pMgITi+04vmUxvqlN9aiyd7f5Fgd7PeHGeOdbMz1NaJLJaPI9++
+ * NakK8eK9iwT/Gdq0Uap5/CHW7vCT5PO+h3HY0STH0lWStXhdWnFO04zTdywsbSp+
+ * DLpHeFT66shfeUlxR0PsCbG9vPRt/QmGLeYQZITppWo/ylSq4j+pRIuXvuWHdBRN
+ * rTZ8QF4Y7AxQUXVz1j1++s6ZMHTzaK2i9HrhmDs1MbJl+QwWre3Xpv3LvTVz3k5U
+ * wX8kuY1m3STt71QCaRWENq5sRaMImLxZbxc/ivFl9RAzUqo4NCxLod/QgA4iLqtO
+ * ztnlpzwlC/F8HbQ1oqYWwnZAPhzU/cULtstl+Yrws2c2atO323LbPXZqbASySgig
+ * sNpFXQMObdfP6LN23bY+1SvtK7V4NUTNhpdIc6INQAQ=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICWwIBAAKBgQC78EA2rCZUTvSjWgAvaSFvuXo6k+yi9uGOx2PYLxIwmS6w8o/4
+ * Jy0keCiE9wG/jUR53TvSVfPOPLJbIX3v/TNKsaP/xsibuQ98QTWX+ds6BWAFFa9Z
+ * F5KjEK0WHOQHU6+odqJWKpLT+SjgeM9eH0irXBnd4WdDunWN9YKsQ5JEGwIDAQAB
+ * AoGAEbdqNj0wN85hnWyEi/ObJU8UyKTdL9eaF72QGfcF/fLSxfd3vurihIeXOkGW
+ * tpn4lIxYcVGM9CognhqgJpl11jFTQzn1KqZ+NEJRKkCHA4hDabKJbSC9fXHvRwrf
+ * BsFpZqgiNxp3HseUTiwnaUVeyPgMt/jAj5nB5Sib+UyUxrECQQDnNQBiF2aifEg6
+ * zbJOOC7he5CHAdkFxSxWVFVHL6EfXfqdLVkUohMbgZv+XxyIeU2biOExSg49Kds3
+ * FOKgTau1AkEA0Bd1haj6QuCo8I0AXm2WO+MMTZMTvtHD/bGjKNM+fT4I8rKYnQRX
+ * 1acHdqS9Xx2rNJqZgkMmpESIdPR2fc4yjwJALFeM6EMmqvj8/VIf5UJ/Mz14fXwM
+ * PEARfckUxd9LnnFutCBTWlKvKXJVEZb6KO5ixPaegc57Jp3Vbh3yTN44lQJADD/1
+ * SSMDaIB1MYP7a5Oj7m6VQNPRq8AJe5vDcRnOae0G9dKRrVyeFxO4GsHj6/+BHp2j
+ * P8nYMn9eURQ7DXjf/QJAAQzMlWnKGSO8pyTDtnQx3hRMoUkOEhmNq4bQhLkYqtnY
+ * FcqpUQ2qMjW+NiNWk5HnTrMS3L9EdJobMUzaNZLy4w==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ *     00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ *     21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ *     12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ *     01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ *     7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ *     35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ *     ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ *     28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ *     75:8d:f5:82:ac:43:92:44:1b
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ *     11:b7:6a:36:3d:30:37:ce:61:9d:6c:84:8b:f3:9b:
+ *     25:4f:14:c8:a4:dd:2f:d7:9a:17:bd:90:19:f7:05:
+ *     fd:f2:d2:c5:f7:77:be:ea:e2:84:87:97:3a:41:96:
+ *     b6:99:f8:94:8c:58:71:51:8c:f4:2a:20:9e:1a:a0:
+ *     26:99:75:d6:31:53:43:39:f5:2a:a6:7e:34:42:51:
+ *     2a:40:87:03:88:43:69:b2:89:6d:20:bd:7d:71:ef:
+ *     47:0a:df:06:c1:69:66:a8:22:37:1a:77:1e:c7:94:
+ *     4e:2c:27:69:45:5e:c8:f8:0c:b7:f8:c0:8f:99:c1:
+ *     e5:28:9b:f9:4c:94:c6:b1
+ * prime1:
+ *     00:e7:35:00:62:17:66:a2:7c:48:3a:cd:b2:4e:38:
+ *     2e:e1:7b:90:87:01:d9:05:c5:2c:56:54:55:47:2f:
+ *     a1:1f:5d:fa:9d:2d:59:14:a2:13:1b:81:9b:fe:5f:
+ *     1c:88:79:4d:9b:88:e1:31:4a:0e:3d:29:db:37:14:
+ *     e2:a0:4d:ab:b5
+ * prime2:
+ *     00:d0:17:75:85:a8:fa:42:e0:a8:f0:8d:00:5e:6d:
+ *     96:3b:e3:0c:4d:93:13:be:d1:c3:fd:b1:a3:28:d3:
+ *     3e:7d:3e:08:f2:b2:98:9d:04:57:d5:a7:07:76:a4:
+ *     bd:5f:1d:ab:34:9a:99:82:43:26:a4:44:88:74:f4:
+ *     76:7d:ce:32:8f
+ * exponent1:
+ *     2c:57:8c:e8:43:26:aa:f8:fc:fd:52:1f:e5:42:7f:
+ *     33:3d:78:7d:7c:0c:3c:40:11:7d:c9:14:c5:df:4b:
+ *     9e:71:6e:b4:20:53:5a:52:af:29:72:55:11:96:fa:
+ *     28:ee:62:c4:f6:9e:81:ce:7b:26:9d:d5:6e:1d:f2:
+ *     4c:de:38:95
+ * exponent2:
+ *     0c:3f:f5:49:23:03:68:80:75:31:83:fb:6b:93:a3:
+ *     ee:6e:95:40:d3:d1:ab:c0:09:7b:9b:c3:71:19:ce:
+ *     69:ed:06:f5:d2:91:ad:5c:9e:17:13:b8:1a:c1:e3:
+ *     eb:ff:81:1e:9d:a3:3f:c9:d8:32:7f:5e:51:14:3b:
+ *     0d:78:df:fd
+ * coefficient:
+ *     01:0c:cc:95:69:ca:19:23:bc:a7:24:c3:b6:74:31:
+ *     de:14:4c:a1:49:0e:12:19:8d:ab:86:d0:84:b9:18:
+ *     aa:d9:d8:15:ca:a9:51:0d:aa:32:35:be:36:23:56:
+ *     93:91:e7:4e:b3:12:dc:bf:44:74:9a:1b:31:4c:da:
+ *     35:92:f2:e3
+ *
+ * client certificate:
+ * Data:
+ *     Version: 3 (0x2)
+ *     Serial Number: 5 (0x5)
+ *     Signature Algorithm: md5WithRSAEncryption
+ *     Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Validity
+ *         Not Before: Dec  8 03:22:10 2008 GMT
+ *         Not After : Aug 25 03:22:10 2028 GMT
+ *     Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Client, CN=localhost
+ *     Subject Public Key Info:
+ *         Public Key Algorithm: rsaEncryption
+ *         RSA Public Key: (1024 bit)
+ *             Modulus (1024 bit):
+ *                 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ *                 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ *                 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ *                 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ *                 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ *                 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ *                 ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ *                 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ *                 75:8d:f5:82:ac:43:92:44:1b
+ *             Exponent: 65537 (0x10001)
+ *     X509v3 extensions:
+ *         X509v3 Basic Constraints:
+ *             CA:FALSE
+ *         X509v3 Key Usage:
+ *             Digital Signature, Non Repudiation, Key Encipherment
+ *         X509v3 Subject Key Identifier:
+ *             CD:BB:C8:85:AA:91:BD:FD:1D:BE:CD:67:7C:FF:B3:E9:4C:A8:22:E6
+ *         X509v3 Authority Key Identifier:
+ *             keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ *         X509v3 Subject Alternative Name: critical
+ *             IP Address:127.0.0.1, DNS:localhost
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICqjCCAhOgAwIBAgIBBTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzIyMTBaFw0yODA4MjUwMzIyMTBaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas
+ * JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV
+ * 8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq
+ * ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjeTB3MAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAdBgNVHREBAf8EEzARhwR/AAAB
+ * gglsb2NhbGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAwDc4f13abs9ZeEkrl5WV2Z74
+ * BlmBhXu8ExtAvoF9q6Ug6xV1MDpxbD124KfUHHL0kNMhMB1WIpC0kOnQBxziNpfS
+ * 7u6GOc3tWLSxw/sHoJGCefnRBllLZOoQuSBrWB8qgilL6HRmZ4UqDcXu4UCaLBZ0
+ * KGDT5ASEN6Lq2GtiP4Y=
+ * -----END CERTIFICATE-----
+ *
+ *
+ *
+ * Trusted CA certificate:
+ * Certificate:
+ *   Data:
+ *     Version: 3 (0x2)
+ *     Serial Number: 0 (0x0)
+ *     Signature Algorithm: md5WithRSAEncryption
+ *     Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Validity
+ *         Not Before: Dec  8 02:43:36 2008 GMT
+ *         Not After : Aug 25 02:43:36 2028 GMT
+ *     Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ *     Subject Public Key Info:
+ *         Public Key Algorithm: rsaEncryption
+ *         RSA Public Key: (1024 bit)
+ *             Modulus (1024 bit):
+ *                 00:cb:c4:38:20:07:be:88:a7:93:b0:a1:43:51:2d:
+ *                 d7:8e:85:af:54:dd:ad:a2:7b:23:5b:cf:99:13:53:
+ *                 99:45:7d:ee:6d:ba:2d:bf:e3:ad:6e:3d:9f:1a:f9:
+ *                 03:97:e0:17:55:ae:11:26:57:de:01:29:8e:05:3f:
+ *                 21:f7:e7:36:e8:2e:37:d7:48:ac:53:d6:60:0e:c7:
+ *                 50:6d:f6:c5:85:f7:8b:a6:c5:91:35:72:3c:94:ee:
+ *                 f1:17:f0:71:e3:ec:1b:ce:ca:4e:40:42:b0:6d:ee:
+ *                 6a:0e:d6:e5:ad:3c:0f:c9:ba:82:4f:78:f8:89:97:
+ *                 89:2a:95:12:4c:d8:09:2a:e9
+ *             Exponent: 65537 (0x10001)
+ *     X509v3 extensions:
+ *         X509v3 Subject Key Identifier:
+ *             FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *         X509v3 Authority Key Identifier:
+ *             keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *             DirName:/C=US/ST=Some-State/L=Some-City/O=Some-Org
+ *             serial:00
+ *
+ *         X509v3 Basic Constraints:
+ *             CA:TRUE
+ *  Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+ * gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX
+ * 4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj
+ * 7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G
+ * A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ
+ * hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt
+ * U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw
+ * DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA
+ * ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ
+ * LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P
+ * 6Mvf0r1PNTY2hwTJLJmKtg==
+ * -----END CERTIFICATE---
+ */
+
+
+public class Identities {
+    static Map cookies;
+    ServerSocket ss;
+
+    /*
+     * =============================================================
+     * Set the various variables needed for the tests, then
+     * specify what tests to run on each side.
+     */
+
+    /*
+     * Should we run the client or server in a separate thread?
+     * Both sides can throw exceptions, but do you have a preference
+     * as to which side should be the main thread.
+     */
+    static boolean separateServerThread = true;
+
+    /*
+     * Where do we find the keystores?
+     */
+    static String trusedCertStr =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+        "EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ\n" +
+        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" +
+        "gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX\n" +
+        "4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj\n" +
+        "7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G\n" +
+        "A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ\n" +
+        "hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt\n" +
+        "U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw\n" +
+        "DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA\n" +
+        "ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ\n" +
+        "LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P\n" +
+        "6Mvf0r1PNTY2hwTJLJmKtg==\n" +
+        "-----END CERTIFICATE-----";
+
+    static String serverCertStr =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIICqjCCAhOgAwIBAgIBBDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+        "EwhTb21lLU9yZzAeFw0wODEyMDgwMzIxMTZaFw0yODA4MjUwMzIxMTZaMHIxCzAJ\n" +
+        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD\n" +
+        "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3\n" +
+        "ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6\n" +
+        "YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS\n" +
+        "7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjeTB3MAkGA1UdEwQCMAAw\n" +
+        "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV\n" +
+        "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAdBgNVHREBAf8EEzARhwR/AAAB\n" +
+        "gglsb2NhbGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAWTrftGaL73lKLgRTrChGR+F6\n" +
+        "//qvs0OM94IOKVeHz36NO49cMJmhJSbKdiGIkppBgpLIBoWxZlN9NOO9oSXFYZsZ\n" +
+        "rHaAe9/lWMtQM7XpjqjhWVhB5VPvWFbkorQFMtRYLf7pkonGPFq8GOO1s0TKhogC\n" +
+        "jtYCdzlrU4v+om/J3H8=\n" +
+        "-----END CERTIFICATE-----";
+
+    static String clientCertStr =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIICqjCCAhOgAwIBAgIBBTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+        "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+        "EwhTb21lLU9yZzAeFw0wODEyMDgwMzIyMTBaFw0yODA4MjUwMzIyMTBaMHIxCzAJ\n" +
+        "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+        "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD\n" +
+        "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas\n" +
+        "JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV\n" +
+        "8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq\n" +
+        "ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjeTB3MAkGA1UdEwQCMAAw\n" +
+        "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV\n" +
+        "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAdBgNVHREBAf8EEzARhwR/AAAB\n" +
+        "gglsb2NhbGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAwDc4f13abs9ZeEkrl5WV2Z74\n" +
+        "BlmBhXu8ExtAvoF9q6Ug6xV1MDpxbD124KfUHHL0kNMhMB1WIpC0kOnQBxziNpfS\n" +
+        "7u6GOc3tWLSxw/sHoJGCefnRBllLZOoQuSBrWB8qgilL6HRmZ4UqDcXu4UCaLBZ0\n" +
+        "KGDT5ASEN6Lq2GtiP4Y=\n" +
+        "-----END CERTIFICATE-----";
+
+    static byte serverPrivateExponent[] = {
+        (byte)0x6e, (byte)0xa7, (byte)0x1b, (byte)0x83,
+        (byte)0x51, (byte)0x35, (byte)0x9a, (byte)0x44,
+        (byte)0x7d, (byte)0xf6, (byte)0xe3, (byte)0x89,
+        (byte)0xa0, (byte)0xd7, (byte)0x90, (byte)0x60,
+        (byte)0xa1, (byte)0x4e, (byte)0x27, (byte)0x21,
+        (byte)0xa2, (byte)0x89, (byte)0x74, (byte)0xcc,
+        (byte)0x9d, (byte)0x75, (byte)0x75, (byte)0x4e,
+        (byte)0xc7, (byte)0x82, (byte)0xe3, (byte)0xe3,
+        (byte)0xc3, (byte)0x7d, (byte)0x00, (byte)0x54,
+        (byte)0xec, (byte)0x36, (byte)0xb1, (byte)0xdf,
+        (byte)0x91, (byte)0x9c, (byte)0x7a, (byte)0xc0,
+        (byte)0x62, (byte)0x0a, (byte)0xd6, (byte)0xa9,
+        (byte)0x22, (byte)0x91, (byte)0x4a, (byte)0x29,
+        (byte)0x2e, (byte)0x43, (byte)0xfa, (byte)0x8c,
+        (byte)0xd8, (byte)0xe9, (byte)0xbe, (byte)0xd9,
+        (byte)0x4f, (byte)0xca, (byte)0x23, (byte)0xc6,
+        (byte)0xe4, (byte)0x3f, (byte)0xb8, (byte)0x72,
+        (byte)0xcf, (byte)0x02, (byte)0xfc, (byte)0xf4,
+        (byte)0x58, (byte)0x34, (byte)0x77, (byte)0x76,
+        (byte)0xce, (byte)0x22, (byte)0x44, (byte)0x5f,
+        (byte)0x2d, (byte)0xca, (byte)0xee, (byte)0xf5,
+        (byte)0x43, (byte)0x56, (byte)0x47, (byte)0x71,
+        (byte)0x0b, (byte)0x09, (byte)0x6b, (byte)0x5e,
+        (byte)0xf2, (byte)0xc8, (byte)0xee, (byte)0xd4,
+        (byte)0x6e, (byte)0x44, (byte)0x92, (byte)0x2a,
+        (byte)0x7f, (byte)0xcc, (byte)0xa7, (byte)0xd4,
+        (byte)0x5b, (byte)0xfb, (byte)0xf7, (byte)0x4a,
+        (byte)0xa9, (byte)0xfb, (byte)0x54, (byte)0x18,
+        (byte)0xd5, (byte)0xd5, (byte)0x14, (byte)0xba,
+        (byte)0xa0, (byte)0x1c, (byte)0x13, (byte)0xb3,
+        (byte)0x37, (byte)0x6b, (byte)0x37, (byte)0x59,
+        (byte)0xed, (byte)0xdb, (byte)0x6d, (byte)0xb1
+    };
+
+    static byte serverModulus[] = {
+        (byte)0x00,
+        (byte)0xa5, (byte)0xac, (byte)0x5b, (byte)0x1c,
+        (byte)0x37, (byte)0xa2, (byte)0xdd, (byte)0x99,
+        (byte)0x89, (byte)0x2d, (byte)0xb2, (byte)0x79,
+        (byte)0xb8, (byte)0x8f, (byte)0xd5, (byte)0x48,
+        (byte)0xa5, (byte)0xe7, (byte)0x1c, (byte)0x84,
+        (byte)0x17, (byte)0x8d, (byte)0x69, (byte)0x9c,
+        (byte)0xc6, (byte)0xac, (byte)0x6d, (byte)0xf9,
+        (byte)0xf2, (byte)0x1d, (byte)0x1f, (byte)0x39,
+        (byte)0x19, (byte)0xda, (byte)0xd3, (byte)0x72,
+        (byte)0x1e, (byte)0x6e, (byte)0xec, (byte)0x44,
+        (byte)0xcc, (byte)0x70, (byte)0xa4, (byte)0xdc,
+        (byte)0xba, (byte)0x00, (byte)0x30, (byte)0xf6,
+        (byte)0xa0, (byte)0x4f, (byte)0x3d, (byte)0x54,
+        (byte)0x7a, (byte)0x61, (byte)0x6a, (byte)0xcc,
+        (byte)0x57, (byte)0xd0, (byte)0x0a, (byte)0x7f,
+        (byte)0x95, (byte)0x28, (byte)0x18, (byte)0x3f,
+        (byte)0x9a, (byte)0xd9, (byte)0x94, (byte)0xf2,
+        (byte)0x1b, (byte)0xc8, (byte)0x24, (byte)0x88,
+        (byte)0x7e, (byte)0xfe, (byte)0x9d, (byte)0x0f,
+        (byte)0x3d, (byte)0xfb, (byte)0x57, (byte)0x53,
+        (byte)0x08, (byte)0xb3, (byte)0x20, (byte)0x33,
+        (byte)0xd4, (byte)0x3f, (byte)0x17, (byte)0x47,
+        (byte)0x14, (byte)0xd1, (byte)0xcd, (byte)0xea,
+        (byte)0x08, (byte)0xd8, (byte)0x0e, (byte)0x75,
+        (byte)0x4e, (byte)0xaf, (byte)0xbe, (byte)0xcc,
+        (byte)0xd2, (byte)0xec, (byte)0xaf, (byte)0xa9,
+        (byte)0x7a, (byte)0x49, (byte)0xdf, (byte)0xc2,
+        (byte)0xd9, (byte)0xac, (byte)0xb8, (byte)0x24,
+        (byte)0x40, (byte)0x90, (byte)0xa6, (byte)0x03,
+        (byte)0x56, (byte)0x2a, (byte)0xd0, (byte)0x30,
+        (byte)0x05, (byte)0x40, (byte)0x2c, (byte)0x4f,
+        (byte)0xab, (byte)0xd9, (byte)0x74, (byte)0x89
+    };
+
+    static byte clientPrivateExponent[] = {
+        (byte)0x11, (byte)0xb7, (byte)0x6a, (byte)0x36,
+        (byte)0x3d, (byte)0x30, (byte)0x37, (byte)0xce,
+        (byte)0x61, (byte)0x9d, (byte)0x6c, (byte)0x84,
+        (byte)0x8b, (byte)0xf3, (byte)0x9b, (byte)0x25,
+        (byte)0x4f, (byte)0x14, (byte)0xc8, (byte)0xa4,
+        (byte)0xdd, (byte)0x2f, (byte)0xd7, (byte)0x9a,
+        (byte)0x17, (byte)0xbd, (byte)0x90, (byte)0x19,
+        (byte)0xf7, (byte)0x05, (byte)0xfd, (byte)0xf2,
+        (byte)0xd2, (byte)0xc5, (byte)0xf7, (byte)0x77,
+        (byte)0xbe, (byte)0xea, (byte)0xe2, (byte)0x84,
+        (byte)0x87, (byte)0x97, (byte)0x3a, (byte)0x41,
+        (byte)0x96, (byte)0xb6, (byte)0x99, (byte)0xf8,
+        (byte)0x94, (byte)0x8c, (byte)0x58, (byte)0x71,
+        (byte)0x51, (byte)0x8c, (byte)0xf4, (byte)0x2a,
+        (byte)0x20, (byte)0x9e, (byte)0x1a, (byte)0xa0,
+        (byte)0x26, (byte)0x99, (byte)0x75, (byte)0xd6,
+        (byte)0x31, (byte)0x53, (byte)0x43, (byte)0x39,
+        (byte)0xf5, (byte)0x2a, (byte)0xa6, (byte)0x7e,
+        (byte)0x34, (byte)0x42, (byte)0x51, (byte)0x2a,
+        (byte)0x40, (byte)0x87, (byte)0x03, (byte)0x88,
+        (byte)0x43, (byte)0x69, (byte)0xb2, (byte)0x89,
+        (byte)0x6d, (byte)0x20, (byte)0xbd, (byte)0x7d,
+        (byte)0x71, (byte)0xef, (byte)0x47, (byte)0x0a,
+        (byte)0xdf, (byte)0x06, (byte)0xc1, (byte)0x69,
+        (byte)0x66, (byte)0xa8, (byte)0x22, (byte)0x37,
+        (byte)0x1a, (byte)0x77, (byte)0x1e, (byte)0xc7,
+        (byte)0x94, (byte)0x4e, (byte)0x2c, (byte)0x27,
+        (byte)0x69, (byte)0x45, (byte)0x5e, (byte)0xc8,
+        (byte)0xf8, (byte)0x0c, (byte)0xb7, (byte)0xf8,
+        (byte)0xc0, (byte)0x8f, (byte)0x99, (byte)0xc1,
+        (byte)0xe5, (byte)0x28, (byte)0x9b, (byte)0xf9,
+        (byte)0x4c, (byte)0x94, (byte)0xc6, (byte)0xb1
+    };
+
+    static byte clientModulus[] = {
+        (byte)0x00,
+        (byte)0xbb, (byte)0xf0, (byte)0x40, (byte)0x36,
+        (byte)0xac, (byte)0x26, (byte)0x54, (byte)0x4e,
+        (byte)0xf4, (byte)0xa3, (byte)0x5a, (byte)0x00,
+        (byte)0x2f, (byte)0x69, (byte)0x21, (byte)0x6f,
+        (byte)0xb9, (byte)0x7a, (byte)0x3a, (byte)0x93,
+        (byte)0xec, (byte)0xa2, (byte)0xf6, (byte)0xe1,
+        (byte)0x8e, (byte)0xc7, (byte)0x63, (byte)0xd8,
+        (byte)0x2f, (byte)0x12, (byte)0x30, (byte)0x99,
+        (byte)0x2e, (byte)0xb0, (byte)0xf2, (byte)0x8f,
+        (byte)0xf8, (byte)0x27, (byte)0x2d, (byte)0x24,
+        (byte)0x78, (byte)0x28, (byte)0x84, (byte)0xf7,
+        (byte)0x01, (byte)0xbf, (byte)0x8d, (byte)0x44,
+        (byte)0x79, (byte)0xdd, (byte)0x3b, (byte)0xd2,
+        (byte)0x55, (byte)0xf3, (byte)0xce, (byte)0x3c,
+        (byte)0xb2, (byte)0x5b, (byte)0x21, (byte)0x7d,
+        (byte)0xef, (byte)0xfd, (byte)0x33, (byte)0x4a,
+        (byte)0xb1, (byte)0xa3, (byte)0xff, (byte)0xc6,
+        (byte)0xc8, (byte)0x9b, (byte)0xb9, (byte)0x0f,
+        (byte)0x7c, (byte)0x41, (byte)0x35, (byte)0x97,
+        (byte)0xf9, (byte)0xdb, (byte)0x3a, (byte)0x05,
+        (byte)0x60, (byte)0x05, (byte)0x15, (byte)0xaf,
+        (byte)0x59, (byte)0x17, (byte)0x92, (byte)0xa3,
+        (byte)0x10, (byte)0xad, (byte)0x16, (byte)0x1c,
+        (byte)0xe4, (byte)0x07, (byte)0x53, (byte)0xaf,
+        (byte)0xa8, (byte)0x76, (byte)0xa2, (byte)0x56,
+        (byte)0x2a, (byte)0x92, (byte)0xd3, (byte)0xf9,
+        (byte)0x28, (byte)0xe0, (byte)0x78, (byte)0xcf,
+        (byte)0x5e, (byte)0x1f, (byte)0x48, (byte)0xab,
+        (byte)0x5c, (byte)0x19, (byte)0xdd, (byte)0xe1,
+        (byte)0x67, (byte)0x43, (byte)0xba, (byte)0x75,
+        (byte)0x8d, (byte)0xf5, (byte)0x82, (byte)0xac,
+        (byte)0x43, (byte)0x92, (byte)0x44, (byte)0x1b
+    };
+
+    static char passphrase[] = "passphrase".toCharArray();
+
+    /*
+     * Is the server ready to serve?
+     */
+    volatile static boolean serverReady = false;
+
+    /*
+     * Turn on SSL debugging?
+     */
+    static boolean debug = false;
+
+    private SSLServerSocket sslServerSocket = null;
+
+    /*
+     * Define the server side of the test.
+     *
+     * If the server prematurely exits, serverReady will be set to true
+     * to avoid infinite hangs.
+     */
+    void doServerSide() throws Exception {
+        SSLContext context = getSSLContext(trusedCertStr, serverCertStr,
+            serverModulus, serverPrivateExponent, passphrase);
+        SSLServerSocketFactory sslssf = context.getServerSocketFactory();
+
+        sslServerSocket =
+            (SSLServerSocket) sslssf.createServerSocket(serverPort);
+        serverPort = sslServerSocket.getLocalPort();
+
+        /*
+         * Signal Client, we're ready for his connect.
+         */
+        serverReady = true;
+
+        SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
+        sslSocket.setNeedClientAuth(true);
+        if (sslSocket instanceof SSLSocketImpl) {
+            ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
+        }
+
+        PrintStream out =
+                new PrintStream(sslSocket.getOutputStream());
+
+        try {
+            // ignore request data
+
+            // send the response
+            out.print("HTTP/1.1 200 OK\r\n");
+            out.print("Content-Type: text/html; charset=iso-8859-1\r\n");
+            out.print("Content-Length: "+ 9 +"\r\n");
+            out.print("\r\n");
+            out.print("Testing\r\n");
+            out.flush();
+        } finally {
+             // close the socket
+             Thread.sleep(2000);
+             System.out.println("Server closing socket");
+             sslSocket.close();
+             serverReady = false;
+        }
+
+    }
+
+    /*
+     * Define the client side of the test.
+     *
+     * If the server prematurely exits, serverReady will be set to true
+     * to avoid infinite hangs.
+     */
+    void doClientSide() throws Exception {
+        SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
+            clientModulus, clientPrivateExponent, passphrase);
+
+        SSLContext.setDefault(context);
+
+        /*
+         * Wait for server to get started.
+         */
+        while (!serverReady) {
+            Thread.sleep(50);
+        }
+
+        HttpsURLConnection http = null;
+
+        /* establish http connection to server */
+        URL url = new URL("https://localhost:" + serverPort+"/");
+        System.out.println("url is "+url.toString());
+
+        http = (HttpsURLConnection)url.openConnection();
+
+        int respCode = http.getResponseCode();
+        System.out.println("respCode = "+respCode);
+
+        http.disconnect();
+    }
+
+    /*
+     * =============================================================
+     * The remainder is just support stuff
+     */
+
+    // use any free port by default
+    volatile int serverPort = 0;
+
+    volatile Exception serverException = null;
+    volatile Exception clientException = null;
+
+    public static void main(String args[]) throws Exception {
+        if (debug)
+            System.setProperty("javax.net.debug", "all");
+
+        /*
+         * Start the tests.
+         */
+        new Identities();
+    }
+
+    Thread clientThread = null;
+    Thread serverThread = null;
+    /*
+     * Primary constructor, used to drive remainder of the test.
+     *
+     * Fork off the other side, then do your work.
+     */
+    Identities() throws Exception {
+        if (separateServerThread) {
+            startServer(true);
+            startClient(false);
+        } else {
+            startClient(true);
+            startServer(false);
+        }
+
+        /*
+         * Wait for other side to close down.
+         */
+        if (separateServerThread) {
+            serverThread.join();
+        } else {
+            clientThread.join();
+        }
+
+        /*
+         * When we get here, the test is pretty much over.
+         *
+         * If the main thread excepted, that propagates back
+         * immediately.  If the other thread threw an exception, we
+         * should report back.
+         */
+        if (serverException != null)
+            throw serverException;
+        if (clientException != null)
+            throw clientException;
+    }
+
+    void startServer(boolean newThread) throws Exception {
+        if (newThread) {
+            serverThread = new Thread() {
+                public void run() {
+                    try {
+                        doServerSide();
+                    } catch (Exception e) {
+                        /*
+                         * Our server thread just died.
+                         *
+                         * Release the client, if not active already...
+                         */
+                        System.err.println("Server died...");
+                        serverReady = true;
+                        serverException = e;
+                    }
+                }
+            };
+            serverThread.start();
+        } else {
+            doServerSide();
+        }
+    }
+
+    void startClient(boolean newThread) throws Exception {
+        if (newThread) {
+            clientThread = new Thread() {
+                public void run() {
+                    try {
+                        doClientSide();
+                    } catch (Exception e) {
+                        /*
+                         * Our client thread just died.
+                         */
+                        System.err.println("Client died...");
+                        clientException = e;
+                    }
+                }
+            };
+            clientThread.start();
+        } else {
+            doClientSide();
+        }
+    }
+
+    // get the ssl context
+    private static SSLContext getSSLContext(String trusedCertStr,
+            String keyCertStr, byte[] modulus,
+            byte[] privateExponent, char[] passphrase) throws Exception {
+
+        // generate certificate from cert string
+        CertificateFactory cf = CertificateFactory.getInstance("X.509");
+
+        ByteArrayInputStream is =
+                    new ByteArrayInputStream(trusedCertStr.getBytes());
+        Certificate trusedCert = cf.generateCertificate(is);
+        is.close();
+
+        // create a key store
+        KeyStore ks = KeyStore.getInstance("JKS");
+        ks.load(null, null);
+
+        // import the trused cert
+        ks.setCertificateEntry("RSA Export Signer", trusedCert);
+
+        if (keyCertStr != null) {
+            // generate the private key.
+            RSAPrivateKeySpec priKeySpec = new RSAPrivateKeySpec(
+                                            new BigInteger(modulus),
+                                            new BigInteger(privateExponent));
+            KeyFactory kf = KeyFactory.getInstance("RSA");
+            RSAPrivateKey priKey =
+                    (RSAPrivateKey)kf.generatePrivate(priKeySpec);
+
+            // generate certificate chain
+            is = new ByteArrayInputStream(keyCertStr.getBytes());
+            Certificate keyCert = cf.generateCertificate(is);
+            is.close();
+
+            Certificate[] chain = new Certificate[2];
+            chain[0] = keyCert;
+            chain[1] = trusedCert;
+
+            // import the key entry.
+            ks.setKeyEntry("Whatever", priKey, passphrase, chain);
+        }
+
+        // create SSL context
+        TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
+        tmf.init(ks);
+
+        SSLContext ctx = SSLContext.getInstance("TLS");
+
+        if (keyCertStr != null) {
+            KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
+            kmf.init(ks, passphrase);
+
+            ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+        } else {
+            ctx.init(null, tmf.getTrustManagers(), null);
+        }
+
+        return ctx;
+    }
+
+}
--- a/jdk/test/sun/security/tools/jarsigner/oldsig.sh	Wed Jul 05 17:09:16 2017 +0200
+++ b/jdk/test/sun/security/tools/jarsigner/oldsig.sh	Wed Jul 05 17:09:51 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
+# Copyright 2007-2010 Sun Microsystems, Inc.  All Rights Reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 # 
 # This code is free software; you can redistribute it and/or modify it
@@ -22,7 +22,7 @@
 #
 
 # @test
-# @bug 6543940
+# @bug 6543940 6868865
 # @summary Exception thrown when signing a jarfile in java 1.5
 #
 # @run shell oldsig.sh
@@ -77,5 +77,6 @@
 ${TESTJAVA}${FS}bin${FS}jarsigner \
     -keystore ${TESTSRC}${FS}JarSigning.keystore \
     -storepass bbbbbb \
+    -digestalg SHA1 \
     B.jar c
 ${TESTJAVA}${FS}bin${FS}jarsigner -verify B.jar
--- a/langtools/.hgtags	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/.hgtags	Wed Jul 05 17:09:51 2017 +0200
@@ -62,3 +62,4 @@
 136bfc67946219fb02ee223984540a4a9c5b209f jdk7-b85
 ef07347428f2198ae6b8144ac0b9086bbe39fd16 jdk7-b86
 409db93d19c002333980df5b797c6b965150c7a0 jdk7-b87
+f9b5d4867a26f8c4b90ad37fe2c345b721e93d6b jdk7-b88
--- a/langtools/make/Makefile	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/make/Makefile	Wed Jul 05 17:09:51 2017 +0200
@@ -188,10 +188,16 @@
 # All ant targets of interest
 ANT_TARGETS = build clean sanity post-sanity diagnostics # for now
 
+# Create diagnostics log (careful, ant 1.8.0 -diagnostics always does an exit 1)
+$(OUTPUTDIR)/build/ant-diagnostics.log:
+	@mkdir -p $(OUTPUTDIR)/build $(ANT_TMPDIR)
+	@$(RM) $@
+	$(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) -diagnostics > $@ ; \
+	  $(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) -version >> $@
+
 # Create a make target for each
-$(ANT_TARGETS):
+$(ANT_TARGETS): $(OUTPUTDIR)/build/ant-diagnostics.log
 	@ mkdir -p $(OUTPUTDIR)/build $(ANT_TMPDIR)
-	$(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) -diagnostics > $(OUTPUTDIR)/build/ant-diagnostics.log
 	$(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) $(ANT_OPTIONS) $@
 
 #-------------------------------------------------------------------
--- a/langtools/make/jprt.properties	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/make/jprt.properties	Wed Jul 05 17:09:51 2017 +0200
@@ -50,6 +50,5 @@
 jprt.test.targets=
 
 # Directories needed to build
-jprt.bundle.src.dirs=make src
 jprt.bundle.exclude.src.dirs=build dist
 
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java	Wed Jul 05 17:09:51 2017 +0200
@@ -229,23 +229,24 @@
             if (kind == ENUM) {
                 List<Element> enclosedElements =
                     new ArrayList<Element>(e.getEnclosedElements());
+                // Handle any enum constants specially before other entities.
                 List<Element> enumConstants = new ArrayList<Element>();
                 for(Element element : enclosedElements) {
                     if (element.getKind() == ENUM_CONSTANT)
                         enumConstants.add(element);
                 }
-
-                int i;
-                for(i = 0; i < enumConstants.size()-1; i++) {
+                if (!enumConstants.isEmpty()) {
+                    int i;
+                    for(i = 0; i < enumConstants.size()-1; i++) {
+                        this.visit(enumConstants.get(i), true);
+                        writer.print(",");
+                    }
                     this.visit(enumConstants.get(i), true);
-                    writer.print(",");
-                }
-                if (i >= 0 ) {
-                    this.visit(enumConstants.get(i), true);
-                    writer.print(";");
+                    writer.println(";\n");
+
+                    enclosedElements.removeAll(enumConstants);
                 }
 
-                enclosedElements.removeAll(enumConstants);
                 for(Element element : enclosedElements)
                     this.visit(element);
             } else {
--- a/langtools/src/share/classes/com/sun/tools/javah/JavahTask.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javah/JavahTask.java	Wed Jul 05 17:09:51 2017 +0200
@@ -318,12 +318,6 @@
     int run(String[] args) {
         try {
             handleOptions(args);
-            if (classes == null || classes.size() == 0) {
-                if (help || version || fullVersion)
-                    return 0;
-                else
-                    return 1;
-            }
             boolean ok = run();
             return ok ? 0 : 1;
         } catch (BadArgs e) {
@@ -355,7 +349,7 @@
             fileManager = getDefaultFileManager(diagnosticListener, log);
 
         Iterator<String> iter = args.iterator();
-        boolean noArgs = !iter.hasNext();
+        noArgs = !iter.hasNext();
 
         while (iter.hasNext()) {
             String arg = iter.next();
@@ -416,9 +410,9 @@
 
         Util util = new Util(log, diagnosticListener);
 
-        if (help) {
+        if (noArgs || help) {
             showHelp();
-            return true;
+            return help; // treat noArgs as an error for purposes of exit code
         }
 
         if (version || fullVersion) {
@@ -636,6 +630,7 @@
     String usercp;
     List<String> classes;
     boolean verbose;
+    boolean noArgs;
     boolean help;
     boolean trace;
     boolean version;
--- a/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java	Wed Jul 05 17:09:51 2017 +0200
@@ -225,15 +225,15 @@
         writeModifiers(flags.getFieldModifiers());
         Signature_attribute sigAttr = getSignature(f.attributes);
         if (sigAttr == null)
-            print(getFieldType(f.descriptor));
+            print(getJavaFieldType(f.descriptor));
         else {
             try {
                 Type t = sigAttr.getParsedSignature().getType(constant_pool);
-                print(t);
+                print(getJavaName(t.toString()));
             } catch (ConstantPoolException e) {
                 // report error?
                 // fall back on non-generic descriptor
-                print(getFieldType(f.descriptor));
+                print(getJavaFieldType(f.descriptor));
             }
         }
         print(" ");
@@ -314,14 +314,14 @@
         }
         if (getName(m).equals("<init>")) {
             print(getJavaName(classFile));
-            print(getParameterTypes(d, flags));
+            print(getJavaParameterTypes(d, flags));
         } else if (getName(m).equals("<clinit>")) {
             print("{}");
         } else {
-            print(getReturnType(d));
+            print(getJavaReturnType(d));
             print(" ");
             print(getName(m));
-            print(getParameterTypes(d, flags));
+            print(getJavaParameterTypes(d, flags));
         }
 
         Attribute e_attr = m.attributes.get(Attribute.Exceptions);
@@ -460,9 +460,9 @@
         }
     }
 
-    String getFieldType(Descriptor d) {
+    String getJavaFieldType(Descriptor d) {
         try {
-            return d.getFieldType(constant_pool);
+            return getJavaName(d.getFieldType(constant_pool));
         } catch (ConstantPoolException e) {
             return report(e);
         } catch (DescriptorException e) {
@@ -470,9 +470,9 @@
         }
     }
 
-    String getReturnType(Descriptor d) {
+    String getJavaReturnType(Descriptor d) {
         try {
-            return d.getReturnType(constant_pool);
+            return getJavaName(d.getReturnType(constant_pool));
         } catch (ConstantPoolException e) {
             return report(e);
         } catch (DescriptorException e) {
@@ -480,9 +480,9 @@
         }
     }
 
-    String getParameterTypes(Descriptor d, AccessFlags flags) {
+    String getJavaParameterTypes(Descriptor d, AccessFlags flags) {
         try {
-            return adjustVarargs(flags, d.getParameterTypes(constant_pool));
+            return getJavaName(adjustVarargs(flags, d.getParameterTypes(constant_pool)));
         } catch (ConstantPoolException e) {
             return report(e);
         } catch (DescriptorException e) {
--- a/langtools/test/Makefile	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/Makefile	Wed Jul 05 17:09:51 2017 +0200
@@ -1,6 +1,20 @@
 #
-# Makefile to run jtreg and any other tests
+# Makefile to run jtreg and other tests
+#
+
+# Product builds and langtools builds
+#
+# A full product build (or "control" build) creates a complete JDK image.
+# To test a product build, set TESTJAVA to the path for the image.
 #
+# A langtools build just builds the langtools components of a JDK. 
+# To test a langtools build, set TESTJAVA to the path for a recent JDK
+# build, and set TESTBOOTCLASSPATH to the compiled langtools classes --
+# for example build/classes or dist/lib/classes.jar.
+
+# JPRT
+# JPRT may invoke this Makefile directly, as part of a langtools build,
+# or indirectly, via FOREST/test/Makefile, as part of a control build.
 
 # Get OS/ARCH specifics
 OSNAME = $(shell uname -s)
@@ -41,8 +55,11 @@
 # Root of this test area (important to use full paths in some places)
 TEST_ROOT := $(shell pwd)
 
-# Default bundle of all test results (passed or not)
-JPRT_ARCHIVE_BUNDLE=$(TEST_ROOT)/JPRT_ARCHIVE_BUNDLE.zip
+# Default bundle of all test results (passed or not) (JPRT only)
+ifdef JPRT_JOB_ID
+  JPRT_CLEAN = clean
+  JPRT_ARCHIVE_BUNDLE = $(TEST_ROOT)/JPRT_ARCHIVE_BUNDLE.zip
+endif
 
 ifeq ($(PLATFORM), windows)
   SLASH_JAVA = J:
@@ -57,8 +74,21 @@
   JTREG_HOME = $(SLASH_JAVA)/re/jtreg/4.0/promoted/latest/binaries/jtreg
 endif
 JTREG = $(JTREG_HOME)/$(JT_PLATFORM)/bin/jtreg
+JTDIFF = $(JTREG_HOME)/$(JT_PLATFORM)/bin/jtdiff
 
-# Default JDK for JTREG
+# Default JCK to run
+ifdef JPRT_JCK_HOME
+  JCK_HOME = $(JPRT_JCK_HOME)
+else
+  JCK_HOME = $(SLASH_JAVA)/re/jck/7/promoted/latest/binaries
+endif
+
+# Default JDK for JTREG and JCK
+#
+# JT_JAVA is the version of java used to run jtreg/JCK. Since it is now
+# standard to execute tests in sameVM mode, it should normally be set the
+# same as TESTJAVA (although not necessarily so.)
+#
 ifdef JPRT_JAVA_HOME
   JT_JAVA = $(JPRT_JAVA_HOME)
 else
@@ -72,49 +102,275 @@
   TESTJAVA = $(SLASH_JAVA)/re/jdk/1.7.0/promoted/latest/binaries/$(PLATFORM)-$(ARCH)
 endif
 
-TESTBOOTCLASSPATH = $(PRODUCT_HOME)/dist/lib/classes.jar
+# PRODUCT_HOME is a JPRT variable pointing to a directory containing the output from 
+# make/Makefile
+# For langtools, this is a directory containing build and dist
+# For a control build, this is build/$(PRODUCT)-$(ARCH)/j2sdk-image
+ifdef PRODUCT_HOME
+  ifeq ($(shell [ -r $(PRODUCT_HOME)/dist/lib/classes.jar ]; echo $$?),0)
+    TESTBOOTCLASSPATH = $(PRODUCT_HOME)/dist/lib/classes.jar
+  endif
+  ifeq ($(shell [ -r $(PRODUCT_HOME)/lib/tools.jar ]; echo $$?),0)
+    TESTJAVA = $(PRODUCT_HOME)
+  endif
+endif
+
+ifdef TESTBOOTCLASSPATH
+  JTREG_OPTIONS += -Xbootclasspath/p:$(TESTBOOTCLASSPATH)
+### In the following, -refvmoptions is an undocumented option
+### The following does not work JCK 7 b30 2/6/2010. Awaiting b31. 
+  JCK_OPTIONS += \
+	-vmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH) \
+	-refvmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH)
+endif
+
+# Concurrency is the number of tests that can execute at once. 
+# Supported for JCK, not supported for jtreg.
+# On an otherwise empty machine, suggest setting to (#cpus + 2)
+# If unset, the default is (#cpus)
+### RFE: determine and use #cpus
+ifdef JCK_CONCURRENCY
+  JCK_OPTIONS += -concurrency:$(JCK_CONCURRENCY)
+endif
+
+# JCK is executed using "Multi-JVM Group Mode", which is a hybrid
+# of otherVM and sameVM modes. New JVMs are created and reused for
+# a number of tests, then eventually discarded and a new one started.
+# This amortizes the JVM startup time.  The "group size" defines
+# how many tests are run in a JVM before it is replaced.
+# If unset, the default is 100.
+JCK_GROUP_SIZE = 1000
+ifdef JCK_GROUP_SIZE
+  JCK_COMPILER_OPTIONS += \
+    -jtoptions:-Ejck.env.compiler.testCompile.groupMode.groupSize=$(JCK_GROUP_SIZE) \
+    -jtoptions:-Ejck.env.compiler.compRefExecute.groupMode.groupSize=$(JCK_GROUP_SIZE)
+### The following is not supported. Awaiting RFE 6924287
+### 6924287: Jck4Jdk: Allow to configure test group size for group mode via simple command line option
+###  JCK_RUNTIME_OPTIONS += \
+###    -jtoptions:-Ejck.env.runtime.testCompile.groupMode.groupSize=$(JCK_GROUP_SIZE)
+endif
+
+# Assertions: some tests show failures when assertions are enabled.
+# Since javac is typically loaded via the bootclassloader (either via TESTJAVA
+# or TESTBOOTCLASSPATH), you may need -esa to enable assertions in javac.
+JTREG_OPTIONS += $(ASSERTION_OPTIONS)
+JCK_OPTIONS += $(ASSERTION_OPTIONS:%=-vmoptions:%)
+
+# Include shared options
+JCK_COMPILER_OPTIONS += $(JCK_OPTIONS)
+JCK_RUNTIME_OPTIONS += $(JCK_OPTIONS)
+
+# Exit codes:
+# jtreg, jck:   0: OK, 1: tests failed, 2: tests error; 3+: SERIOUS
+FATAL_JTREG_EXIT = 3
+FATAL_JCK_EXIT = 3
+# jtdiff: 0: OK, 1: differences found; 2+: SERIOUS
+FATAL_JTDIFF_EXIT = 2
+#
+# Exit -- used for final "normal" exit from "make". Redefine to "true" to avoid
+# having make exit with non-zero return code.
+EXIT = exit
+# Function to exit shell if exit code of preceding command is greater than or equal 
+# to a given level. Redefine function or preceding FATAL_*_EXIT codes as needed.
+EXIT_IF_FATAL = status=$$?; if [ $$status -ge $(1) ]; then exit $$status ; fi
 
 # The test directories to run
 DEFAULT_TESTDIRS = .
 TESTDIRS = $(DEFAULT_TESTDIRS)
 
 # Root of all test results
-TEST_OUTPUT_DIR = $(TEST_ROOT)/o_$(PLATFORM)-$(ARCH)
+TEST_OUTPUT_DIR = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools
+ABS_TEST_OUTPUT_DIR := \
+	$(shell mkdir -p $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools; \
+		cd  $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools; \
+		pwd )
+# Subdirectories for different test runs
+JTREG_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jtreg
+JCK_COMPILER_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jck-compiler
+JCK_RUNTIME_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jck-runtime-Xcompile
 
-# Default make rule
-all apt javac javadoc javah javap: clean check jtreg-tests $(JPRT_ARCHIVE_BUNDLE)
+# Default make rule -- warning, may take a while
+all: $(JPRT_CLEAN) jtreg-tests jck-compiler-tests jck-runtime-tests $(JPRT_ARCHIVE_BUNDLE) all-summary
+	@echo "Testing completed successfully"
+
+jtreg apt javac javadoc javah javap: $(JPRT_CLEAN) jtreg-tests $(JPRT_ARCHIVE_BUNDLE) jtreg-summary
+	@echo "Testing completed successfully"
+
+jck-compiler: $(JPRT_CLEAN) jck-compiler-tests $(JPRT_ARCHIVE_BUNDLE) jck-compiler-summary
+	@echo "Testing completed successfully"
+
+jck-runtime: $(JPRT_CLEAN) jck-runtime-tests $(JPRT_ARCHIVE_BUNDLE) jck-runtime-summary
 	@echo "Testing completed successfully"
 
 # for use with JPRT -testrule
-all:		TESTDIRS = .
-apt:		TESTDIRS = tools/apt
-javac: 		TESTDIRS = tools/javac
-javadoc:	TESTDIRS = tools/javadoc com/sun/javadoc
-javah:		TESTDIRS = tools/javah
-javap:		TESTDIRS = tools/javap
+all:		JTREG_TESTDIRS = .
+jtreg:		JTREG_TESTDIRS = .
+apt:		JTREG_TESTDIRS = tools/apt
+javac: 		JTREG_TESTDIRS = tools/javac
+javadoc:	JTREG_TESTDIRS = tools/javadoc com/sun/javadoc
+javah:		JTREG_TESTDIRS = tools/javah
+javap:		JTREG_TESTDIRS = tools/javap
+
+# Run jtreg tests
+#
+# JTREG_HOME
+#	Installed location of jtreg
+# JT_JAVA
+#	Version of java used to run jtreg.  Should normally be the same as TESTJAVA
+# TESTJAVA
+# 	Version of java to be tested.  
+# JTREG_OPTIONS
+#	Additional options for jtreg
+# JTREG_TESTDIRS
+#	Directories of tests to be run
+# JTREG_OUTPUT_DIR
+#	Where to write the results
+# JTREG_REFERENCE
+#	(Optional) reference results (e.g. work, report or summary.txt)
+#
+jtreg-tests: check-jtreg FRC
+	@rm -f -r $(JTREG_OUTPUT_DIR)/JTwork $(JTREG_OUTPUT_DIR)/JTreport \
+	    $(JTREG_OUTPUT_DIR)/diff.html $(JTREG_OUTPUT_DIR)/status.txt
+	@mkdir -p $(JTREG_OUTPUT_DIR)
+	JT_JAVA=$(JT_JAVA) $(JTREG) \
+	  -J-Xmx512m \
+	  -a -samevm -ignore:quiet -v:fail,error,nopass \
+          -r:$(JTREG_OUTPUT_DIR)/JTreport \
+          -w:$(JTREG_OUTPUT_DIR)/JTwork \
+          -jdk:$(TESTJAVA) \
+          $(JAVA_ARGS:%=-vmoption:%) \
+	  $(JTREG_OPTIONS) \
+          $(JTREG_TESTDIRS) \
+	|| ( $(call EXIT_IF_FATAL,$(FATAL_JTREG_EXIT)) ; \
+	    echo $$status > $(JTREG_OUTPUT_DIR)/status.txt \
+	)
+ifdef JTREG_REFERENCE
+	JT_JAVA=$(JT_JAVA) $(JTDIFF) -o $(JTREG_OUTPUT_DIR)/diff.html \
+	    $(JTREG_REFERENCE) $(JTREG_OUTPUT_DIR)/JTreport \
+	|| ( $(call EXIT_IF_FATAL,$(FATAL_JTDIFF_EXIT)) )
+endif
+
+jtreg-summary: FRC
+	if [ -r $(JTREG_OUTPUT_DIR)/status.txt ]; then \
+	    echo ; echo "Summary of jtreg test failures" ; \
+	    cat $(JTREG_OUTPUT_DIR)/JTreport/text/summary.txt | \
+		grep -v 'Not run' | grep -v 'Passed' ; \
+	    echo ; \
+	    $(EXIT) `cat $(JTREG_OUTPUT_DIR)/status.txt` ; \
+	fi
 
 # Check to make sure these directories exist
-check: $(JT_HOME) $(PRODUCT_HOME) $(JTREG)
+check-jtreg: $(JT_HOME) $(PRODUCT_HOME) $(JTREG)
+
+
+# Run JCK-compiler tests
+#
+# JCK_HOME
+#	Installed location of JCK: should include JCK-compiler, and JCK-extras
+# JT_JAVA
+#	Version of java used to run JCK.  Should normally be the same as TESTJAVA
+# TESTJAVA
+# 	Version of java to be tested.  
+# JCK_COMPILER_OPTIONS
+#	Additional options for JCK-compiler
+# JCK_COMPILER_TESTDIRS
+#	Directories of tests to be run
+# JCK_COMPILER_OUTPUT_DIR
+#	Where to write the results
+# JCK_COMPILER_REFERENCE
+#	(Optional) reference results (e.g. work, report or summary.txt)
+#
+jck-compiler-tests: check-jck FRC
+	@rm -f -r $(JCK_COMPILER_OUTPUT_DIR)/work $(JCK_COMPILER_OUTPUT_DIR)/report \
+	    $(JCK_COMPILER_OUTPUT_DIR)/diff.html $(JCK_COMPILER_OUTPUT_DIR)/status.txt
+	@mkdir -p $(JCK_COMPILER_OUTPUT_DIR)
+	$(JT_JAVA)/bin/java -XX:MaxPermSize=256m -Xmx512m \
+	    -jar $(JCK_HOME)/JCK-compiler-7/lib/jtjck.jar \
+	    -v:non-pass \
+            -r:$(JCK_COMPILER_OUTPUT_DIR)/report \
+            -w:$(JCK_COMPILER_OUTPUT_DIR)/work \
+            -jdk:$(TESTJAVA) \
+	    $(JCK_COMPILER_OPTIONS) \
+            $(JCK_COMPILER_TESTDIRS) \
+	|| ( $(call EXIT_IF_FATAL,$(FATAL_JCK_EXIT)) ; \
+	    echo $$status > $(JCK_COMPILER_OUTPUT_DIR)/status.txt \
+	)
+ifdef JCK_COMPILER_REFERENCE
+	JT_JAVA=$(JT_JAVA) $(JTDIFF) -o $(JCK_COMPILER_OUTPUT_DIR)/diff.html \
+	    $(JCK_COMPILER_REFERENCE) $(JCK_COMPILER_OUTPUT_DIR)/report \
+	|| ( $(call EXIT_IF_FATAL,$(FATAL_JTDIFF_EXIT)) )
+endif
+
+jck-compiler-summary: FRC
+	if [ -r $(JCK_COMPILER_OUTPUT_DIR)/status.txt ]; then \
+	    echo ; echo "Summary of JCK-compiler test failures" ; \
+	    cat $(JCK_COMPILER_OUTPUT_DIR)/report/text/summary.txt | \
+		grep -v 'Not run' | grep -v 'Passed' ; \
+	    echo ; \
+	    $(EXIT) `cat $(JCK_COMPILER_OUTPUT_DIR)/status.txt` ; \
+	fi
 
-# Run the tests
-jtreg-tests: FRC
-	@echo "Using export JAVA_TOOL_OPTIONS=$(JAVA_TOOL_OPTIONS)"
-	@rm -f -r $(TEST_OUTPUT_DIR)/JTwork $(TEST_OUTPUT_DIR)/JTreport
-	@mkdir -p $(TEST_OUTPUT_DIR)
-	JT_JAVA=$(JT_JAVA) $(JTREG) \
-	  -a -samevm -k:\!ignore -v:fail,error,nopass \
-          -r:$(TEST_OUTPUT_DIR)/JTreport \
-          -w:$(TEST_OUTPUT_DIR)/JTwork \
-          -jdk:$(TESTJAVA) \
-	  -Xbootclasspath/p:$(TESTBOOTCLASSPATH) \
-          $(JAVA_ARGS:%=-vmoption:%) \
-          $(TESTDIRS) \
-	|| ( status=$$? ; \
-		echo ; echo "Summary of test failures" ; \
-		cat $(TEST_OUTPUT_DIR)/JTreport/text/summary.txt | \
-			grep -v 'Not run' | grep -v 'Passed' ; \
-		echo ; \
-		exit $$status )
+# Run JCK-runtime tests in -Xcompile mode
+# This is a special mode to test javac by compiling the tests in the JCK-runtime test suite
+# Normal JCK-runtime invocation belongs in the jdk/ repository.
+#
+# JCK_HOME
+#	Installed location of JCK: should include JCK-compiler, JCK-runtime and JCK-extras
+# JT_JAVA
+#	Version of java used to run JCK.  Should normally be the same as TESTJAVA
+# TESTJAVA
+# 	Version of java to be tested.  
+# JCK_RUNTIME_OPTIONS
+#	Additional options for JCK-runtime
+# JCK_RUNTIME_TESTDIRS
+#	Directories of tests to be run
+# JCK_RUNTIME_OUTPUT_DIR
+#	Where to write the results
+# JCK_RUNTIME_REFERENCE
+#	(Optional) reference results (e.g. work, report or summary.txt)
+#
+jck-runtime-tests: check-jck FRC
+	@rm -f -r $(JCK_RUNTIME_OUTPUT_DIR)/work $(JCK_RUNTIME_OUTPUT_DIR)/report \
+	    $(JCK_RUNTIME_OUTPUT_DIR)/diff.html $(JCK_RUNTIME_OUTPUT_DIR)/status.txt
+	@mkdir -p $(JCK_RUNTIME_OUTPUT_DIR)
+	$(JT_JAVA)/bin/java -XX:MaxPermSize=256m -Xmx512m \
+	    -jar $(JCK_HOME)/JCK-runtime-7/lib/jtjck.jar \
+	    -v:non-pass \
+            -r:$(JCK_RUNTIME_OUTPUT_DIR)/report \
+            -w:$(JCK_RUNTIME_OUTPUT_DIR)/work \
+            -jdk:$(TESTJAVA) \
+	    -Xcompile \
+	    $(JCK_RUNTIME_OPTIONS) \
+            $(JCK_RUNTIME_TESTDIRS) \
+	|| ( $(call EXIT_IF_FATAL,$(FATAL_JCK_EXIT)) ; \
+	    echo $$status > $(JCK_RUNTIME_OUTPUT_DIR)/status.txt \
+	)
+ifdef JCK_RUNTIME_REFERENCE
+	JT_JAVA=$(JT_JAVA) $(JTDIFF) -o $(JCK_RUNTIME_OUTPUT_DIR)/diff.html \
+	    $(JCK_RUNTIME_REFERENCE) $(JCK_RUNTIME_OUTPUT_DIR)/report \
+	|| ( $(call EXIT_IF_FATAL,$(FATAL_JTDIFF_EXIT)) )
+endif
+
+jck-runtime-summary: FRC
+	if [ -r $(JCK_RUNTIME_OUTPUT_DIR)/status.txt ]; then \
+	    echo ; echo "Summary of JCK-runtime test failures" ; \
+	    cat $(JCK_RUNTIME_OUTPUT_DIR)/report/text/summary.txt | \
+		grep -v 'Not run' | grep -v 'Passed' ; \
+	    echo ; \
+	    $(EXIT) `cat $(JCK_RUNTIME_OUTPUT_DIR)/status.txt` ; \
+	fi
+
+# Check to make sure these directories exist
+check-jck: $(JT_HOME) $(JCK_HOME) $(PRODUCT_HOME)
+
+all-summary: FRC
+	if [ -n "`find $(TEST_OUTPUT_DIR) -name status.txt`" ]; then
+	    echo ; echo "Summary of test failures" ; \
+	    cat `find $(TEST_OUTPUT_DIR) -name summary.txt` | \
+		grep -v 'Not run' | grep -v 'Passed' ; \
+	    echo ; \
+	    $(EXIT) 1
+	fi
 
 # Bundle up the results
 $(JPRT_ARCHIVE_BUNDLE): FRC
@@ -124,12 +380,17 @@
 
 # Cleanup
 clean:
-	rm -f -r $(TEST_OUTPUT_DIR)
 	rm -f $(JPRT_ARCHIVE_BUNDLE)
 
 # Used to force a target rules to run
 FRC:
 
 # Phony targets (e.g. these are not filenames)
-.PHONY: all tests clean check
+.PHONY: all clean \
+	jtreg javac javadoc javah javap jtreg-tests jtreg-summary check-jtreg \
+	jck-compiler jck-compiler-tests jck-compiler-summary \
+	jck-runtime jck-runtime-tests jck-runtime-summary check-jck
 
+# No use of suffix rules
+.SUFFIXES:
+
--- a/langtools/test/tools/javac/OverrideChecks/6738538/T6738538a.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/OverrideChecks/6738538/T6738538a.java	Wed Jul 05 17:09:51 2017 +0200
@@ -41,4 +41,4 @@
         public T m();
     }
     class Crash<T extends C<?> & I> {}
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/OverrideChecks/6738538/T6738538b.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/OverrideChecks/6738538/T6738538b.java	Wed Jul 05 17:09:51 2017 +0200
@@ -44,4 +44,4 @@
     }
 
     class C2<T extends C1<?> & I2> {}
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/api/6731573/Erroneous.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/api/6731573/Erroneous.java	Wed Jul 05 17:09:51 2017 +0200
@@ -1,4 +1,4 @@
 class A {
     boolean b;
     boolean b;
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/api/6731573/T6731573.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/api/6731573/T6731573.java	Wed Jul 05 17:09:51 2017 +0200
@@ -106,4 +106,4 @@
     public static void main(String... args) throws Exception {
         new T6731573().test();
     }
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/cast/6548436/T6548436d.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/cast/6548436/T6548436d.java	Wed Jul 05 17:09:51 2017 +0200
@@ -37,4 +37,4 @@
     static void test(Base<? extends Double> je) {
         Object o = (Base<Integer>)je;
     }
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/cast/6558559/T6558559a.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/cast/6558559/T6558559a.java	Wed Jul 05 17:09:51 2017 +0200
@@ -37,4 +37,4 @@
 
     A<?> x = null;
     B<?> y = (B<?>)x;
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/cast/6558559/T6558559b.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/cast/6558559/T6558559b.java	Wed Jul 05 17:09:51 2017 +0200
@@ -40,4 +40,4 @@
         Object o = unboundList;
         Throwable t3 = (Throwable) o;
     }
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/cast/6586091/T6586091.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/cast/6586091/T6586091.java	Wed Jul 05 17:09:51 2017 +0200
@@ -35,4 +35,4 @@
 
     A<A<?>> t = null;
     B c = (B)t;
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/enum/T6724345.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/enum/T6724345.java	Wed Jul 05 17:09:51 2017 +0200
@@ -48,4 +48,4 @@
     enum E implements I {
         V {public void i() {}};
     }
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/generics/T6557954.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/generics/T6557954.java	Wed Jul 05 17:09:51 2017 +0200
@@ -33,4 +33,4 @@
 class T6557954<T> {
     class Foo<U extends T> {}
     T6557954<Number>.Foo<Integer> f;
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/generics/T6751514.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/generics/T6751514.java	Wed Jul 05 17:09:51 2017 +0200
@@ -79,4 +79,4 @@
                                      " - found: " + found + ")");
         }
     }
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/generics/T6869075.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/generics/T6869075.java	Wed Jul 05 17:09:51 2017 +0200
@@ -64,4 +64,4 @@
                                      " - found: " + found + ")");
         }
     }
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/generics/inference/6569789/T6569789.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/generics/inference/6569789/T6569789.java	Wed Jul 05 17:09:51 2017 +0200
@@ -41,4 +41,4 @@
     }
 
     static <W extends C & I & I1 & I2, T extends W> void testMethod(T t) {}
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/generics/inference/6650759/T6650759a.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/generics/inference/6650759/T6650759a.java	Wed Jul 05 17:09:51 2017 +0200
@@ -42,4 +42,4 @@
         Integer test = getGenericValue(new IntegerInterface());
         testSet(getGenericValue(new IntegerInterface()));
     }
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/generics/wildcards/T6732484.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/generics/wildcards/T6732484.java	Wed Jul 05 17:09:51 2017 +0200
@@ -34,4 +34,4 @@
     class B extends A<B> {}
 
     A<? super B> f;
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/processing/model/util/elements/Foo.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/processing/model/util/elements/Foo.java	Wed Jul 05 17:09:51 2017 +0200
@@ -26,4 +26,4 @@
  * Dummy type to compile.
  */
 public class Foo {
-}
\ No newline at end of file
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/processing/model/util/elements/VacuousEnum.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6937417
+ * @summary Test -Xprint on enum type with no constants
+ * @author  Joseph D. Darcy
+ * @compile -Xprint VacuousEnum.java
+ */
+public enum VacuousEnum {
+    // But alas, no enum constants!
+}
--- a/langtools/test/tools/javac/varargs/T6746184.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javac/varargs/T6746184.java	Wed Jul 05 17:09:51 2017 +0200
@@ -36,4 +36,4 @@
 class A {
     public static void m(final Object... varargs) {}
     private static void m(final Object singleArg) {}
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javah/T6893943.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javah/T6893943.java	Wed Jul 05 17:09:51 2017 +0200
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 6893943
+ * @bug 6893943 6937318
  * @summary exit code from javah with no args is 0
  */
 
@@ -31,22 +31,32 @@
 import java.util.*;
 
 public class T6893943 {
+    static final String[] NO_ARGS = { };
+    static final String[] HELP = { "-help" };
+    static final String NEWLINE = System.getProperty("line.separator");
+
     public static void main(String... args) throws Exception {
         new T6893943().run();
     }
 
     void run() throws Exception {
-        testSimpleAPI();
-        testCommand();
+        testSimpleAPI(NO_ARGS, 1);
+        testSimpleAPI(HELP, 0);
+        testCommand(NO_ARGS, 1);
+        testCommand(HELP, 0);
     }
 
-    void testSimpleAPI() throws Exception {
-        PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.err));
-        int rc = com.sun.tools.javah.Main.run(new String[] { }, pw);
-        expect("testSimpleAPI", rc, 1);
+    void testSimpleAPI(String[] args, int expect_rc) throws Exception {
+        System.err.println("Test simple api: " + Arrays.asList(args));
+        StringWriter sw = new StringWriter();
+        PrintWriter pw = new PrintWriter(sw);
+        int rc = com.sun.tools.javah.Main.run(args, pw);
+        pw.close();
+        expect("testSimpleAPI", sw.toString(), rc, expect_rc);
     }
 
-    void testCommand() throws Exception {
+    void testCommand(String[] args, int expect_rc) throws Exception {
+        System.err.println("Test command: " + Arrays.asList(args));
         File javaHome = new File(System.getProperty("java.home"));
         if (javaHome.getName().equals("jre"))
             javaHome = javaHome.getParentFile();
@@ -54,22 +64,32 @@
         List<String> command = new ArrayList<String>();
         command.add(new File(new File(javaHome, "bin"), "javah").getPath());
         command.add("-J-Xbootclasspath:" + System.getProperty("sun.boot.class.path"));
+        command.addAll(Arrays.asList(args));
         //System.err.println("command: " + command);
 
         ProcessBuilder pb = new ProcessBuilder(command);
         pb.redirectErrorStream(true);
         Process p = pb.start();
         p.getOutputStream().close();
+        StringWriter sw = new StringWriter();
         String line;
         BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
         while ((line = in.readLine()) != null)
-            System.err.println("javah: " + line);
+            sw.write(line + NEWLINE);
         int rc = p.waitFor();
-        expect("testCommand", rc, 1);
+        expect("testCommand", sw.toString(), rc, expect_rc);
     }
 
-    void expect(String name, int actual, int expect) throws Exception {
-        if (actual != expect)
-            throw new Exception(name + ": unexpected exit: " + actual + ", expected: " + expect);
+    void expect(String name, String out, int actual_rc, int expect_rc) throws Exception {
+        if (out.isEmpty())
+            throw new Exception("No output from javah");
+
+        if (!out.startsWith("Usage:")) {
+            System.err.println(out);
+            throw new Exception("Unexpected output from javah");
+        }
+
+        if (actual_rc != expect_rc)
+            throw new Exception(name + ": unexpected exit: " + actual_rc + ", expected: " + expect_rc);
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javap/6937244/T6937244.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6937244
+ * @summary fields display with JVMS names, not Java names
+ */
+
+import java.io.*;
+
+public class T6937244 {
+    public static void main(String[] args) throws Exception {
+        new T6937244().run();
+    }
+
+    void run() throws Exception {
+        StringWriter sw = new StringWriter();
+        PrintWriter pw = new PrintWriter(sw);
+        String[] args = { "java.lang.String" };
+        int rc = com.sun.tools.javap.Main.run(args, pw);
+        pw.close();
+        String out = sw.toString();
+        System.err.println(out);
+        if (rc != 0)
+            throw new Exception("unexpected exit from javap: " + rc);
+        for (String line: out.split("[\r\n]+")) {
+            if (line.contains("CASE_INSENSITIVE_ORDER")) {
+                if (line.matches("\\s*\\Qpublic static final java.util.Comparator<java.lang.String> CASE_INSENSITIVE_ORDER;\\E\\s*"))
+                    return;
+                throw new Exception("declaration not shown as expected");
+            }
+        }
+        throw new Exception("declaration of CASE_INSENSITIVE_ORDER not found");
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javap/6937244/T6937244A.java	Wed Jul 05 17:09:51 2017 +0200
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6937244
+ * @summary fields display with JVMS names, not Java names
+ */
+
+import java.io.*;
+import java.util.*;
+
+public class T6937244A {
+    public static void main(String[] args) throws Exception {
+        new T6937244A().run();
+    }
+
+    void run() throws Exception {
+        StringWriter sw = new StringWriter();
+        PrintWriter pw = new PrintWriter(sw);
+        String[] args = { "Test" };
+        int rc = com.sun.tools.javap.Main.run(args, pw);
+        pw.close();
+        String out = sw.toString();
+        System.err.println(out);
+        if (rc != 0)
+            throw new Exception("unexpected exit from javap: " + rc);
+
+        int count = 0;
+
+        for (String line: out.split("[\r\n]+")) {
+            if (line.contains("extends")) {
+                verify(line, "extends java.lang.Object implements java.util.List<java.lang.String>");
+                count++;
+            }
+
+            if (line.contains("field")) {
+                verify(line, "java.util.List<java.lang.String> field");
+                count++;
+            }
+
+            if (line.contains("method")) {
+                verify(line, "java.util.List<java.lang.String> method(java.util.List<java.lang.String>) throws java.lang.Exception");
+                count++;
+            }
+        }
+
+        // final backstop check
+        if (out.contains("/"))
+            throw new Exception("unexpected \"/\" in output");
+
+        if (count != 3)
+            throw new Exception("wrong number of matches found: " + count);
+    }
+
+    void verify(String line, String expect) throws Exception {
+        if (!line.contains(expect)) {
+            System.err.println("line:   " + line);
+            System.err.println("expect: " + expect);
+            throw new Exception("expected string not found in line");
+        }
+    }
+}
+
+
+abstract class Test implements List<String> {
+    public List<String> field;
+    public List<String> method(List<String> arg) throws Exception { return null; }
+}
+
--- a/langtools/test/tools/javap/T6715251.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javap/T6715251.java	Wed Jul 05 17:09:51 2017 +0200
@@ -71,4 +71,4 @@
 
     String log;
     int errors;
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javap/T6715753.java	Wed Jul 05 17:09:16 2017 +0200
+++ b/langtools/test/tools/javap/T6715753.java	Wed Jul 05 17:09:51 2017 +0200
@@ -47,4 +47,4 @@
             throw new Exception("test failed");
         }
     }
-}
\ No newline at end of file
+}
--- a/make/jprt.properties	Wed Jul 05 17:09:16 2017 +0200
+++ b/make/jprt.properties	Wed Jul 05 17:09:51 2017 +0200
@@ -62,6 +62,7 @@
 
 # Test targets in test/Makefile
 jprt.make.rule.test.targets=   \
+  *-product-*-langtools_jtreg, \
   *-product-*-jdk_beans1,      \
   *-product-*-jdk_beans2,      \
   *-product-*-jdk_beans3,      \
@@ -84,7 +85,6 @@
   *-product-*-jdk_util
 
 # Not Ready Yet:
-#   *-product-*-langtools_all
 #   *-product-*-jdk_awt
 #   *-product-*-jdk_rmi
 #   *-product-*-jdk_swing
--- a/test/Makefile	Wed Jul 05 17:09:16 2017 +0200
+++ b/test/Makefile	Wed Jul 05 17:09:51 2017 +0200
@@ -42,6 +42,7 @@
     $(MAKE) -C $1/test $2 ; \
   else \
     echo "ERROR: File does not exist: $1/test/Makefile"; \
+    exit 1; \
   fi; \
 else \
   echo "WARNING: No testing done, directory does not exist: $1"; \
@@ -49,7 +50,7 @@
 endef
 
 # Test target list for langtools repository
-LANGTOOLS_TEST_LIST = langtools_all
+LANGTOOLS_TEST_LIST = langtools_jtreg
 
 # Test target list for jdk repository
 JDK_TEST_LIST = \
@@ -74,7 +75,7 @@
 
 # Test targets
 $(LANGTOOLS_TEST_LIST):
-	@$(call SUBDIR_TEST, $(LANGTOOLS_DIR), all)
+	@$(call SUBDIR_TEST, $(LANGTOOLS_DIR), $(subst langtools_,,$@))
 $(JDK_TEST_LIST):
 	@$(call SUBDIR_TEST, $(JDK_DIR), $@)